Browse Source

avcodec/dca: fix sync word search error condition

This didn't actually check if sync word was found and always errored out
with "-err_detect explode" option enabled.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
tags/n3.1
foo86 Michael Niedermayer 9 years ago
parent
commit
ce2f9fdb0a
1 changed files with 9 additions and 6 deletions
  1. +9
    -6
      libavcodec/dca_core.c

+ 9
- 6
libavcodec/dca_core.c View File

@@ -1844,9 +1844,10 @@ static int parse_optional_info(DCACoreDecoder *s)
} }
} }


if (s->avctx->err_recognition & AV_EF_EXPLODE) {
if (!s->xch_pos) {
av_log(s->avctx, AV_LOG_ERROR, "XCH sync word not found\n"); av_log(s->avctx, AV_LOG_ERROR, "XCH sync word not found\n");
return AVERROR_INVALIDDATA;
if (s->avctx->err_recognition & AV_EF_EXPLODE)
return AVERROR_INVALIDDATA;
} }
break; break;


@@ -1866,9 +1867,10 @@ static int parse_optional_info(DCACoreDecoder *s)
} }
} }


if (s->avctx->err_recognition & AV_EF_EXPLODE) {
if (!s->x96_pos) {
av_log(s->avctx, AV_LOG_ERROR, "X96 sync word not found\n"); av_log(s->avctx, AV_LOG_ERROR, "X96 sync word not found\n");
return AVERROR_INVALIDDATA;
if (s->avctx->err_recognition & AV_EF_EXPLODE)
return AVERROR_INVALIDDATA;
} }
break; break;


@@ -1891,9 +1893,10 @@ static int parse_optional_info(DCACoreDecoder *s)
} }
} }


if (s->avctx->err_recognition & AV_EF_EXPLODE) {
if (!s->xxch_pos) {
av_log(s->avctx, AV_LOG_ERROR, "XXCH sync word not found\n"); av_log(s->avctx, AV_LOG_ERROR, "XXCH sync word not found\n");
return AVERROR_INVALIDDATA;
if (s->avctx->err_recognition & AV_EF_EXPLODE)
return AVERROR_INVALIDDATA;
} }
break; break;
} }


Loading…
Cancel
Save