Compare commits

...

1 Commits

Author SHA1 Message Date
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

View File

@ -624,7 +624,7 @@ const SFB_PARAM_LONG p_FDKaacEnc_64000_long_1024 = {
};
const SFB_PARAM_SHORT p_FDKaacEnc_64000_short_128 = {
12,
{ 4, 4, 4, 4, 4, 4, 8, 8, 8, 16, 28, 36 }
{ 4, 4, 4, 4, 4, 4, 8, 8, 8, 18, 30, 32 }
};
const SFB_PARAM_LONG p_FDKaacEnc_88200_long_1024 = {
41,
@ -634,7 +634,7 @@ const SFB_PARAM_LONG p_FDKaacEnc_88200_long_1024 = {
};
const SFB_PARAM_SHORT p_FDKaacEnc_88200_short_128 = {
12,
{ 4, 4, 4, 4, 4, 4, 8, 8, 8, 16, 28, 36 }
{ 4, 4, 4, 4, 4, 4, 8, 8, 8, 18, 30, 32 }
};
const SFB_PARAM_LONG p_FDKaacEnc_96000_long_1024 = {
41,
@ -644,7 +644,7 @@ const SFB_PARAM_LONG p_FDKaacEnc_96000_long_1024 = {
};
const SFB_PARAM_SHORT p_FDKaacEnc_96000_short_128 = {
12,
{ 4, 4, 4, 4, 4, 4, 8, 8, 8, 16, 28, 36 }
{ 4, 4, 4, 4, 4, 4, 8, 8, 8, 18, 30, 32 }
};