Commit 504403ab authored by Alex Converse's avatar Alex Converse Committed by 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@libav.org
Signed-off-by: 's avatarSean McGovern <gseanmcg@gmail.com>
parent b5f19f74
...@@ -1097,6 +1097,7 @@ int ff_decode_sbr_extension(AACContext *ac, SpectralBandReplication *sbr, ...@@ -1097,6 +1097,7 @@ int ff_decode_sbr_extension(AACContext *ac, SpectralBandReplication *sbr,
if (bytes_read > cnt) { if (bytes_read > cnt) {
av_log(ac->avctx, AV_LOG_ERROR, av_log(ac->avctx, AV_LOG_ERROR,
"Expected to read %d SBR bytes actually read %d.\n", cnt, bytes_read); "Expected to read %d SBR bytes actually read %d.\n", cnt, bytes_read);
sbr_turnoff(sbr);
} }
return cnt; return cnt;
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment