13 Commits

Author SHA1 Message Date
Erik Språng
1c3909899d Use rtc::time for all your timing needs!
Initial step of unifying so that base/timeutils.h and Clock/TimeTime
from system_wrappers use the same implementation.

BUG=webrtc:5463
R=pbos@webrtc.org, tommi@webrtc.org

Review URL: https://codereview.webrtc.org/1639543005 .

Cr-Commit-Position: refs/heads/master@{#11394}
2016-01-27 11:55:44 +00:00
sprang
e791ffd638 Remove non-monotonic clock support
Real time clock may cause problems as they can move (even backwards) if
the clock is changed, eg updated by NTP.

Non-monotonic clocks still in use on some platform (I'm looking at you,
Apple) for timed waits, but that should be less of an issue than actual
timestamps.

BUG=webrtc:5452

Review URL: https://codereview.webrtc.org/1613013002

Cr-Commit-Position: refs/heads/master@{#11375}
2016-01-26 09:53:24 +00:00
Peter Boström
d3c944755e Nuke TickTime::UseFakeClock.
Removes the global simulated time that affects (or breaks) following
tests in the same binary and replaces it with SimulatedClock.

BUG=webrtc:5318
R=mflodman@webrtc.org

Review URL: https://codereview.webrtc.org/1512853002 .

Cr-Commit-Position: refs/heads/master@{#10947}
2015-12-09 10:21:09 +00:00
thaloun
2935e01419 Several Tick counter improvements try #2."
This reverts commit c91d1738709b038fee84d569180cba2bbcbfe5d7.

BUG=

Review URL: https://codereview.webrtc.org/1452843003

Cr-Commit-Position: refs/heads/master@{#10682}
2015-11-17 23:02:59 +00:00
thaloun
c91d173870 Revert of Several Tick counter improvements. (patchset #8 id:140001 of https://codereview.webrtc.org/1415923010/ )
Reason for revert:
Potentially breaks a threading test under DrMemory.  Rolling back while I investigate.

Original issue's description:
> Several Tick counter improvements.
>
> Move logic into cc file
> Simplify interval calculation
> Remove unused QUERY_PERFORMANCE_COUNTER windows implementation
> Remove double divide on each ::Now() invocation on mac
>
> Move TickTime and TickInterval funcitons to cc file in prep for refactoring.
>
> BUG=
> R=mflodman@webrtc.org, pbos@webrtc.org
>
> Committed: https://crrev.com/4c27e4b62da2047063d88eedfeec3e939fea7843
> Cr-Commit-Position: refs/heads/master@{#10661}

TBR=pbos@webrtc.org,mflodman@webrtc.org,noahric@chromium.org,thaloun@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=

Review URL: https://codereview.webrtc.org/1450203002

Cr-Commit-Position: refs/heads/master@{#10663}
2015-11-17 00:28:56 +00:00
Tim Haloun
4c27e4b62d Several Tick counter improvements.
Move logic into cc file
Simplify interval calculation
Remove unused QUERY_PERFORMANCE_COUNTER windows implementation
Remove double divide on each ::Now() invocation on mac

Move TickTime and TickInterval funcitons to cc file in prep for refactoring.

BUG=
R=mflodman@webrtc.org, pbos@webrtc.org

Review URL: https://codereview.webrtc.org/1415923010 .

Cr-Commit-Position: refs/heads/master@{#10661}
2015-11-16 22:37:59 +00:00
Henrik Kjellander
98f53510b2 system_wrappers: rename interface -> include
BUG=webrtc:5095
R=tommi@webrtc.org

Review URL: https://codereview.webrtc.org/1413333002 .

Cr-Commit-Position: refs/heads/master@{#10438}
2015-10-28 17:17:50 +00:00
henrikg
91d6edef35 Add RTC_ prefix to (D)CHECKs and related macros.
We must remove dependency on Chromium, i.e. we can't use Chromium's base/logging.h. That means we need to define these macros in WebRTC also when doing Chromium builds. And this causes redefinition.

Alternative solutions:
* Check if we already have defined e.g. CHECK, and don't define them in that case. This makes us depend on include order in Chromium, which is not acceptable.
* Don't allow using the macros in WebRTC headers. Error prone since if someone adds it there by mistake it may compile fine, but later break if a header in added or order is changed in Chromium. That will be confusing and hard to enforce.
* Ensure that headers that are included by an embedder don't include our macros. This would require some heavy refactoring to be maintainable and enforcable.
* Changes in Chromium for this is obviously not an option.

BUG=chromium:468375
NOTRY=true

Review URL: https://codereview.webrtc.org/1335923002

Cr-Commit-Position: refs/heads/master@{#9964}
2015-09-17 07:24:51 +00:00
pbos@webrtc.org
12dc1a38ca Switch C++-style C headers with their C equivalents.
The C++ headers define the C functions within the std:: namespace, but
we mainly don't use the std:: namespace for C functions. Therefore we
should include the C headers.

BUG=1833
R=tommi@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/1917004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4486 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-08-05 16:22:53 +00:00
fischman@webrtc.org
1d4a2d5daf Move TickTime::QueryOsForTicks out-of-line
This inline function is no longer expanded on arm Android, but on x86 Android it
will still be expanded. Move it out-of-line to make things consistent.

This change list will also fix a potential bug on webrtc for Android:
Since the inline function won't be expanded on arm Android,
TickTime::MillisecondTimestamp and Clock::GetRealTimeClock()->TimeInMilliseconds
will be treated as function call, due to macro WEBRTC_CLOCK_TYPE_REALTIME's
guard defined in system_wrappers module they will get current time using
CLOCK_REALTIME.

But on x86 Android, the inline function will be expanded to where it's been
called, if the call happens in other compilation units which don't have
WEBRTC_CLOCK_TYPE_REALTIME definition, it will get current time using
CLOCK_MONOTONIC, while Clock::GetRealTimeClock()->TimeInMilliseconds will always
use CLOCK_REALTIME, then there will be two types of time in x86 Android which
will cause some weird issues like all received remote streams will be dropped
due to future render timestamp.

BUG=None
TEST=WebRTCViEDemo application works well on both arm and x86 Android
R=fischman@webrtc.org, niklas.enbom@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/1688004

Patch from Jeremy Mao <yujie.mao@intel.com>.

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4274 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-06-27 17:15:20 +00:00
pbos@webrtc.org
046deb9b20 WebRtc_Word32 -> int32_t in system_wrappers
BUG=314

Review URL: https://webrtc-codereview.appspot.com/1301004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3791 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-04-09 09:06:11 +00:00
phoglund@webrtc.org
5c8d9d30e2 Reformatted tick_util.
BUG=
TEST=Trybots.

Review URL: https://webrtc-codereview.appspot.com/1014004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3330 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-01-03 09:50:17 +00:00
phoglund@webrtc.org
4cebe6cded Made TickTime immutable, rewrote tick utils to be fakeable.
BUG=

Review URL: https://webrtc-codereview.appspot.com/798004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3053 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-11-07 13:37:19 +00:00