This should make P-frames decoding work on x86 (by avoiding get_bits(0))
authorKostya Shishkov <kostya.shishkov@gmail.com>
Thu, 29 Jun 2006 11:02:33 +0000 (11:02 +0000)
committerKostya Shishkov <kostya.shishkov@gmail.com>
Thu, 29 Jun 2006 11:02:33 +0000 (11:02 +0000)
Originally committed as revision 5542 to svn://svn.ffmpeg.org/ffmpeg/trunk

libavcodec/vc1.c

index 8901f79..5df818c 100644 (file)
@@ -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;     \
   }