1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2024-12-23 12:43:46 +02:00

pcm_bluray: Return AVERROR_INVALIDDATA instead of -1 on header errors

Signed-off-by: Diego Biurrun <diego@biurrun.de>
This commit is contained in:
Christian Schmidt 2013-08-06 10:21:42 +02:00 committed by Diego Biurrun
parent 6fb65973c9
commit 1c6d2bb9a9

View File

@ -1,6 +1,6 @@
/* /*
* LPCM codecs for PCM formats found in MPEG streams * LPCM codecs for PCM formats found in MPEG streams
* Copyright (c) 2009 Christian Schmidt * Copyright (c) 2009, 2013 Christian Schmidt
* *
* This file is part of Libav. * This file is part of Libav.
* *
@ -72,7 +72,7 @@ static int pcm_bluray_parse_header(AVCodecContext *avctx,
avctx->bits_per_coded_sample = bits_per_samples[header[3] >> 6]; avctx->bits_per_coded_sample = bits_per_samples[header[3] >> 6];
if (!avctx->bits_per_coded_sample) { if (!avctx->bits_per_coded_sample) {
av_log(avctx, AV_LOG_ERROR, "reserved sample depth (0)\n"); av_log(avctx, AV_LOG_ERROR, "reserved sample depth (0)\n");
return -1; return AVERROR_INVALIDDATA;
} }
avctx->sample_fmt = avctx->bits_per_coded_sample == 16 ? AV_SAMPLE_FMT_S16 : avctx->sample_fmt = avctx->bits_per_coded_sample == 16 ? AV_SAMPLE_FMT_S16 :
AV_SAMPLE_FMT_S32; AV_SAMPLE_FMT_S32;
@ -93,7 +93,7 @@ static int pcm_bluray_parse_header(AVCodecContext *avctx,
avctx->sample_rate = 0; avctx->sample_rate = 0;
av_log(avctx, AV_LOG_ERROR, "reserved sample rate (%d)\n", av_log(avctx, AV_LOG_ERROR, "reserved sample rate (%d)\n",
header[2] & 0x0f); header[2] & 0x0f);
return -1; return AVERROR_INVALIDDATA;
} }
/* /*
@ -107,7 +107,7 @@ static int pcm_bluray_parse_header(AVCodecContext *avctx,
if (!avctx->channels) { if (!avctx->channels) {
av_log(avctx, AV_LOG_ERROR, "reserved channel configuration (%d)\n", av_log(avctx, AV_LOG_ERROR, "reserved channel configuration (%d)\n",
channel_layout); channel_layout);
return -1; return AVERROR_INVALIDDATA;
} }
avctx->bit_rate = FFALIGN(avctx->channels, 2) * avctx->sample_rate * avctx->bit_rate = FFALIGN(avctx->channels, 2) * avctx->sample_rate *
@ -135,11 +135,11 @@ static int pcm_bluray_decode_frame(AVCodecContext *avctx, void *data,
if (buf_size < 4) { if (buf_size < 4) {
av_log(avctx, AV_LOG_ERROR, "PCM packet too small\n"); av_log(avctx, AV_LOG_ERROR, "PCM packet too small\n");
return -1; return AVERROR_INVALIDDATA;
} }
if (pcm_bluray_parse_header(avctx, src)) if ((retval = pcm_bluray_parse_header(avctx, src)))
return -1; return retval;
src += 4; src += 4;
buf_size -= 4; buf_size -= 4;