From c681887652abbf750f72f11e35d37a86f42e1fb8 Mon Sep 17 00:00:00 2001 From: Yaowu Xu Date: Thu, 13 Dec 2012 14:51:27 -0800 Subject: [PATCH] fixed build issue with round() not defined in msvc Change-Id: I8fe8462a0c2f636d8b43c0243832ca67578f3665 --- test/dct32x32_test.cc | 8 ++++++++ vp9/common/vp9_systemdependent.h | 14 ++++++++++++++ 2 files changed, 22 insertions(+) diff --git a/test/dct32x32_test.cc b/test/dct32x32_test.cc index 8f089c6..1ac6fb0 100644 --- a/test/dct32x32_test.cc +++ b/test/dct32x32_test.cc @@ -27,6 +27,14 @@ extern "C" { using libvpx_test::ACMRandom; namespace { +#ifdef _MSC_VER +static int round(double x) { + if (x < 0) + return (int)ceil(x - 0.5); + else + return (int)floor(x + 0.5); +} +#endif #if !CONFIG_DWT32X32HYBRID static const double kPi = 3.141592653589793238462643383279502884; diff --git a/vp9/common/vp9_systemdependent.h b/vp9/common/vp9_systemdependent.h index 91a5060..5bc6237 100644 --- a/vp9/common/vp9_systemdependent.h +++ b/vp9/common/vp9_systemdependent.h @@ -10,6 +10,10 @@ #ifndef VP9_COMMON_VP9_SYSTEMDEPENDENT_H_ #define VP9_COMMON_VP9_SYSTEMDEPENDENT_H_ +#ifdef _MSC_VER +#include +#endif + #include "vpx_ports/config.h" #if ARCH_X86 || ARCH_X86_64 void vpx_reset_mmx_state(void); @@ -18,6 +22,16 @@ void vpx_reset_mmx_state(void); #define vp9_clear_system_state() #endif +#ifdef _MSC_VER +// round is not defined in MSVC +static int round(double x) { + if (x < 0) + return (int)ceil(x - 0.5); + else + return (int)floor(x + 0.5); +} +#endif + struct VP9Common; void vp9_machine_specific_config(struct VP9Common *); #endif -- 2.7.4