[FFmpeg-cvslog] r20010 - trunk/libavcodec/vc1dec.c

reimar subversion
Thu Sep 24 12:49:47 CEST 2009


Author: reimar
Date: Thu Sep 24 12:49:47 2009
New Revision: 20010

Log:
Use ff_msmpeg4_decode_init to initialize ff_msmp4_mb_i_vlc since static
VLC tables should only be initialized from one place.
This initializes/calculates more VLC tables than necessary for VC1 decoding,
but this is only done once and only a small overhead in time and space (maybe
30 kB) it seems not worth adding a separate function.

Modified:
   trunk/libavcodec/vc1dec.c

Modified: trunk/libavcodec/vc1dec.c
==============================================================================
--- trunk/libavcodec/vc1dec.c	Thu Sep 24 11:44:51 2009	(r20009)
+++ trunk/libavcodec/vc1dec.c	Thu Sep 24 12:49:47 2009	(r20010)
@@ -124,10 +124,6 @@ static int vc1_init_common(VC1Context *v
                      &vc1_ac_tables[i][0][1], 8, 4,
                      &vc1_ac_tables[i][0][0], 8, 4, INIT_VLC_USE_NEW_STATIC);
         }
-        //FIXME: switching to INIT_VLC_STATIC() results in incorrect decoding
-        init_vlc(&ff_msmp4_mb_i_vlc, MB_INTRA_VLC_BITS, 64,
-                 &ff_msmp4_mb_i_table[0][1], 4, 2,
-                 &ff_msmp4_mb_i_table[0][0], 4, 2, INIT_VLC_USE_STATIC);
         done = 1;
     }
 
@@ -3000,6 +2996,8 @@ static av_cold int vc1_decode_init(AVCod
     if(ff_h263_decode_init(avctx) < 0)
         return -1;
     if (vc1_init_common(v) < 0) return -1;
+    // only for ff_msmp4_mb_i_table
+    if (ff_msmpeg4_decode_init(s) < 0) return -1;
 
     avctx->coded_width = avctx->width;
     avctx->coded_height = avctx->height;



More information about the ffmpeg-cvslog mailing list