]> granicus.if.org Git - libvpx/commitdiff
vp9: fix compilation for g++ 6.2.x
authorTristan Matthews <le.businessman@gmail.com>
Thu, 22 Sep 2016 22:49:27 +0000 (18:49 -0400)
committerJames Zern <jzern@google.com>
Wed, 28 Sep 2016 06:17:31 +0000 (23:17 -0700)
Inline function called from test/dct16x16_test.cc wouldn't build due to:
  invalid operands of types ‘__gnu_cxx::__enable_if<true, double>::__type
  {aka double}’ and ‘int’ to binary ‘operator>>’
  return (abs(ref->row) >> 3) < COMPANDED_MVREF_THRESH &&

this converts the test to abs() < COMPANDED_MVREF_THRESH << 3 which
hides the promotion issue.

Regression from commit de993a847f8080d3128420c8ef8495642013bdb1

BUG=webm:1291

Change-Id: I73b5943d07d5b61b709d299114216a2371a8fd62

vp9/common/vp9_entropymv.h

index a8cc7e93a223186b5f2d19c07192648786b00849..e2fe37a327af2f062172e0437ef4b28467586a54 100644 (file)
@@ -27,12 +27,9 @@ void vp9_init_mv_probs(struct VP9Common *cm);
 
 void vp9_adapt_mv_probs(struct VP9Common *cm, int usehp);
 
-// Integer pel reference mv threshold for use of high-precision 1/8 mv
-#define COMPANDED_MVREF_THRESH 8
-
 static INLINE int use_mv_hp(const MV *ref) {
-  return (abs(ref->row) >> 3) < COMPANDED_MVREF_THRESH &&
-         (abs(ref->col) >> 3) < COMPANDED_MVREF_THRESH;
+  const int kMvRefThresh = 64;  // threshold for use of high-precision 1/8 mv
+  return abs(ref->row) < kMvRefThresh && abs(ref->col) < kMvRefThresh;
 }
 
 #define MV_UPDATE_PROB 252