[FFmpeg-cvslog] aacsbr: Turnoff in the event of over read.

Alex Converse git at videolan.org
Tue Mar 21 19:10:06 EET 2017


ffmpeg | branch: master | Alex Converse <alex.converse at gmail.com> | Mon Mar 20 12:44:42 2017 -0700| [2c8a3aa985acc906ecab37357f2798da7cb9822d] | committer: Alex Converse

aacsbr: Turnoff in the event of over read.

Aliased compressed AAC bytes are almost certainly not meaningful SBR
data. In the wild this causes harsh artifacts switching HE-AAC streams
that don't have SBR headers aligned with segment boundaries.

Turning off SBR falls back to a default set of upsampling parameters
that can function as a sort of error concealment. This is consistent
with how the decoder handles other sorts of errors.

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

 libavcodec/aacsbr_template.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/libavcodec/aacsbr_template.c b/libavcodec/aacsbr_template.c
index cf8621e..750131c 100644
--- a/libavcodec/aacsbr_template.c
+++ b/libavcodec/aacsbr_template.c
@@ -1137,6 +1137,7 @@ int AAC_RENAME(ff_decode_sbr_extension)(AACContext *ac, SpectralBandReplication
     if (bytes_read > cnt) {
         av_log(ac->avctx, AV_LOG_ERROR,
                "Expected to read %d SBR bytes actually read %d.\n", cnt, bytes_read);
+        sbr_turnoff(sbr);
     }
     return cnt;
 }



More information about the ffmpeg-cvslog mailing list