shithub: openh264

Download patch

ref: 11bdd8adad5b651ecdbd79239d9ee3cd4faf826f
parent: 33fe2b5883ce776e7c4fec88a049531d7785e491
author: Martin Storsjö <martin@martin.st>
date: Mon Jan 27 07:50:16 EST 2014

Move the measure_time.h header to the common library

Both encoder and decoder versions were functionally equivalent,
but I picked the decoder version (but added the static inline
keywords to it) since the encoder one was quite messy with a lot
of commented out code.

--- a/codec/build/win32/dec/WelsDecCore.vcproj
+++ b/codec/build/win32/dec/WelsDecCore.vcproj
@@ -806,7 +806,7 @@
 					>
 				</File>
 				<File
-					RelativePath="..\..\..\decoder\core\inc\measure_time.h"
+					RelativePath="..\..\..\common\measure_time.h"
 					>
 				</File>
 				<File
--- a/codec/build/win32/enc/WelsEncCore.vcproj
+++ b/codec/build/win32/enc/WelsEncCore.vcproj
@@ -1517,7 +1517,7 @@
 				>
 			</File>
 			<File
-				RelativePath="..\..\..\encoder\core\inc\measure_time.h"
+				RelativePath="..\..\..\common\measure_time.h"
 				>
 			</File>
 			<File
--- /dev/null
+++ b/codec/common/measure_time.h
@@ -1,0 +1,89 @@
+/*!
+ * \copy
+ *     Copyright (c)  2009-2013, Cisco Systems
+ *     All rights reserved.
+ *
+ *     Redistribution and use in source and binary forms, with or without
+ *     modification, are permitted provided that the following conditions
+ *     are met:
+ *
+ *        * Redistributions of source code must retain the above copyright
+ *          notice, this list of conditions and the following disclaimer.
+ *
+ *        * Redistributions in binary form must reproduce the above copyright
+ *          notice, this list of conditions and the following disclaimer in
+ *          the documentation and/or other materials provided with the
+ *          distribution.
+ *
+ *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ *     "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ *     LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ *     FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ *     COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ *     INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ *     BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+ *     CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ *     LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+ *     ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ *     POSSIBILITY OF SUCH DAMAGE.
+ *
+ *
+ * \file	measure_time.h
+ *
+ * \brief	time cost measure utilization
+ *
+ * \date	04/28/2009 Created
+ *
+ *************************************************************************************
+ */
+#ifndef WELS_TIME_COST_MEASURE_UTIL_H__
+#define WELS_TIME_COST_MEASURE_UTIL_H__
+
+#include <stdlib.h>
+
+#include "typedefs.h"
+#ifndef _WIN32
+#include <sys/time.h>
+#else
+#include <windows.h>
+#include <sys/timeb.h>
+#endif
+#include <time.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif//__cplusplus
+
+/*!
+ * \brief	time cost measure utilization
+ * \param	void_t
+ * \return	time elapsed since run (unit: microsecond)
+ */
+
+static inline int64_t WelsTime (void_t) {
+#ifndef _WIN32
+  struct timeval tv_date;
+
+  gettimeofday (&tv_date, NULL);
+  return ((int64_t) tv_date.tv_sec * 1000000 + (int64_t) tv_date.tv_usec);
+#else
+  static int64_t iMtimeFreq = 0;
+  int64_t iMtimeCur = 0;
+  int64_t iResult = 0;
+  if (!iMtimeFreq) {
+    QueryPerformanceFrequency ((LARGE_INTEGER*)&iMtimeFreq);
+    if (!iMtimeFreq)
+      iMtimeFreq = 1;
+  }
+  QueryPerformanceCounter ((LARGE_INTEGER*)&iMtimeCur);
+  iResult = (int64_t) ((double)iMtimeCur * 1e6 / (double)iMtimeFreq + 0.5);
+  return iResult;
+#endif//WIN32
+}
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif//WELS_TIME_COST_MEASURE_UTIL_H__
--- a/codec/console/dec/src/h264dec.cpp
+++ b/codec/console/dec/src/h264dec.cpp
@@ -46,7 +46,7 @@
 #include "codec_api.h"
 #include "read_config.h"
 #include "typedefs.h"
-#include "../../decoder/core/inc/measure_time.h"
+#include "measure_time.h"
 #include "d3d9_utils.h"
 #include "logging.h"
 
