Commit 8f04988e authored by Andreas Rheinhardt's avatar Andreas Rheinhardt

avcodec/rl: Allow to create only a few VLC tables

It is not uncommon that only the first one is used; this is similar to
ff_init_2d_vlc_rl().
Signed-off-by: 's avatarAndreas Rheinhardt <andreas.rheinhardt@gmail.com>
parent f741bd06
......@@ -80,6 +80,9 @@ av_cold void ff_rl_init_vlc(RLTable *rl, unsigned static_size)
int qmul = q * 2;
int qadd = (q - 1) | 1;
if (!rl->rl_vlc[q])
return;
if (q == 0) {
qmul = 1;
qadd = 0;
......
......@@ -68,6 +68,14 @@ void ff_rl_init_vlc(RLTable *rl, unsigned static_size);
}\
}
#define INIT_FIRST_VLC_RL(rl, static_size) \
do { \
static RL_VLC_ELEM rl_vlc_table[static_size]; \
\
rl.rl_vlc[0] = rl_vlc_table; \
ff_rl_init_vlc(&rl, static_size); \
} while (0)
static inline int get_rl_index(const RLTable *rl, int last, int run, int level)
{
int index;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment