[FFmpeg-cvslog] AAC encoder: don't apply MS on special bands

Claudio Freire git at videolan.org
Wed Jan 13 16:26:55 CET 2016


ffmpeg | branch: master | Claudio Freire <klaussfreire at gmail.com> | Fri Jan  8 05:04:37 2016 -0300| [509f168017462cf301d16e3c406337072c81c783] | committer: Claudio Freire

AAC encoder: don't apply MS on special bands

Change the condition for application of the M/S transform to match
that of the decoder. Namely, that no special coding books must be
in use in either channel. While the condition ought to be
equivalent to the current one when the invariant of is_mask is
kept, matching the decoder's condition is safer and easier to
maintain.

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=509f168017462cf301d16e3c406337072c81c783
---

 libavcodec/aacenc.c |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/libavcodec/aacenc.c b/libavcodec/aacenc.c
index 20a8f5a..4b94f98 100644
--- a/libavcodec/aacenc.c
+++ b/libavcodec/aacenc.c
@@ -300,8 +300,8 @@ static void apply_mid_side_stereo(ChannelElement *cpe)
                  * ms_mask is set.
                  */
                 if (!cpe->ms_mask[w*16 + g] || cpe->is_mask[w*16 + g]
-                    || cpe->ch[0].band_type[w*16 + g] == NOISE_BT
-                    || cpe->ch[1].band_type[w*16 + g] == NOISE_BT) {
+                    || cpe->ch[0].band_type[w*16 + g] >= NOISE_BT
+                    || cpe->ch[1].band_type[w*16 + g] >= NOISE_BT) {
                     start += ics->swb_sizes[g];
                     continue;
                 }



More information about the ffmpeg-cvslog mailing list