Signed-off-by: Andreas Rheinhardt <[email protected]>
---
libavcodec/dca_core.c | 6 ++++--
libavcodec/dcahuff.c | 7 +++----
libavcodec/dcahuff.h | 3 ++-
3 files changed, 9 insertions(+), 7 deletions(-)
diff --git a/libavcodec/dca_core.c b/libavcodec/dca_core.c
index 96787fe95d..7dff6633df 100644
--- a/libavcodec/dca_core.c
+++ b/libavcodec/dca_core.c
@@ -362,7 +362,8 @@ static inline int parse_scale(DCACoreDecoder *s, int
*scale_index, int sel)
// If Huffman code was used, the difference of scales was encoded
if (sel < 5)
- *scale_index += dca_get_vlc(&s->gb, &ff_dca_vlc_scale_factor, sel);
+ *scale_index += get_vlc2(&s->gb, ff_dca_vlc_scale_factor[sel].table,
+ DCA_SCALES_VLC_BITS, 2);
else
*scale_index = get_bits(&s->gb, sel + 1);
@@ -381,7 +382,8 @@ static inline int parse_joint_scale(DCACoreDecoder *s, int
sel)
// Absolute value was encoded even when Huffman code was used
if (sel < 5)
- scale_index = dca_get_vlc(&s->gb, &ff_dca_vlc_scale_factor, sel);
+ scale_index = get_vlc2(&s->gb, ff_dca_vlc_scale_factor[sel].table,
+ DCA_SCALES_VLC_BITS, 2);
else
scale_index = get_bits(&s->gb, sel + 1);
diff --git a/libavcodec/dcahuff.c b/libavcodec/dcahuff.c
index 7a5b054dd5..a7518aded8 100644
--- a/libavcodec/dcahuff.c
+++ b/libavcodec/dcahuff.c
@@ -770,7 +770,7 @@ const uint8_t ff_dca_vlc_src_tables[][2] = {
DCAVLC ff_dca_vlc_bit_allocation;
VLC ff_dca_vlc_transition_mode[4];
-DCAVLC ff_dca_vlc_scale_factor;
+VLC ff_dca_vlc_scale_factor[5];
DCAVLC ff_dca_vlc_quant_index[DCA_CODE_BOOKS];
VLC ff_dca_vlc_tnl_grp[5];
@@ -815,9 +815,8 @@ av_cold void ff_dca_init_vlcs(void)
for (i = 0; i < 5; i++)
DCA_INIT_VLC(ff_dca_vlc_bit_allocation.vlc[i],
bitalloc_12_vlc_bits[i], 12, 1);
- ff_dca_vlc_scale_factor.max_depth = 2;
- for (i = 0; i < 5; i++)
- DCA_INIT_VLC(ff_dca_vlc_scale_factor.vlc[i], SCALES_VLC_BITS, 129,
-64);
+ for (unsigned i = 0; i < FF_ARRAY_ELEMS(ff_dca_vlc_scale_factor); i++)
+ DCA_INIT_VLC(ff_dca_vlc_scale_factor[i], DCA_SCALES_VLC_BITS, 129,
-64);
for (unsigned i = 0; i < FF_ARRAY_ELEMS(ff_dca_vlc_transition_mode); i++)
DCA_INIT_VLC(ff_dca_vlc_transition_mode[i], DCA_TMODE_VLC_BITS, 4, 0);
diff --git a/libavcodec/dcahuff.h b/libavcodec/dcahuff.h
index a50d49d6dd..8663f8ba12 100644
--- a/libavcodec/dcahuff.h
+++ b/libavcodec/dcahuff.h
@@ -43,7 +43,8 @@ typedef struct DCAVLC {
extern DCAVLC ff_dca_vlc_bit_allocation;
#define DCA_TMODE_VLC_BITS 3
extern VLC ff_dca_vlc_transition_mode[4];
-extern DCAVLC ff_dca_vlc_scale_factor;
+#define DCA_SCALES_VLC_BITS 9
+extern VLC ff_dca_vlc_scale_factor[5];
extern DCAVLC ff_dca_vlc_quant_index[DCA_CODE_BOOKS];
extern VLC ff_dca_vlc_tnl_grp[5];
--
2.34.1
_______________________________________________
ffmpeg-devel mailing list
[email protected]
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
[email protected] with subject "unsubscribe".