[FFmpeg-cvslog] aacsbr: Turnoff in the event of over read.
Alex Converse
git at videolan.org
Tue Oct 31 00:51:18 EET 2017
ffmpeg | branch: master | Alex Converse <alex.converse at gmail.com> | Mon Mar 20 12:44:42 2017 -0700| [504403ab28688588fb85817ad58964482f67f29f] | committer: Sean McGovern
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.
Bug-Id: 1047
CC: libav-stable at libav.org
Signed-off-by: Sean McGovern <gseanmcg at gmail.com>
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=504403ab28688588fb85817ad58964482f67f29f
---
libavcodec/aacsbr.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/libavcodec/aacsbr.c b/libavcodec/aacsbr.c
index 99f7b0829c..d9bbe5eacc 100644
--- a/libavcodec/aacsbr.c
+++ b/libavcodec/aacsbr.c
@@ -1097,6 +1097,7 @@ int ff_decode_sbr_extension(AACContext *ac, SpectralBandReplication *sbr,
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