Bug 696390 - Fix libvpx splitmv clamping, r=cpearce
authorJohn Koleszar <jkoleszar@google.com>
Wed, 02 Nov 2011 15:31:10 -0700
changeset 79642 bc3fe56d732db18c539cdc98e77c79a4cf0a65e0
parent 79641 151497ce74af21b2f353556114c647b6a1bd0774
child 79643 5e75c166fd2c56138577a9f19ca6e07dd8bd8443
push id21418
push usermak77@bonardo.net
push dateThu, 03 Nov 2011 14:57:14 +0000
treeherdermozilla-central@6cbeabc07c59 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewerscpearce
bugs696390
milestone10.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 696390 - Fix libvpx splitmv clamping, r=cpearce
media/libvpx/bug696390.patch
media/libvpx/update.sh
media/libvpx/vp8/decoder/decodemv.c
new file mode 100644
--- /dev/null
+++ b/media/libvpx/bug696390.patch
@@ -0,0 +1,22 @@
+diff --git a/media/libvpx/vp8/decoder/decodemv.c b/media/libvpx/vp8/decoder/decodemv.c
+--- a/media/libvpx/vp8/decoder/decodemv.c
++++ b/media/libvpx/vp8/decoder/decodemv.c
+@@ -361,17 +361,17 @@ static void read_mb_modes_mv(VP8D_COMP *
+   #ifdef VPX_MODE_COUNT
+                     vp8_mv_cont_count[mv_contz][2]++;
+   #endif
+                     break;
+                 default:
+                     break;
+                 }
+ 
+-                mbmi->need_to_clamp_mvs = vp8_check_mv_bounds(&blockmv,
++                mbmi->need_to_clamp_mvs |= vp8_check_mv_bounds(&blockmv,
+                                                           mb_to_left_edge,
+                                                           mb_to_right_edge,
+                                                           mb_to_top_edge,
+                                                           mb_to_bottom_edge);
+ 
+                 {
+                     /* Fill (uniform) modes, mvs of jth subset.
+                      Must do it here because ensuing subsets can
--- a/media/libvpx/update.sh
+++ b/media/libvpx/update.sh
@@ -433,8 +433,11 @@ do
   cp -v $1/$f $f
 done
 
 # Patch to compile with Sun Studio on Solaris
 patch -p3 < solaris.patch
 
 # Patch to fix errors including C headers in C++
 patch -p3 < compile_errors.patch
+
+# Patch to fix MV clamping in the v0.9.7-p1 release.
+patch -p3 < bug696390.patch
--- a/media/libvpx/vp8/decoder/decodemv.c
+++ b/media/libvpx/vp8/decoder/decodemv.c
@@ -361,17 +361,17 @@ static void read_mb_modes_mv(VP8D_COMP *
   #ifdef VPX_MODE_COUNT
                     vp8_mv_cont_count[mv_contz][2]++;
   #endif
                     break;
                 default:
                     break;
                 }
 
-                mbmi->need_to_clamp_mvs = vp8_check_mv_bounds(&blockmv,
+                mbmi->need_to_clamp_mvs |= vp8_check_mv_bounds(&blockmv,
                                                           mb_to_left_edge,
                                                           mb_to_right_edge,
                                                           mb_to_top_edge,
                                                           mb_to_bottom_edge);
 
                 {
                     /* Fill (uniform) modes, mvs of jth subset.
                      Must do it here because ensuing subsets can