AAC encoder: fix possible assertion failure in PNS
authorClaudio Freire <klaussfreire@gmail.com>
Tue, 22 Dec 2015 08:26:12 +0000 (05:26 -0300)
committerClaudio Freire <klaussfreire@gmail.com>
Tue, 22 Dec 2015 08:26:12 +0000 (05:26 -0300)
Fix possible SF delta violation that would cause an
eventual assertion failure in some corner cases (esp
on very low bitrates) when marking bands for PNS due
to misuse of the sf_delta utilities

libavcodec/aaccoder.c

index 15d467b..6fcc6a0 100644 (file)
@@ -726,9 +726,10 @@ static void search_for_pns(AACEncContext *s, AVCodecContext *avctx, SingleChanne
                 sce->band_type[w*16+g] = NOISE_BT;
                 sce->zeroes[w*16+g] = 0;
                 prev = noise_sfi;
+            } else {
+                if (!sce->zeroes[w*16+g])
+                    prev_sf = sce->sf_idx[w*16+g];
             }
-            if (!sce->zeroes[w*16+g])
-                prev_sf = sce->sf_idx[w*16+g];
         }
     }
 }