]> git.sesse.net Git - ffmpeg/blobdiff - libavformat/tiertexseq.c
avformat: Constify all muxer/demuxers
[ffmpeg] / libavformat / tiertexseq.c
index 6e00692e269cdb1d8ce2d8eec1764c7c65b8c2d0..164a75bd53745745357699363883ff61cbe09129 100644 (file)
@@ -60,7 +60,7 @@ typedef struct SeqDemuxContext {
 } SeqDemuxContext;
 
 
-static int seq_probe(AVProbeData *p)
+static int seq_probe(const AVProbeData *p)
 {
     int i;
 
@@ -182,6 +182,17 @@ static int seq_parse_frame_data(SeqDemuxContext *seq, AVIOContext *pb)
     return 0;
 }
 
+static int seq_read_close(AVFormatContext *s)
+{
+    int i;
+    SeqDemuxContext *seq = s->priv_data;
+
+    for (i = 0; i < SEQ_NUM_FRAME_BUFFERS; i++)
+        av_freep(&seq->frame_buffers[i].data);
+
+    return 0;
+}
+
 static int seq_read_header(AVFormatContext *s)
 {
     int i, rc;
@@ -191,16 +202,20 @@ static int seq_read_header(AVFormatContext *s)
 
     /* init internal buffers */
     rc = seq_init_frame_buffers(seq, pb);
-    if (rc)
+    if (rc) {
+        seq_read_close(s);
         return rc;
+    }
 
     seq->current_frame_offs = 0;
 
     /* preload (no audio data, just buffer operations related data) */
     for (i = 1; i <= 100; i++) {
         rc = seq_parse_frame_data(seq, pb);
-        if (rc)
+        if (rc) {
+            seq_read_close(s);
             return rc;
+        }
     }
 
     seq->current_frame_pts = 0;
@@ -209,8 +224,10 @@ static int seq_read_header(AVFormatContext *s)
 
     /* initialize the video decoder stream */
     st = avformat_new_stream(s, NULL);
-    if (!st)
+    if (!st) {
+        seq_read_close(s);
         return AVERROR(ENOMEM);
+    }
 
     avpriv_set_pts_info(st, 32, 1, SEQ_FRAME_RATE);
     seq->video_stream_index = st->index;
@@ -222,8 +239,10 @@ static int seq_read_header(AVFormatContext *s)
 
     /* initialize the audio decoder stream */
     st = avformat_new_stream(s, NULL);
-    if (!st)
+    if (!st) {
+        seq_read_close(s);
         return AVERROR(ENOMEM);
+    }
 
     st->start_time = 0;
     avpriv_set_pts_info(st, 32, 1, SEQ_SAMPLE_RATE);
@@ -254,8 +273,10 @@ static int seq_read_packet(AVFormatContext *s, AVPacket *pkt)
 
         /* video packet */
         if (seq->current_pal_data_size + seq->current_video_data_size != 0) {
-            if (av_new_packet(pkt, 1 + seq->current_pal_data_size + seq->current_video_data_size))
-                return AVERROR(ENOMEM);
+            rc = av_new_packet(pkt, 1 + seq->current_pal_data_size
+                                      + seq->current_video_data_size);
+            if (rc < 0)
+                return rc;
 
             pkt->data[0] = 0;
             if (seq->current_pal_data_size) {
@@ -295,18 +316,7 @@ static int seq_read_packet(AVFormatContext *s, AVPacket *pkt)
     return 0;
 }
 
-static int seq_read_close(AVFormatContext *s)
-{
-    int i;
-    SeqDemuxContext *seq = s->priv_data;
-
-    for (i = 0; i < SEQ_NUM_FRAME_BUFFERS; i++)
-        av_freep(&seq->frame_buffers[i].data);
-
-    return 0;
-}
-
-AVInputFormat ff_tiertexseq_demuxer = {
+const AVInputFormat ff_tiertexseq_demuxer = {
     .name           = "tiertexseq",
     .long_name      = NULL_IF_CONFIG_SMALL("Tiertex Limited SEQ"),
     .priv_data_size = sizeof(SeqDemuxContext),