Module: ffmpeg
Branch: master
Commit: 6989cb2dae85ea455ffcc8a36a763134fb311e29

Author:    Justin Ruggles <[email protected]>
Committer: Ronald S. Bultje <[email protected]>
Date:      Wed Feb 23 13:11:03 2011 -0500

vmdaudio: correct the silent chunk count in the first block.

This fixes A/V sync with several samples, notably:
http://samples.mplayerhq.hu/game-formats/sierra-vmd/swat_*.vmd

Signed-off-by: Ronald S. Bultje <[email protected]>

---

 libavcodec/vmdav.c |    6 +-----
 1 files changed, 1 insertions(+), 5 deletions(-)

diff --git a/libavcodec/vmdav.c b/libavcodec/vmdav.c
index c6043e9..53d40a9 100644
--- a/libavcodec/vmdav.c
+++ b/libavcodec/vmdav.c
@@ -520,11 +520,7 @@ static int vmdaudio_decode_frame(AVCodecContext *avctx,
         uint32_t flags = AV_RB32(p);
         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;
-        else
-            silent_chunks = av_log2(flags + 1);
+        int silent_chunks = av_popcount(flags);
         if(*data_size < (s->block_align*silent_chunks + buf_size - 20) * 2)
             return -1;
         *data_size = 0;

_______________________________________________
ffmpeg-commits mailing list
[email protected]
https://lists.mplayerhq.hu/mailman/listinfo/ffmpeg-commits

Reply via email to