[FFmpeg-cvslog] aacenc_tns: fix triggering an assertion with assert-level=2

Rostislav Pehlivanov git at videolan.org
Sat Aug 29 20:26:07 CEST 2015


ffmpeg | branch: master | Rostislav Pehlivanov <atomnuker at gmail.com> | Sat Aug 29 19:01:59 2015 +0100| [0818705bf37e2c62de1947f1c06ad63262e51fc6] | committer: Rostislav Pehlivanov

aacenc_tns: fix triggering an assertion with assert-level=2

It also made no sense to actually make the filter span the entire
window including the first band of the next window.

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

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

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

diff --git a/libavcodec/aacenc_tns.c b/libavcodec/aacenc_tns.c
index 912229e..e948b32 100644
--- a/libavcodec/aacenc_tns.c
+++ b/libavcodec/aacenc_tns.c
@@ -173,7 +173,7 @@ void ff_aac_search_for_tns(AACEncContext *s, SingleChannelElement *sce)
     const int is8 = sce->ics.window_sequence[0] == EIGHT_SHORT_SEQUENCE;
     const int tns_max_order = is8 ? 7 : s->profile == FF_PROFILE_AAC_LOW ? 12 : TNS_MAX_ORDER;
 
-    for (w = 0; w < sce->ics.num_windows; w += sce->ics.group_len[w]) {
+    for (w = 0; w < sce->ics.num_windows; w++) {
         int order = 0, filters = 1;
         int sfb_start = 0, sfb_len = 0;
         int coef_start = 0, coef_len = 0;
@@ -197,7 +197,7 @@ void ff_aac_search_for_tns(AACEncContext *s, SingleChannelElement *sce)
                     threshold += band->threshold;
                 }
                 if (!sfb_len) {
-                    sfb_len = (w+sce->ics.group_len[w])*16+g - sfb_start;
+                    sfb_len = (w+1)*16+g - sfb_start - 1;
                     coef_len = sce->ics.swb_offset[sfb_start + sfb_len] - coef_start;
                 }
             }



More information about the ffmpeg-cvslog mailing list