diff options
author | Andreas Rheinhardt <andreas.rheinhardt@outlook.com> | 2021-05-08 02:24:22 +0200 |
---|---|---|
committer | Andreas Rheinhardt <andreas.rheinhardt@outlook.com> | 2021-05-10 23:12:15 +0200 |
commit | 80b5c4bc081b54790688a51791a3da1fcd5a4568 (patch) | |
tree | 9a90ddaab102d537751f2ff914584a4545af97e0 | |
parent | 9afb291267db04568da0fac2ce391380c48d7047 (diff) | |
download | ffmpeg-80b5c4bc081b54790688a51791a3da1fcd5a4568.tar.gz |
avcodec/vp3: Avoid code duplication when initializing coeff_vlcs
Reviewed-by: Peter Ross <pross@xvid.org>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
-rw-r--r-- | libavcodec/vp3.c | 20 |
1 files changed, 5 insertions, 15 deletions
diff --git a/libavcodec/vp3.c b/libavcodec/vp3.c index 9aa84e83b7..ef443dbf22 100644 --- a/libavcodec/vp3.c +++ b/libavcodec/vp3.c @@ -2408,6 +2408,8 @@ static av_cold int vp3_decode_init(AVCodecContext *avctx) s->fragment_start[2] = y_fragment_count + c_fragment_count; if (!s->theora_tables) { + const uint8_t (*bias_tabs)[32][2]; + for (i = 0; i < 64; i++) { s->coded_dc_scale_factor[0][i] = s->version < 2 ? vp31_dc_scale_factor[i] : vp4_y_dc_scale_factor[i]; s->coded_dc_scale_factor[1][i] = s->version < 2 ? vp31_dc_scale_factor[i] : vp4_uv_dc_scale_factor[i]; @@ -2428,27 +2430,15 @@ static av_cold int vp3_decode_init(AVCodecContext *avctx) } /* init VLC tables */ - if (s->version < 2) { - for (i = 0; i < FF_ARRAY_ELEMS(s->coeff_vlc); i++) { - ret = ff_init_vlc_from_lengths(&s->coeff_vlc[i], 11, 32, - &vp3_bias[i][0][1], 2, - &vp3_bias[i][0][0], 2, 1, - 0, 0, avctx); - if (ret < 0) - return ret; - } -#if CONFIG_VP4_DECODER - } else { /* version >= 2 */ + bias_tabs = CONFIG_VP4_DECODER && s->version >= 2 ? vp4_bias : vp3_bias; for (i = 0; i < FF_ARRAY_ELEMS(s->coeff_vlc); i++) { ret = ff_init_vlc_from_lengths(&s->coeff_vlc[i], 11, 32, - &vp4_bias[i][0][1], 2, - &vp4_bias[i][0][0], 2, 1, + &bias_tabs[i][0][1], 2, + &bias_tabs[i][0][0], 2, 1, 0, 0, avctx); if (ret < 0) return ret; } -#endif - } } else { for (i = 0; i < FF_ARRAY_ELEMS(s->coeff_vlc); i++) { const HuffTable *tab = &s->huffman_table[i]; |