ref: 32c375447c037526f32ea0e8bc50c8c783fa14ce
parent: 99ef84c65a2b5760bec5d9300974946303090afb
author: Tristan Matthews <[email protected]>
date: Thu Sep 22 14:49:27 EDT 2016
vp9: fix compilation for g++ 6.2.x 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
--- a/vp9/common/vp9_entropymv.h
+++ b/vp9/common/vp9_entropymv.h
@@ -27,12 +27,9 @@
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