mlpdec: Split sync word error and MLP sync word check.

The previous code would print the wrong error message for MLP streams with
TrueHD noise type.

Originally committed as revision 18762 to svn://svn.ffmpeg.org/ffmpeg/trunk
release/0.6
Ramiro Polla 16 years ago
parent aff42ee0ff
commit e8d341ce19
  1. 11
      libavcodec/mlpdec.c

@ -344,15 +344,20 @@ static int read_restart_header(MLPDecodeContext *m, GetBitContext *gbp,
: MAX_MATRIX_CHANNEL_TRUEHD;
sync_word = get_bits(gbp, 13);
s->noise_type = get_bits1(gbp);
if ((m->avctx->codec_id == CODEC_ID_MLP && s->noise_type) ||
sync_word != 0x31ea >> 1) {
if (sync_word != 0x31ea >> 1) {
av_log(m->avctx, AV_LOG_ERROR,
"restart header sync incorrect (got 0x%04x)\n", sync_word);
return -1;
}
s->noise_type = get_bits1(gbp);
if (m->avctx->codec_id == CODEC_ID_MLP && s->noise_type) {
av_log(m->avctx, AV_LOG_ERROR, "MLP must have 0x31ea sync word.\n");
return -1;
}
skip_bits(gbp, 16); /* Output timestamp */
s->min_channel = get_bits(gbp, 4);

Loading…
Cancel
Save