From c681887652abbf750f72f11e35d37a86f42e1fb8 Mon Sep 17 00:00:00 2001
From: Yaowu Xu <yaowu@google.com>
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 8f089c6839..1ac6fb0a90 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 91a50607ac..5bc6237e6e 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 <math.h>
+#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
-- 
GitLab