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.
This commit is contained in:
parent
f82510410d
commit
27f3f41550
@ -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 }
|
||||
};
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user