In adjust_frame_information(), msc is incremented for each sfb in each
sub-window then compared against max_sfb which is for a single sub-window.
This resulted in frames using EIGHT_SHORT_SEQUENCE where the first few
sub-windows increment msc to a value that results in ms_mode == 2. Even
though only some of the bands are actually using Mid/Side.
| ... | ... |
@@ -364,7 +364,7 @@ static void adjust_frame_information(AACEncContext *apc, ChannelElement *cpe, in |
| 364 | 364 |
if (msc == 0 || ics0->max_sfb == 0) |
| 365 | 365 |
cpe->ms_mode = 0; |
| 366 | 366 |
else |
| 367 |
- cpe->ms_mode = msc < ics0->max_sfb ? 1 : 2; |
|
| 367 |
+ cpe->ms_mode = msc < ics0->max_sfb * ics0->num_windows ? 1 : 2; |
|
| 368 | 368 |
} |
| 369 | 369 |
} |
| 370 | 370 |
|