Index: webrtc/system_wrappers/include/tick_util.h |
diff --git a/webrtc/system_wrappers/include/tick_util.h b/webrtc/system_wrappers/include/tick_util.h |
index 6e3b05edb23d77e9e164550e0e004e22481d9afa..f839ff646cfd459110506db8d1336479ef10c883 100644 |
--- a/webrtc/system_wrappers/include/tick_util.h |
+++ b/webrtc/system_wrappers/include/tick_util.h |
@@ -56,8 +56,6 @@ |
static int64_t TicksToMilliseconds(const int64_t ticks); |
- static int64_t TicksToMicroseconds(const int64_t ticks); |
- |
// Returns a TickTime that is ticks later than the passed TickTime. |
friend TickTime operator+(const TickTime lhs, const int64_t ticks); |
TickTime& operator+=(const int64_t& ticks); |
@@ -113,14 +111,6 @@ |
private: |
int64_t interval_; |
}; |
- |
-inline int64_t TickInterval::Milliseconds() const { |
- return TickTime::TicksToMilliseconds(interval_); |
-} |
- |
-inline int64_t TickInterval::Microseconds() const { |
- return TickTime::TicksToMicroseconds(interval_); |
-} |
inline TickInterval operator+(const TickInterval& lhs, |
const TickInterval& rhs) { |
@@ -173,8 +163,74 @@ |
return TickTime(QueryOsForTicks()); |
} |
+inline int64_t TickTime::MillisecondTimestamp() { |
+ int64_t ticks = TickTime::Now().Ticks(); |
+#if _WIN32 |
+#ifdef USE_QUERY_PERFORMANCE_COUNTER |
+ LARGE_INTEGER qpfreq; |
+ QueryPerformanceFrequency(&qpfreq); |
+ return (ticks * 1000) / qpfreq.QuadPart; |
+#else |
+ return ticks; |
+#endif |
+#elif defined(WEBRTC_LINUX) || defined(WEBRTC_MAC) |
+ return ticks / 1000000LL; |
+#else |
+ return ticks / 1000LL; |
+#endif |
+} |
+ |
+inline int64_t TickTime::MicrosecondTimestamp() { |
+ int64_t ticks = TickTime::Now().Ticks(); |
+#if _WIN32 |
+#ifdef USE_QUERY_PERFORMANCE_COUNTER |
+ LARGE_INTEGER qpfreq; |
+ QueryPerformanceFrequency(&qpfreq); |
+ return (ticks * 1000) / (qpfreq.QuadPart / 1000); |
+#else |
+ return ticks * 1000LL; |
+#endif |
+#elif defined(WEBRTC_LINUX) || defined(WEBRTC_MAC) |
+ return ticks / 1000LL; |
+#else |
+ return ticks; |
+#endif |
+} |
+ |
inline int64_t TickTime::Ticks() const { |
return ticks_; |
+} |
+ |
+inline int64_t TickTime::MillisecondsToTicks(const int64_t ms) { |
+#if _WIN32 |
+#ifdef USE_QUERY_PERFORMANCE_COUNTER |
+ LARGE_INTEGER qpfreq; |
+ QueryPerformanceFrequency(&qpfreq); |
+ return (qpfreq.QuadPart * ms) / 1000; |
+#else |
+ return ms; |
+#endif |
+#elif defined(WEBRTC_LINUX) || defined(WEBRTC_MAC) |
+ return ms * 1000000LL; |
+#else |
+ return ms * 1000LL; |
+#endif |
+} |
+ |
+inline int64_t TickTime::TicksToMilliseconds(const int64_t ticks) { |
+#if _WIN32 |
+#ifdef USE_QUERY_PERFORMANCE_COUNTER |
+ LARGE_INTEGER qpfreq; |
+ QueryPerformanceFrequency(&qpfreq); |
+ return (ticks * 1000) / qpfreq.QuadPart; |
+#else |
+ return ticks; |
+#endif |
+#elif defined(WEBRTC_LINUX) || defined(WEBRTC_MAC) |
+ return ticks / 1000000LL; |
+#else |
+ return ticks / 1000LL; |
+#endif |
} |
inline TickTime& TickTime::operator+=(const int64_t& ticks) { |
@@ -189,6 +245,44 @@ |
: interval_(interval) { |
} |
+inline int64_t TickInterval::Milliseconds() const { |
+#if _WIN32 |
+#ifdef USE_QUERY_PERFORMANCE_COUNTER |
+ LARGE_INTEGER qpfreq; |
+ QueryPerformanceFrequency(&qpfreq); |
+ return (interval_ * 1000) / qpfreq.QuadPart; |
+#else |
+ // interval_ is in ms |
+ return interval_; |
+#endif |
+#elif defined(WEBRTC_LINUX) || defined(WEBRTC_MAC) |
+ // interval_ is in ns |
+ return interval_ / 1000000; |
+#else |
+ // interval_ is usecs |
+ return interval_ / 1000; |
+#endif |
+} |
+ |
+inline int64_t TickInterval::Microseconds() const { |
+#if _WIN32 |
+#ifdef USE_QUERY_PERFORMANCE_COUNTER |
+ LARGE_INTEGER qpfreq; |
+ QueryPerformanceFrequency(&qpfreq); |
+ return (interval_ * 1000000) / qpfreq.QuadPart; |
+#else |
+ // interval_ is in ms |
+ return interval_ * 1000LL; |
+#endif |
+#elif defined(WEBRTC_LINUX) || defined(WEBRTC_MAC) |
+ // interval_ is in ns |
+ return interval_ / 1000; |
+#else |
+ // interval_ is usecs |
+ return interval_; |
+#endif |
+} |
+ |
inline TickInterval& TickInterval::operator+=(const TickInterval& rhs) { |
interval_ += rhs.interval_; |
return *this; |