]> git.sesse.net Git - x264/commitdiff
Another MV clipping fix.
authorLoren Merritt <pengvado@videolan.org>
Thu, 3 Feb 2005 11:03:17 +0000 (11:03 +0000)
committerLoren Merritt <pengvado@videolan.org>
Thu, 3 Feb 2005 11:03:17 +0000 (11:03 +0000)
git-svn-id: svn://svn.videolan.org/x264/trunk@114 df754926-b1dd-0310-bc7b-ec298dee348c

encoder/me.c

index 369c514298d5ce3cdd799e3369c332a6ef497e46..99703cdd4482928b7a7cfae074d36eaa9bfe1523 100644 (file)
@@ -76,8 +76,8 @@ void x264_me_search_ref( x264_t *h, x264_me_t *m, int (*mvc)[2], int i_mvc, int
      * with componant magnitude greater.
      * XXX: if some vector can go outside, (accelerator, ....) you need to clip
      * them yourself */
-    bmx = x264_clip3( ( m->mvp[0] + 2 ) >> 2, mv_x_min, mv_x_max );
-    bmy = x264_clip3( ( m->mvp[1] + 2 ) >> 2, mv_y_min, mv_y_max );
+    bmx = ( x264_clip3( m->mvp[0], mv_x_min, mv_x_max ) + 2 ) >> 2;
+    bmy = ( x264_clip3( m->mvp[1], mv_y_min, mv_y_max ) + 2 ) >> 2;
 
     bcost = h->pixf.sad[i_pixel]( m->p_fenc, m->i_stride,
                 &p_fref[bmy * m->i_stride + bmx], m->i_stride );
@@ -85,8 +85,8 @@ void x264_me_search_ref( x264_t *h, x264_me_t *m, int (*mvc)[2], int i_mvc, int
     /* try extra predictors if provided */
     for( i_iter = 0; i_iter < i_mvc; i_iter++ )
     {
-        const int mx = x264_clip3( ( mvc[i_iter][0] + 2 ) >> 2, mv_x_min, mv_x_max );
-        const int my = x264_clip3( ( mvc[i_iter][1] + 2 ) >> 2, mv_y_min, mv_y_max );
+        const int mx = ( x264_clip3( mvc[i_iter][0], mv_x_min, mv_x_max ) + 2 ) >> 2;
+        const int my = ( x264_clip3( mvc[i_iter][1], mv_y_min, mv_y_max ) + 2 ) >> 2;
         if( mx != bmx || my != bmy )
             COST_MV( mx, my );
     }