ref: 8d681b36c7bd3e100ef707db10f562a6a90d31a6
parent: 22c36dd464b486a7645a46beeacec7026df67557
parent: 037a50ed366b0b476e414184cc9b4339a563e3de
author: Pascal Massimino <pascal.massimino@gmail.com>
date: Sat Jul 16 00:41:46 EDT 2016
Merge "vp9_error_block_test: simplify fn wrapper generation"
--- a/test/vp9_error_block_test.cc
+++ b/test/vp9_error_block_test.cc
@@ -38,6 +38,19 @@
typedef std::tr1::tuple<ErrorBlockFunc, ErrorBlockFunc, vpx_bit_depth_t>
ErrorBlockParam;
+// wrapper for 8-bit block error functions without a 'bps' param.
+typedef int64_t (*HighBdBlockError8bit)(const tran_low_t *coeff,
+ const tran_low_t *dqcoeff,
+ intptr_t block_size, int64_t *ssz);
+template <HighBdBlockError8bit fn>
+int64_t HighBdBlockError8bitWrapper(const tran_low_t *coeff,
+ const tran_low_t *dqcoeff,
+ intptr_t block_size, int64_t *ssz,
+ int bps) {
+ EXPECT_EQ(8, bps);
+ return fn(coeff, dqcoeff, block_size, ssz);
+}
+
class ErrorBlockTest
: public ::testing::TestWithParam<ErrorBlockParam> {
public:
@@ -157,27 +170,9 @@
<< "First failed at test case " << first_failure;
}
-#if HAVE_SSE2 || HAVE_AVX
using std::tr1::make_tuple;
-int64_t wrap_vp9_highbd_block_error_8bit_c(const tran_low_t *coeff,
- const tran_low_t *dqcoeff,
- intptr_t block_size,
- int64_t *ssz, int bps) {
- EXPECT_EQ(8, bps);
- return vp9_highbd_block_error_8bit_c(coeff, dqcoeff, block_size, ssz);
-}
-#endif // HAVE_SSE2 || HAVE_AVX
-
#if HAVE_SSE2
-int64_t wrap_vp9_highbd_block_error_8bit_sse2(const tran_low_t *coeff,
- const tran_low_t *dqcoeff,
- intptr_t block_size,
- int64_t *ssz, int bps) {
- EXPECT_EQ(8, bps);
- return vp9_highbd_block_error_8bit_sse2(coeff, dqcoeff, block_size, ssz);
-}
-
INSTANTIATE_TEST_CASE_P(
SSE2, ErrorBlockTest,
::testing::Values(
@@ -187,24 +182,19 @@
&vp9_highbd_block_error_c, VPX_BITS_12),
make_tuple(&vp9_highbd_block_error_sse2,
&vp9_highbd_block_error_c, VPX_BITS_8),
- make_tuple(&wrap_vp9_highbd_block_error_8bit_sse2,
- &wrap_vp9_highbd_block_error_8bit_c, VPX_BITS_8)));
+ make_tuple(
+ &HighBdBlockError8bitWrapper<vp9_highbd_block_error_8bit_sse2>,
+ &HighBdBlockError8bitWrapper<vp9_highbd_block_error_8bit_c>,
+ VPX_BITS_8)));
#endif // HAVE_SSE2
#if HAVE_AVX
-int64_t wrap_vp9_highbd_block_error_8bit_avx(const tran_low_t *coeff,
- const tran_low_t *dqcoeff,
- intptr_t block_size,
- int64_t *ssz, int bps) {
- EXPECT_EQ(8, bps);
- return vp9_highbd_block_error_8bit_avx(coeff, dqcoeff, block_size, ssz);
-}
-
INSTANTIATE_TEST_CASE_P(
AVX, ErrorBlockTest,
- ::testing::Values(
- make_tuple(&wrap_vp9_highbd_block_error_8bit_avx,
- &wrap_vp9_highbd_block_error_8bit_c, VPX_BITS_8)));
+ ::testing::Values(make_tuple(
+ &HighBdBlockError8bitWrapper<vp9_highbd_block_error_8bit_avx>,
+ &HighBdBlockError8bitWrapper<vp9_highbd_block_error_8bit_c>,
+ VPX_BITS_8)));
#endif // HAVE_AVX
#endif // CONFIG_VP9_HIGHBITDEPTH