Browse Source

aacenc: Fix determination of Mid/Side Mode.

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.
tags/n0.9
Nathan Caldwell Alex Converse 14 years ago
parent
commit
98add74e85
1 changed files with 1 additions and 1 deletions
  1. +1
    -1
      libavcodec/aacenc.c

+ 1
- 1
libavcodec/aacenc.c View File

@@ -364,7 +364,7 @@ static void adjust_frame_information(AACEncContext *apc, ChannelElement *cpe, in
if (msc == 0 || ics0->max_sfb == 0)
cpe->ms_mode = 0;
else
cpe->ms_mode = msc < ics0->max_sfb ? 1 : 2;
cpe->ms_mode = msc < ics0->max_sfb * ics0->num_windows ? 1 : 2;
}
}



Loading…
Cancel
Save