aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlex Converse <alex.converse@gmail.com>2012-01-24 18:43:43 -0800
committerReinhard Tartler <siretart@tauware.de>2012-04-01 18:33:26 +0200
commit0fbde741cbca76e826d0dce446480b02da5f6706 (patch)
treec0a4a84fb2c7cf7f6f41bafd0b31c8346d956aba
parentec961c89194aa090ab39f2cd4336479c909e532b (diff)
downloadffmpeg-0fbde741cbca76e826d0dce446480b02da5f6706.tar.gz
wma: Clip WMA1 and WMA2 frame length to 11 bits.
The MDCT buffers in the decoder are only sized for up to 11 bits. The reverse engineered documentation for WMA1/2 headers say that that for all samplerates above 32kHz 11 bits are used. 12 and 13 bit support were added for WMAPro. I was unable to make any Microsoft tools generate a test file at a samplerate above 48kHz. Discovered by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind CC: libav-stable@libav.org (cherry picked from commit d78bb1a4b2a3a415b68e4e6dd448779eccec64e3) Signed-off-by: Anton Khirnov <anton@khirnov.net> Signed-off-by: Reinhard Tartler <siretart@tauware.de>
-rw-r--r--libavcodec/wma.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/libavcodec/wma.c b/libavcodec/wma.c
index 4cdffcd101..d82fde7b18 100644
--- a/libavcodec/wma.c
+++ b/libavcodec/wma.c
@@ -85,7 +85,7 @@ int av_cold ff_wma_get_frame_len_bits(int sample_rate, int version,
} else if (sample_rate <= 22050 ||
(sample_rate <= 32000 && version == 1)) {
frame_len_bits = 10;
- } else if (sample_rate <= 48000) {
+ } else if (sample_rate <= 48000 || version < 3) {
frame_len_bits = 11;
} else if (sample_rate <= 96000) {
frame_len_bits = 12;