diff options
author | Lynne <dev@lynne.ee> | 2024-06-06 04:38:47 +0200 |
---|---|---|
committer | Lynne <dev@lynne.ee> | 2024-06-08 00:22:39 +0200 |
commit | a18d0659f403cf4b93a3c5a293a42e0ff7348e90 (patch) | |
tree | 49728ddeee63808a5816daf5d15b38f1cb8c3ead | |
parent | 1ad9a4008bbb4fbcf3691bc56851d877c955b9e4 (diff) | |
download | ffmpeg-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.c | 8 |
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); |