--- a/codec/decoder/core/inc/measure_time.h
+++ /dev/null
@@ -1,89 +1,0 @@
-/*!
- * \copy
- *     Copyright (c)  2009-2013, Cisco Systems
- *     All rights reserved.
- *
- *     Redistribution and use in source and binary forms, with or without
- *     modification, are permitted provided that the following conditions
- *     are met:
- *
- *        * Redistributions of source code must retain the above copyright
- *          notice, this list of conditions and the following disclaimer.
- *
- *        * Redistributions in binary form must reproduce the above copyright
- *          notice, this list of conditions and the following disclaimer in
- *          the documentation and/or other materials provided with the
- *          distribution.
- *
- *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- *     "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- *     LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- *     FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- *     COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- *     INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- *     BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
- *     CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- *     LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
- *     ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- *     POSSIBILITY OF SUCH DAMAGE.
- *
- *
- * \file	measure_time.h
- *
- * \brief	time cost measure utilization
- *
- * \date	04/28/2009 Created
- *
- *************************************************************************************
- */
-#ifndef WELS_TIME_COST_MEASURE_UTIL_H__
-#define WELS_TIME_COST_MEASURE_UTIL_H__
-
-#include <stdlib.h>
-
-#ifndef _WIN32
-#include <sys/time.h>
-#else
-#include "typedefs.h"
-#include <windows.h>
-#include <sys/timeb.h>
-#endif
-#include <time.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif//__cplusplus
-
-/*!
- * \brief	time cost measure utilization
- * \param	void_t
- * \return	time elapsed since run (unit: microsecond)
- */
-
-int64_t WelsTime (void_t) {
-#ifndef _WIN32
-  struct timeval tv_date;
-
-  gettimeofday (&tv_date, NULL);
-  return ((int64_t) tv_date.tv_sec * 1000000 + (int64_t) tv_date.tv_usec);
-#else
-  static int64_t iMtimeFreq = 0;
-  int64_t iMtimeCur = 0;
-  int64_t iResult = 0;
-  if (!iMtimeFreq) {
-    QueryPerformanceFrequency ((LARGE_INTEGER*)&iMtimeFreq);
-    if (!iMtimeFreq)
-      iMtimeFreq = 1;
-  }
-  QueryPerformanceCounter ((LARGE_INTEGER*)&iMtimeCur);
-  iResult = (int64_t) ((double)iMtimeCur * 1e6 / (double)iMtimeFreq + 0.5);
-  return iResult;
-#endif//WIN32
-}
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif//WELS_TIME_COST_MEASURE_UTIL_H__
--- a/codec/encoder/core/inc/measure_time.h
+++ /dev/null
@@ -1,95 +1,0 @@
-/*!
- * \copy
- *     Copyright (c)  2009-2013, Cisco Systems
- *     All rights reserved.
- *
- *     Redistribution and use in source and binary forms, with or without
- *     modification, are permitted provided that the following conditions
- *     are met:
- *
- *        * Redistributions of source code must retain the above copyright
- *          notice, this list of conditions and the following disclaimer.
- *
- *        * Redistributions in binary form must reproduce the above copyright
- *          notice, this list of conditions and the following disclaimer in
- *          the documentation and/or other materials provided with the
- *          distribution.
- *
- *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- *     "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- *     LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- *     FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- *     COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- *     INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- *     BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
- *     CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- *     LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
- *     ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- *     POSSIBILITY OF SUCH DAMAGE.
- *
- *
- * \file	measure_time.h
- *
- * \brief	time cost measure utilization
- *
- * \date	04/28/2009 Created
- *
- *************************************************************************************
- */
-#ifndef WELS_TIME_COST_MEASURE_UTIL_H__
-#define WELS_TIME_COST_MEASURE_UTIL_H__
-
-#include <stdlib.h>
-
-#ifndef _WIN32
-#include <sys/time.h>
-#else
-#include "typedefs.h"
-#include <windows.h>
-#include <sys/timeb.h>
-#endif
-#include <time.h>
-
-/*!
- * \brief	time cost measure utilization
- * \param	void
- * \return	time elapsed since run (unit: microsecond)
- */
-
-static inline int64_t WelsTime() {
-#ifndef _WIN32
-struct timeval tv_date;
-
-gettimeofday (&tv_date, NULL);
-return ((int64_t) tv_date.tv_sec * 1000000 + (int64_t) tv_date.tv_usec);
-#else
-static int64_t iMeasureTimeFreq = 0;
-//	static BOOL_T support_high_resolution_perf_flag = TRUE;
-int64_t iMeasureTimeCur = 0;
-int64_t iResult = 0;
-if (0 == iMeasureTimeFreq) {
-  // Per MSDN minimum supported OS is Windows 2000 Professional/Server above for high-resolution performance counter
-  /*BOOL_T ret = */QueryPerformanceFrequency ((LARGE_INTEGER*)&iMeasureTimeFreq);
-//		if ( !ret )	// the installed hardware can not support a high-resolution performance counter, we have to use others instead for well feature
-//		{
-//			support_high_resolution_perf_flag	= FALSE;
-//		}
-  if (!iMeasureTimeFreq)
-    iMeasureTimeFreq = 1;
-}
-//	if ( support_high_resolution_perf_flag )
-//	{
-QueryPerformanceCounter ((LARGE_INTEGER*)&iMeasureTimeCur);
-iResult = (int64_t) ((double)iMeasureTimeCur * 1e6 / (double)iMeasureTimeFreq + 0.5);
-//	}
-//	else
-//	{
-//		iResult = timeGetTime() * 1000;	// 10 ms precision
-//	}
-return iResult;
-
-#endif//#if _WIN32
-}
-
-#endif//WELS_TIME_COST_MEASURE_UTIL_H__