On Mon, Oct 24, 2011 at 05:11:18PM -0400, Justin Ruggles wrote:
> ---
> libavcodec/pcm.c | 12 +++++++-----
> 1 files changed, 7 insertions(+), 5 deletions(-)
>
> diff --git a/libavcodec/pcm.c b/libavcodec/pcm.c
> index 4b11583..158366c 100644
> --- a/libavcodec/pcm.c
> +++ b/libavcodec/pcm.c
> @@ -279,10 +279,15 @@ static int pcm_decode_frame(AVCodecContext *avctx,
> sample_size = av_get_bits_per_sample(avctx->codec_id)/8;
>
> /* av_get_bits_per_sample returns 0 for CODEC_ID_PCM_DVD */
> - if (CODEC_ID_PCM_DVD == avctx->codec_id)
> + if (CODEC_ID_PCM_DVD == avctx->codec_id) {
> + if (avctx->bits_per_coded_sample != 20 &&
> + avctx->bits_per_coded_sample != 24) {
> + av_log(avctx, AV_LOG_ERROR, "PCM DVD unsupported sample
> depth\n");
> + return AVERROR(EINVAL);
> + }
> /* 2 samples are interleaved per block in PCM_DVD */
> sample_size = avctx->bits_per_coded_sample * 2 / 8;
> - else if (avctx->codec_id == CODEC_ID_PCM_LXF)
> + } else if (avctx->codec_id == CODEC_ID_PCM_LXF)
> /* we process 40-bit blocks per channel for LXF */
> sample_size = 5;
>
> @@ -433,9 +438,6 @@ static int pcm_decode_frame(AVCodecContext *avctx,
> src = src8;
> }
> break;
> - default:
> - av_log(avctx, AV_LOG_ERROR, "PCM DVD unsupported sample
> depth\n");
> - return -1;
> }
> samples = (uint8_t *) dst_int32_t;
> break;
ok
Janne
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel