aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndreas Rheinhardt <andreas.rheinhardt@gmail.com>2020-11-21 00:24:33 +0100
committerAndreas Rheinhardt <andreas.rheinhardt@gmail.com>2020-11-24 11:35:04 +0100
commit08a992e018fd1c28daac1ec21cfd133ca3d7a140 (patch)
treeeda5f37980115540bb8107226240349acd8ca456
parent34aa85cd9113bde646af51440aa4528314ddfae3 (diff)
downloadffmpeg-08a992e018fd1c28daac1ec21cfd133ca3d7a140.tar.gz
avcodec/mlpdec: Avoid code duplication when initializing VLCs
Reviewed-by: Jai Luthra <me@jailuthra.in> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
-rw-r--r--libavcodec/mlpdec.c17
1 files changed, 8 insertions, 9 deletions
diff --git a/libavcodec/mlpdec.c b/libavcodec/mlpdec.c
index ec346868c6..ed25b71d2d 100644
--- a/libavcodec/mlpdec.c
+++ b/libavcodec/mlpdec.c
@@ -206,15 +206,14 @@ static VLC huff_vlc[3];
static av_cold void init_static(void)
{
- INIT_VLC_STATIC(&huff_vlc[0], VLC_BITS, 18,
- &ff_mlp_huffman_tables[0][0][1], 2, 1,
- &ff_mlp_huffman_tables[0][0][0], 2, 1, VLC_STATIC_SIZE);
- INIT_VLC_STATIC(&huff_vlc[1], VLC_BITS, 16,
- &ff_mlp_huffman_tables[1][0][1], 2, 1,
- &ff_mlp_huffman_tables[1][0][0], 2, 1, VLC_STATIC_SIZE);
- INIT_VLC_STATIC(&huff_vlc[2], VLC_BITS, 15,
- &ff_mlp_huffman_tables[2][0][1], 2, 1,
- &ff_mlp_huffman_tables[2][0][0], 2, 1, VLC_STATIC_SIZE);
+ for (int i = 0; i < 3; i++) {
+ static VLC_TYPE vlc_buf[3 * VLC_STATIC_SIZE][2];
+ huff_vlc[i].table = &vlc_buf[i * VLC_STATIC_SIZE];
+ huff_vlc[i].table_allocated = VLC_STATIC_SIZE;
+ init_vlc(&huff_vlc[i], VLC_BITS, 18,
+ &ff_mlp_huffman_tables[i][0][1], 2, 1,
+ &ff_mlp_huffman_tables[i][0][0], 2, 1, INIT_VLC_USE_NEW_STATIC);
+ }
ff_mlp_init_crc();
}