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__