From 2d80ce2bdf8241ff67e00118ef00d47e7f0dbb5d Mon Sep 17 00:00:00 2001 From: Michael Niedermayer Date: Fri, 30 May 2008 21:06:40 +0000 Subject: [PATCH] Change init_2d_vlc_rl() to not use *alloc_static(). Originally committed as revision 13566 to svn://svn.ffmpeg.org/ffmpeg/trunk --- libavcodec/mpeg12.c | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/libavcodec/mpeg12.c b/libavcodec/mpeg12.c index adeb2fa651..223be58077 100644 --- a/libavcodec/mpeg12.c +++ b/libavcodec/mpeg12.c @@ -80,16 +80,22 @@ static const enum PixelFormat pixfmt_xvmc_mpg2_420[] = { uint8_t ff_mpeg12_static_rl_table_store[2][2][2*MAX_RUN + MAX_LEVEL + 3]; + +#define INIT_2D_VLC_RL(rl, static_size)\ +{\ + static RL_VLC_ELEM rl_vlc_table[static_size];\ + INIT_VLC_STATIC(&rl.vlc, TEX_VLC_BITS, rl.n + 2,\ + &rl.table_vlc[0][1], 4, 2,\ + &rl.table_vlc[0][0], 4, 2, static_size);\ +\ + rl.rl_vlc[0]= rl_vlc_table;\ + init_2d_vlc_rl(&rl);\ +} + static void init_2d_vlc_rl(RLTable *rl) { int i; - init_vlc(&rl->vlc, TEX_VLC_BITS, rl->n + 2, - &rl->table_vlc[0][1], 4, 2, - &rl->table_vlc[0][0], 4, 2, 1); - - rl->rl_vlc[0]= av_mallocz_static(rl->vlc.table_size*sizeof(RL_VLC_ELEM)); - for(i=0; ivlc.table_size; i++){ int code= rl->vlc.table[i][0]; int len = rl->vlc.table[i][1]; @@ -178,8 +184,8 @@ static void init_vlcs(void) init_rl(&ff_rl_mpeg1, ff_mpeg12_static_rl_table_store[0]); init_rl(&ff_rl_mpeg2, ff_mpeg12_static_rl_table_store[1]); - init_2d_vlc_rl(&ff_rl_mpeg1); - init_2d_vlc_rl(&ff_rl_mpeg2); + INIT_2D_VLC_RL(ff_rl_mpeg1, 680); + INIT_2D_VLC_RL(ff_rl_mpeg2, 674); } }