diff options
author | Nathan Caldwell <saintdev@gmail.com> | 2011-06-29 07:11:39 +0400 |
---|---|---|
committer | Alex Converse <alex.converse@gmail.com> | 2011-06-30 01:28:53 +0400 |
commit | 98add74e85967441d6b7263d1eee79aa2d98cd82 (patch) | |
tree | 86b1f64ad436fab0c52361d6571a7e21c30ba6e3 | |
parent | d3a6c2ab7e76f12f56932a087266b082dc1dc39b (diff) |
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.
-rw-r--r-- | libavcodec/aacenc.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/libavcodec/aacenc.c b/libavcodec/aacenc.c index dd8a83c537..eae933235f 100644 --- a/libavcodec/aacenc.c +++ b/libavcodec/aacenc.c @@ -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; } } |