From e8ba1cea3cfd8eb34c676aa1461dc21e47ab4493 Mon Sep 17 00:00:00 2001 From: Kostya Shishkov <kostya.shishkov@gmail.com> Date: Thu, 29 Jun 2006 11:02:33 +0000 Subject: [PATCH] This should make P-frames decoding work on x86 (by avoiding get_bits(0)) Originally committed as revision 5542 to svn://svn.ffmpeg.org/ffmpeg/trunk --- libavcodec/vc1.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/libavcodec/vc1.c b/libavcodec/vc1.c index 8901f79fa33..5df818c59b7 100644 --- a/libavcodec/vc1.c +++ b/libavcodec/vc1.c @@ -1341,14 +1341,18 @@ if(v->mv_mode != MV_PMODE_1MV && v->mv_mode != MV_PMODE_1MV_HPEL && v->mv_mode ! index1 = index%6; \ if (s->mspel && index1 == 5) val = 1; \ else val = 0; \ - val = get_bits(gb, size_table[index1] - val); \ + if(size_table[index1] - val > 0) \ + val = get_bits(gb, size_table[index1] - val); \ + else val = 0; \ sign = 0 - (val&1); \ _dmv_x = (sign ^ ((val>>1) + offset_table[index1])) - sign; \ \ index1 = index/6; \ if (s->mspel && index1 == 5) val = 1; \ - else val = 0; \ - val = get_bits(gb, size_table[index1] - val); \ + else val = 0; \ + if(size_table[index1] - val > 0) \ + val = get_bits(gb, size_table[index1] - val); \ + else val = 0; \ sign = 0 - (val&1); \ _dmv_y = (sign ^ ((val>>1) + offset_table[index1])) - sign; \ } -- GitLab