Fix PCM DVD divide by zero bug introduced in r14659. Patch supplied by lars dot taeub...
authorPeter Ross <pross@xvid.org>
Wed, 20 Aug 2008 11:05:15 +0000 (11:05 +0000)
committerPeter Ross <pross@xvid.org>
Wed, 20 Aug 2008 11:05:15 +0000 (11:05 +0000)
Originally committed as revision 14864 to svn://svn.ffmpeg.org/ffmpeg/trunk

libavcodec/pcm.c

index 6317e37b9bb2c6768288c9856448cca4a903aff8..c0ac7365120b658645aa26c8573c5054f742d234 100644 (file)
@@ -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");