Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(161)

Unified Diff: webrtc/system_wrappers/include/tick_util.h

Issue 1450203002: Revert of Several Tick counter improvements. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Created 5 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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;
« no previous file with comments | « webrtc/modules/utility/source/process_thread_impl_unittest.cc ('k') | webrtc/system_wrappers/source/tick_util.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698