[FFmpeg-cvslog] aac_ltp: actually signal LTP as off during EIGHT_SHORT windows

Rostislav Pehlivanov git at videolan.org
Thu Nov 26 19:21:30 CET 2015


ffmpeg | branch: master | Rostislav Pehlivanov <atomnuker at gmail.com> | Thu Nov 26 18:20:42 2015 +0000| [f5b7a29ae893add491397bebe6f4cc5deec2d480] | committer: Rostislav Pehlivanov

aac_ltp: actually signal LTP as off during EIGHT_SHORT windows

This hugely reduces the echo which was introduced with the previous
commit (though likely because previously everything was broken).
Makes LTP actually worthwhile now.

Signed-off-by: Rostislav Pehlivanov <atomnuker at gmail.com>

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

 libavcodec/aacenc_ltp.c |    4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/libavcodec/aacenc_ltp.c b/libavcodec/aacenc_ltp.c
index 5aaaf6f..e19f3cc 100644
--- a/libavcodec/aacenc_ltp.c
+++ b/libavcodec/aacenc_ltp.c
@@ -135,8 +135,10 @@ void ff_aac_adjust_common_ltp(AACEncContext *s, ChannelElement *cpe)
 
     if (!cpe->common_window ||
         sce0->ics.window_sequence[0] == EIGHT_SHORT_SEQUENCE ||
-        sce1->ics.window_sequence[0] == EIGHT_SHORT_SEQUENCE)
+        sce1->ics.window_sequence[0] == EIGHT_SHORT_SEQUENCE) {
+        sce0->ics.ltp.present = 0;
         return;
+    }
 
     for (sfb = 0; sfb < FFMIN(sce0->ics.max_sfb, MAX_LTP_LONG_SFB); sfb++) {
         int sum = sce0->ics.ltp.used[sfb] + sce1->ics.ltp.used[sfb];



More information about the ffmpeg-cvslog mailing list