# HG changeset patch # User reimar # Date 1253789387 0 # Node ID 48aebab3bac19af79a21f50b1a366901576379ed # Parent 21add4db7e53bce7cc75abf7cf4181ea2d429b9f 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. diff -r 21add4db7e53 -r 48aebab3bac1 vc1dec.c --- a/vc1dec.c Thu Sep 24 09:44:51 2009 +0000 +++ b/vc1dec.c Thu Sep 24 10:49:47 2009 +0000 @@ -124,10 +124,6 @@ &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 @@ 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;