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
Unified · Split
| @@ -85,7 +85,7 @@ int av_cold ff_wma_get_frame_len_bits(int sample_rate, int version, · 84 unmodified lines | ||
| 85 | 85 | } else if (sample_rate <= 22050 || |
| 86 | 86 | (sample_rate <= 32000 && version == 1)) { |
| 87 | 87 | frame_len_bits = 10; |
| 88 | − } else if (sample_rate <= 48000) { | |
| 88 | + } else if (sample_rate <= 48000 || version < 3) { | |
| 89 | 89 | frame_len_bits = 11; |
| 90 | 90 | } else if (sample_rate <= 96000) { |
| 91 | 91 | frame_len_bits = 12; |