Browse Source

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.
tags/n3.3
Alex Converse 9 years ago
parent
commit
2c8a3aa985
1 changed files with 1 additions and 0 deletions
  1. +1
    -0
      libavcodec/aacsbr_template.c

+ 1
- 0
libavcodec/aacsbr_template.c View File

@@ -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;
}


Loading…
Cancel
Save