Martin Storsjo 27f3f41550 Redistribute sfbWidths for short blocks for sample rates above 64 kHz
Make sure all coefficients are <= 33. When sfbOffsets are grouped,
the widths are multiplied by 3 in some blocks (groupLen). If
sfbWidth * groupLen is >= 100, this triggers assert failures
in GetInvInt in intensity.cpp, when
(sfbOffset[sfb + sfboffs + 1] - sfbOffset[sfb + sfboffs])>>1 is
> 50.

This issue can be reproduced by trying to encode sample rates above
64 kHz with AACENC_BITRATEMODE set to 5. (Normally this is prohibited
by the public API interface though, but I assume the same use of
short blocks also could happen just as well using the normal CBR
mode - it's just harder to reproduce there.)

The best way to actually redistribute these coefficients (whether
another coefficient should be added, or the weights redistributed)
is unknown.
2014-07-27 15:01:42 +03:00
..