Mercurial > libavcodec.hg
changeset 6939:213852a36370 libavcodec
Change init_2d_vlc_rl() to not use *alloc_static().
author | michael |
---|---|
date | Fri, 30 May 2008 21:06:40 +0000 |
parents | 5096176df88c |
children | 778ecab25dd8 |
files | mpeg12.c |
diffstat | 1 files changed, 14 insertions(+), 8 deletions(-) [+] |
line wrap: on
line diff
--- a/mpeg12.c Fri May 30 20:06:08 2008 +0000 +++ b/mpeg12.c Fri May 30 21:06:40 2008 +0000 @@ -80,16 +80,22 @@ 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; i<rl->vlc.table_size; i++){ int code= rl->vlc.table[i][0]; int len = rl->vlc.table[i][1]; @@ -178,8 +184,8 @@ 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); } }