[FFmpeg-devel] [PATCH] aacsbr: Turnoff in the event of over read.
Alex Converse
alex.converse at gmail.com
Mon Mar 20 21:52:00 EET 2017
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.
---
libavcodec/aacsbr_template.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/libavcodec/aacsbr_template.c b/libavcodec/aacsbr_template.c
index cf8621eee0..750131c64c 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;
}
--
2.11.0.390.gc69c2f50cf-goog
More information about the ffmpeg-devel
mailing list