]> git.sesse.net Git - ffmpeg/blobdiff - libavcodec/h261dec.c
prores: initialise encoder and decoder parts only when needed
[ffmpeg] / libavcodec / h261dec.c
index 81f7dc680e4ace7c041cc7293f24f85eeb2906ee..38d5e2efc3c9a1d5aa0dc15181be970d71ccbadb 100644 (file)
@@ -66,7 +66,7 @@ static av_cold void h261_decode_init_vlc(H261Context *h){
         INIT_VLC_STATIC(&h261_cbp_vlc, H261_CBP_VLC_BITS, 63,
                  &h261_cbp_tab[0][1], 2, 1,
                  &h261_cbp_tab[0][0], 2, 1, 512);
-        init_rl(&h261_rl_tcoeff, ff_h261_rl_table_store);
+        ff_init_rl(&h261_rl_tcoeff, ff_h261_rl_table_store);
         INIT_VLC_RL(h261_rl_tcoeff, 552);
     }
 }
@@ -76,7 +76,7 @@ static av_cold int h261_decode_init(AVCodecContext *avctx){
     MpegEncContext * const s = &h->s;
 
     // set defaults
-    MPV_decode_defaults(s);
+    ff_MPV_decode_defaults(s);
     s->avctx = avctx;
 
     s->width  = s->avctx->coded_width;
@@ -97,7 +97,7 @@ static av_cold int h261_decode_init(AVCodecContext *avctx){
 }
 
 /**
- * decodes the group of blocks header or slice header.
+ * Decode the group of blocks header or slice header.
  * @return <0 if an error occurred
  */
 static int h261_decode_gob_header(H261Context *h){
@@ -150,7 +150,7 @@ static int h261_decode_gob_header(H261Context *h){
 }
 
 /**
- * decodes the group of blocks / video packet header.
+ * Decode the group of blocks / video packet header.
  * @return <0 if no resync found
  */
 static int ff_h261_resync(H261Context *h){
@@ -191,7 +191,7 @@ static int ff_h261_resync(H261Context *h){
 }
 
 /**
- * decodes skipped macroblocks
+ * Decode skipped macroblocks.
  * @return 0
  */
 static int h261_decode_mb_skipped(H261Context *h, int mba1, int mba2 )
@@ -221,7 +221,7 @@ static int h261_decode_mb_skipped(H261Context *h, int mba1, int mba2 )
         s->mb_skipped = 1;
         h->mtype &= ~MB_TYPE_H261_FIL;
 
-        MPV_decode_mb(s, s->block);
+        ff_MPV_decode_mb(s, s->block);
     }
 
     return 0;
@@ -349,13 +349,13 @@ intra:
             s->block_last_index[i]= -1;
     }
 
-    MPV_decode_mb(s, s->block);
+    ff_MPV_decode_mb(s, s->block);
 
     return SLICE_OK;
 }
 
 /**
- * decodes a macroblock
+ * Decode a macroblock.
  * @return <0 if an error occurred
  */
 static int h261_decode_block(H261Context * h, DCTELEM * block,
@@ -437,7 +437,7 @@ static int h261_decode_block(H261Context * h, DCTELEM * block,
 }
 
 /**
- * decodes the H261 picture header.
+ * Decode the H.261 picture header.
  * @return <0 if no startcode found
  */
 static int h261_decode_picture_header(H261Context *h){
@@ -565,13 +565,15 @@ retry:
     init_get_bits(&s->gb, buf, buf_size*8);
 
     if(!s->context_initialized){
-        if (MPV_common_init(s) < 0) //we need the idct permutaton for reading a custom matrix
+        if (ff_MPV_common_init(s) < 0) //we need the idct permutaton for reading a custom matrix
             return -1;
     }
 
     //we need to set current_picture_ptr before reading the header, otherwise we cannot store anyting im there
     if (s->current_picture_ptr == NULL || s->current_picture_ptr->f.data[0]) {
         int i= ff_find_unused_picture(s, 0);
+        if (i < 0)
+            return i;
         s->current_picture_ptr= &s->picture[i];
     }
 
@@ -586,7 +588,7 @@ retry:
     if (s->width != avctx->coded_width || s->height != avctx->coded_height){
         ParseContext pc= s->parse_context; //FIXME move this demuxing hack to libavformat
         s->parse_context.buffer=0;
-        MPV_common_end(s);
+        ff_MPV_common_end(s);
         s->parse_context= pc;
     }
     if (!s->context_initialized) {
@@ -604,7 +606,7 @@ retry:
        || avctx->skip_frame >= AVDISCARD_ALL)
         return get_consumed_bytes(s, buf_size);
 
-    if(MPV_frame_start(s, avctx) < 0)
+    if(ff_MPV_frame_start(s, avctx) < 0)
         return -1;
 
     ff_er_frame_start(s);
@@ -618,7 +620,7 @@ retry:
             break;
         h261_decode_gob(h);
     }
-    MPV_frame_end(s);
+    ff_MPV_frame_end(s);
 
 assert(s->current_picture.f.pict_type == s->current_picture_ptr->f.pict_type);
 assert(s->current_picture.f.pict_type == s->pict_type);
@@ -635,7 +637,7 @@ static av_cold int h261_decode_end(AVCodecContext *avctx)
     H261Context *h= avctx->priv_data;
     MpegEncContext *s = &h->s;
 
-    MPV_common_end(s);
+    ff_MPV_common_end(s);
     return 0;
 }