vmdaudio: fix raw_block_size calculation.
authorJustin Ruggles <justin.ruggles@gmail.com>
Wed, 23 Feb 2011 18:10:58 +0000 (13:10 -0500)
committerMichael Niedermayer <michaelni@gmx.at>
Sat, 26 Feb 2011 02:15:59 +0000 (03:15 +0100)
The size should depend on the output sample size, not the internal bit depth.

Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
(cherry picked from commit a58bcb40b164b92957db73e702465808a9180126)

libavcodec/vmdav.c

index e396c0b..c7f99db 100644 (file)
@@ -539,7 +539,8 @@ static int vmdaudio_decode_frame(AVCodecContext *avctx,
     } else if (buf[6] == 2) {
         /* initial chunk, may contain audio and silence */
         uint32_t flags = AV_RB32(p);
-        int raw_block_size = s->block_align * s->bits / 8;
+        int raw_block_size = s->block_align *
+                             (av_get_bits_per_sample_fmt(avctx->sample_fmt) / 8);
         int silent_chunks;
         if(flags == 0xFFFFFFFF)
             silent_chunks = 32;