diff options
author | Andreas Rheinhardt <andreas.rheinhardt@outlook.com> | 2023-09-24 15:47:05 +0200 |
---|---|---|
committer | Andreas Rheinhardt <andreas.rheinhardt@outlook.com> | 2023-10-31 20:47:00 +0100 |
commit | f6c5d04b6d0f3e470897dd98b75940451f348d16 (patch) | |
tree | e7fa954a210831824ac0b1081464475c5d7d036a | |
parent | 827d0325a98f87148952ac078998aa9c3f19fef6 (diff) | |
download | ffmpeg-f6c5d04b6d0f3e470897dd98b75940451f348d16.tar.gz |
avcodec/mimic: 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>
-rw-r--r-- | libavcodec/mimic.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/libavcodec/mimic.c b/libavcodec/mimic.c index ac71a2c149..cd5d0d7e3e 100644 --- a/libavcodec/mimic.c +++ b/libavcodec/mimic.c @@ -67,7 +67,7 @@ typedef struct MimicContext { int next_prev_index; } MimicContext; -static VLC block_vlc; +static VLCElem block_vlc[4368]; static const uint8_t huffsyms[] = { 0x10, 0x20, 0x30, 0x00, 0x11, 0x40, 0x50, 0x12, 0x13, 0x21, 0x31, 0x60, @@ -120,8 +120,9 @@ static av_cold int mimic_decode_end(AVCodecContext *avctx) static av_cold void mimic_init_static(void) { - VLC_INIT_STATIC_FROM_LENGTHS(&block_vlc, MIMIC_VLC_BITS, FF_ARRAY_ELEMS(huffbits), - huffbits, 1, huffsyms, 1, 1, 0, 0, 4368); + VLC_INIT_STATIC_TABLE_FROM_LENGTHS(block_vlc, MIMIC_VLC_BITS, + FF_ARRAY_ELEMS(huffbits), + huffbits, 1, huffsyms, 1, 1, 0, 0); } static av_cold int mimic_decode_init(AVCodecContext *avctx) @@ -226,7 +227,7 @@ static int vlc_decode_block(MimicContext *ctx, int num_coeffs, int qscale) int value; int coeff; - vlc = get_vlc2(&ctx->gb, block_vlc.table, MIMIC_VLC_BITS, 3); + vlc = get_vlc2(&ctx->gb, block_vlc, MIMIC_VLC_BITS, 3); if (!vlc) /* end-of-block code */ return 0; if (vlc == -1) |