avcodec/mv30: 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:34:16 +02:00
parent b60a3f70be
commit 99ed510d4b
1 changed files with 5 additions and 4 deletions

View File

@ -59,7 +59,7 @@ typedef struct MV30Context {
AVFrame *prev_frame; AVFrame *prev_frame;
} MV30Context; } MV30Context;
static VLC cbp_tab; static VLCElem cbp_tab[1 << CBP_VLC_BITS];
static const uint8_t luma_tab[] = { static const uint8_t luma_tab[] = {
12, 12, 15, 19, 25, 34, 40, 48, 12, 12, 15, 19, 25, 34, 40, 48,
@ -379,7 +379,7 @@ static int decode_coeffs(GetBitContext *gb, int16_t *coeffs, int nb_codes)
memset(coeffs, 0, nb_codes * sizeof(*coeffs)); memset(coeffs, 0, nb_codes * sizeof(*coeffs));
for (int i = 0; i < nb_codes;) { for (int i = 0; i < nb_codes;) {
int value = get_vlc2(gb, cbp_tab.table, CBP_VLC_BITS, 1); int value = get_vlc2(gb, cbp_tab, CBP_VLC_BITS, 1);
if (value > 0) { if (value > 0) {
int x = get_bits(gb, value); int x = get_bits(gb, value);
@ -657,8 +657,9 @@ static const uint8_t cbp_bits[] = {
static av_cold void init_static_data(void) static av_cold void init_static_data(void)
{ {
VLC_INIT_STATIC_FROM_LENGTHS(&cbp_tab, CBP_VLC_BITS, FF_ARRAY_ELEMS(cbp_bits), VLC_INIT_STATIC_TABLE_FROM_LENGTHS(cbp_tab, CBP_VLC_BITS,
cbp_bits, 1, NULL, 0, 0, 0, 0, 1 << CBP_VLC_BITS); FF_ARRAY_ELEMS(cbp_bits),
cbp_bits, 1, NULL, 0, 0, 0, 0);
} }
static av_cold int decode_init(AVCodecContext *avctx) static av_cold int decode_init(AVCodecContext *avctx)