[SCM] libav/experimental: This should make P-frames decoding work on x86 (by avoiding get_bits(0))

siretart at users.alioth.debian.org siretart at users.alioth.debian.org
Sun Jun 30 15:48:23 UTC 2013


The following commit has been merged in the experimental branch:
commit e8ba1cea3cfd8eb34c676aa1461dc21e47ab4493
Author: Kostya Shishkov <kostya.shishkov at gmail.com>
Date:   Thu Jun 29 11:02:33 2006 +0000

    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

diff --git a/libavcodec/vc1.c b/libavcodec/vc1.c
index 8901f79..5df818c 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;     \
   }

-- 
Libav/FFmpeg packaging



More information about the pkg-multimedia-commits mailing list