diff options
Diffstat (limited to 'libavcodec/pcm.c')
-rw-r--r-- | libavcodec/pcm.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/libavcodec/pcm.c b/libavcodec/pcm.c index 6317e37b9b..c0ac736512 100644 --- a/libavcodec/pcm.c +++ b/libavcodec/pcm.c @@ -350,11 +350,12 @@ static int pcm_decode_frame(AVCodecContext *avctx, sample_size = av_get_bits_per_sample(avctx->codec_id)/8; - n = avctx->channels * sample_size; /* av_get_bits_per_sample returns 0 for CODEC_ID_PCM_DVD */ if (CODEC_ID_PCM_DVD == avctx->codec_id) /* 2 samples are interleaved per block in PCM_DVD */ - n = 2 * avctx->channels * avctx->bits_per_sample/8; + sample_size = avctx->bits_per_sample * 2 / 8; + + n = avctx->channels * sample_size; if(n && buf_size % n){ av_log(avctx, AV_LOG_ERROR, "invalid PCM packet\n"); |