diff mpegvideo.c @ 1048:75a659fae7e0 libavcodec

divx503 decoding fix
author michaelni
date Sun, 02 Feb 2003 23:34:30 +0000
parents a78f6f72d54e
children e5a9dbf597d4
line wrap: on
line diff
--- a/mpegvideo.c	Sun Feb 02 19:53:01 2003 +0000
+++ b/mpegvideo.c	Sun Feb 02 23:34:30 2003 +0000
@@ -1680,6 +1680,10 @@
     if(field_based){
         mx= motion_x/2;
         my= motion_y>>1;
+    }else if(s->workaround_bugs&FF_BUG_QPEL_CHROMA2){
+        static const int rtab[8]= {0,0,1,1,0,0,0,1};
+        mx= (motion_x>>1) + rtab[motion_x&7];
+        my= (motion_y>>1) + rtab[motion_y&7];
     }else if(s->workaround_bugs&FF_BUG_QPEL_CHROMA){
         mx= (motion_x>>1)|(motion_x&1);
         my= (motion_y>>1)|(motion_y&1);
@@ -1689,6 +1693,7 @@
     }
     mx= (mx>>1)|(mx&1);
     my= (my>>1)|(my&1);
+
     dxy= (mx&1) | ((my&1)<<1);
     mx>>=1;
     my>>=1;