aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLynne <dev@lynne.ee>2024-06-06 04:38:47 +0200
committerLynne <dev@lynne.ee>2024-06-08 00:22:39 +0200
commita18d0659f403cf4b93a3c5a293a42e0ff7348e90 (patch)
tree49728ddeee63808a5816daf5d15b38f1cb8c3ead
parent1ad9a4008bbb4fbcf3691bc56851d877c955b9e4 (diff)
downloadffmpeg-a18d0659f403cf4b93a3c5a293a42e0ff7348e90.tar.gz
aacdec_usac: skip coeff decoding if the number to be decoded is 0
Yet another thing not mentioned in the spec.
-rw-r--r--libavcodec/aac/aacdec_usac.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/libavcodec/aac/aacdec_usac.c b/libavcodec/aac/aacdec_usac.c
index 97655787ee..5dd489a43b 100644
--- a/libavcodec/aac/aacdec_usac.c
+++ b/libavcodec/aac/aacdec_usac.c
@@ -572,9 +572,15 @@ static int decode_spectrum_and_dequant_ac(AACDecContext *s, float coef[1024],
int gb_count;
GetBitContext gb2;
- ff_aac_ac_init(&ac, gb);
c = ff_aac_ac_map_process(state, reset, N);
+ if (!len) {
+ ff_aac_ac_finish(state, 0, N);
+ return 0;
+ }
+
+ ff_aac_ac_init(&ac, gb);
+
/* Backup reader for rolling back by 14 bits at the end */
gb2 = *gb;
gb_count = get_bits_count(&gb2);