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.
---
libavcodec/aacenc.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/libavcodec/aacenc.c b/libavcodec/aacenc.c
index dd8a83c..eae9332 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;
}
}
--
1.7.6
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel