[x264-devel] commit: Fix regression in r1449 (Jason Garrett-Glaser )

git version control git at videolan.org
Sat Feb 27 01:16:54 CET 2010


x264 | branch: master | Jason Garrett-Glaser <darkshikari at gmail.com> | Thu Feb 25 02:07:48 2010 -0800| [7eac2495b2d32d6328bf68abbc4bb67006a0737a] | committer: Jason Garrett-Glaser 

Fix regression in r1449
Incorrectly placed thread MV check could result in rare thread MV internal errors, esp. with --non-deterministic.
These weren't fatal errors (x264 could recover and continue with slight compression loss).

> http://git.videolan.org/gitweb.cgi/x264.git/?a=commit;h=7eac2495b2d32d6328bf68abbc4bb67006a0737a
---

 common/macroblock.c |    6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/common/macroblock.c b/common/macroblock.c
index b4d0bfb..0d4f155 100644
--- a/common/macroblock.c
+++ b/common/macroblock.c
@@ -286,9 +286,6 @@ static int x264_mb_predict_mv_direct16x16_spatial( x264_t *h )
         return 1;
     }
 
-    if( !M64( mv ) || IS_INTRA( type_col ) || (ref[0]&&ref[1]) )
-        return 1;
-
     if( h->param.i_threads > 1
         && ( mv[0][1] > h->mb.mv_max_spel[1]
           || mv[1][1] > h->mb.mv_max_spel[1] ) )
@@ -301,6 +298,9 @@ static int x264_mb_predict_mv_direct16x16_spatial( x264_t *h )
         return 0;
     }
 
+    if( !M64( mv ) || IS_INTRA( type_col ) || (ref[0]&&ref[1]) )
+        return 1;
+
     /* Don't do any checks other than the ones we have to, based
      * on the size of the colocated partitions.
      * Depends on the enum order: D_8x8, D_16x8, D_8x16, D_16x16 */



More information about the x264-devel mailing list