[FFmpeg-cvslog] r15929 - trunk/libavcodec/svq3.c

bcoudurier subversion
Mon Nov 24 19:49:51 CET 2008


Author: bcoudurier
Date: Mon Nov 24 19:49:50 2008
New Revision: 15929

Log:
move decoder initialization in separate function, earlier failure detection

Modified:
   trunk/libavcodec/svq3.c

Modified: trunk/libavcodec/svq3.c
==============================================================================
--- trunk/libavcodec/svq3.c	(original)
+++ trunk/libavcodec/svq3.c	Mon Nov 24 19:49:50 2008
@@ -774,16 +774,17 @@ static int svq3_decode_slice_header(H264
     return 0;
 }
 
-static int svq3_decode_frame(AVCodecContext *avctx,
-                             void *data, int *data_size,
-                             const uint8_t *buf, int buf_size)
+static int svq3_decode_init(AVCodecContext *avctx)
 {
     MpegEncContext *const s = avctx->priv_data;
     H264Context *const h = avctx->priv_data;
-    int m, mb_type;
+    int m;
     unsigned char *extradata;
     unsigned int size;
 
+    if (decode_init(avctx) < 0)
+        return -1;
+
     s->flags  = avctx->flags;
     s->flags2 = avctx->flags2;
     s->unrestricted_mv = 1;
@@ -880,6 +881,17 @@ static int svq3_decode_frame(AVCodecCont
         }
     }
 
+    return 0;
+}
+
+static int svq3_decode_frame(AVCodecContext *avctx,
+                             void *data, int *data_size,
+                             const uint8_t *buf, int buf_size)
+{
+    MpegEncContext *const s = avctx->priv_data;
+    H264Context *const h = avctx->priv_data;
+    int m, mb_type;
+
     /* special case for last picture */
     if (buf_size == 0) {
         if (s->next_picture_ptr && !s->low_delay) {
@@ -1030,7 +1042,7 @@ AVCodec svq3_decoder = {
     CODEC_TYPE_VIDEO,
     CODEC_ID_SVQ3,
     sizeof(H264Context),
-    decode_init,
+    svq3_decode_init,
     NULL,
     decode_end,
     svq3_decode_frame,




More information about the ffmpeg-cvslog mailing list