avcodec/msmpeg4dec: Reuse identical RL VLCs
Some of the RLTables used by msmpeg4dec actually coincide with other RLTables: ff_rl_table[5] coincides with ff_h263_rl_inter (and ff_rl_table[2] with ff_mpeg4_rl_intra). Given that ff_h263_rl_inter is always initialized before msmpeg4dec's RLTables are initialized, one can just reuse the VLC tables by copying the pointers; after all, there are no ownership issues for static data. This saves 70912B from the .bss segment, translating into actual memory savings when this decoder is actually used. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
This commit is contained in:
parent
a3831e81ff
commit
d90d0a715f
@ -322,7 +322,10 @@ av_cold int ff_msmpeg4_decode_init(AVCodecContext *avctx)
|
|||||||
INIT_FIRST_VLC_RL(ff_rl_table[2], 554);
|
INIT_FIRST_VLC_RL(ff_rl_table[2], 554);
|
||||||
INIT_VLC_RL(ff_rl_table[3], 940);
|
INIT_VLC_RL(ff_rl_table[3], 940);
|
||||||
INIT_VLC_RL(ff_rl_table[4], 962);
|
INIT_VLC_RL(ff_rl_table[4], 962);
|
||||||
INIT_VLC_RL(ff_rl_table[5], 554);
|
/* ff_rl_table[5] coincides with ff_h263_rl_inter which has just been
|
||||||
|
* initialized in ff_h263_decode_init() above. So just copy the VLCs. */
|
||||||
|
av_assert1(ff_h263_rl_inter.rl_vlc[0]);
|
||||||
|
memcpy(ff_rl_table[5].rl_vlc, ff_h263_rl_inter.rl_vlc, sizeof(ff_rl_table[5].rl_vlc));
|
||||||
|
|
||||||
mv = &ff_mv_tables[0];
|
mv = &ff_mv_tables[0];
|
||||||
INIT_VLC_STATIC(&mv->vlc, MV_VLC_BITS, mv->n + 1,
|
INIT_VLC_STATIC(&mv->vlc, MV_VLC_BITS, mv->n + 1,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user