Browse Source

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
tags/v0.6
Ramiro Polla 17 years ago
parent
commit
e8d341ce19
1 changed files with 8 additions and 3 deletions
  1. +8
    -3
      libavcodec/mlpdec.c

+ 8
- 3
libavcodec/mlpdec.c View File

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