avcodec/lagarith: Avoid unnecessary VLC structure

Everything besides VLC.table is basically write-only
and even VLC.table can be removed by accessing the
underlying table directly.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
This commit is contained in:
Andreas Rheinhardt 2023-09-24 15:56:44 +02:00
parent e3ad5b9784
commit 0a610e22c1
1 changed files with 4 additions and 4 deletions

View File

@ -60,7 +60,7 @@ typedef struct LagarithContext {
int zeros_rem; /**< number of zero bytes remaining to output */ int zeros_rem; /**< number of zero bytes remaining to output */
} LagarithContext; } LagarithContext;
static VLC lag_tab; static VLCElem lag_tab[1 << VLC_BITS];
static const uint8_t lag_bits[] = { static const uint8_t lag_bits[] = {
7, 7, 2, 7, 3, 4, 5, 6, 7, 7, 7, 7, 7, 6, 7, 4, 5, 7, 7, 7, 7, 7, 7, 2, 7, 3, 4, 5, 6, 7, 7, 7, 7, 7, 6, 7, 4, 5, 7, 7, 7, 7,
@ -85,8 +85,8 @@ static const uint8_t lag_symbols[] = {
static av_cold void lag_init_static_data(void) static av_cold void lag_init_static_data(void)
{ {
VLC_INIT_SPARSE_STATIC(&lag_tab, VLC_BITS, FF_ARRAY_ELEMS(lag_bits), VLC_INIT_STATIC_SPARSE_TABLE(lag_tab, VLC_BITS, FF_ARRAY_ELEMS(lag_bits),
lag_bits, 1, 1, lag_codes, 1, 1, lag_symbols, 1, 1, 128); lag_bits, 1, 1, lag_codes, 1, 1, lag_symbols, 1, 1, 0);
} }
/** /**
@ -136,7 +136,7 @@ static int lag_decode_prob(GetBitContext *gb, uint32_t *value)
{ {
unsigned val, bits; unsigned val, bits;
bits = get_vlc2(gb, lag_tab.table, VLC_BITS, 1); bits = get_vlc2(gb, lag_tab, VLC_BITS, 1);
if (bits > 31) { if (bits > 31) {
*value = 0; *value = 0;
return AVERROR_INVALIDDATA; return AVERROR_INVALIDDATA;