* Added a way to notify a Module that it's been attached to a ProcessThread.
The benefit of this is to give the module a way to wake up the thread
when it needs work to happen on the worker thread, immediately.
Today, module instances are typically registered with a process thread
outside the control of the modules themselves. I.e. they typically
don't know about the process thread they're attached to.
* Improve ProcessThread's WakeUp algorithm to not call TimeUntilNextProcess
when a WakeUp call is requested. This is an optimization for the above
case which avoids the module having to acquire a lock or do an interlocked
operation before calling WakeUp(), which would ensure the module's
TimeUntilNextProcess() implementation would return 0.
BUG=2822
R=stefan@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/39239004
Cr-Commit-Position: refs/heads/master@{#8527}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8527 4adac7df-926f-26a2-2b94-8c16560cd09d
Mostly, it's about moving constructors and descructors to the .cc
files, so that they won't be inlined everywhere.
The reason this CL is so big is that a lot of code was using
common_types.h without declaring a dependency on webrtc_common, which
broke the build once common_types.h started to depend on
common_types.cc.
BUG=163
R=kjellander@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/26089004
Cr-Commit-Position: refs/heads/master@{#8516}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8516 4adac7df-926f-26a2-2b94-8c16560cd09d
* Move constants into the files/functions that use them
* Declare variables in the narrowest scope possible
* Use correct (expected, actual) order for gtest macros
* Remove unused functions
* Untabify
* 80-column limit
* Avoid C-style casts
* Prefer true typed constants to "enum hack" constants
* Print size_t using the right format macro
* Shorten and simplify code
* Other random cleanup bits and style fixes
BUG=none
TEST=none
R=henrik.lundin@webrtc.org, tommi@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/36179004
Cr-Commit-Position: refs/heads/master@{#8467}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8467 4adac7df-926f-26a2-2b94-8c16560cd09d
Bitrate controller is used in VoiceEngine to smoothen the fraction loss
from RTCP report blocks. This CL removes the usage of the
BitrateController and calculates its own fraction loss average insted.
This introduces some duplicated code between BitrateController and
Channel, but removes processing overhead and the incorrect bandwidth
estimation numbers reported by the bitrate controller.
BUG=4310
TEST=voe_cmd_test with network simulator
R=minyue@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/39999004
Cr-Commit-Position: refs/heads/master@{#8386}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8386 4adac7df-926f-26a2-2b94-8c16560cd09d
Previously only mic level calculated by the legacy agc was logged in aecdebug dumps.
Now we log it for any agc.
In addition, it is now possible to turn on and off debug recording in the test tool voe_cmd_test.
BUG=4274
TESTED=verified using voe_cmd_test
R=andrew@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/39839004
Cr-Commit-Position: refs/heads/master@{#8274}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8274 4adac7df-926f-26a2-2b94-8c16560cd09d
* Add a new WakeUp method that gives a module a chance to be called back right away on the worker thread.
* Wrote unit tests for the class.
* Significantly reduce the amount of locking.
- ProcessThreadImpl itself does a lot less locking.
- Reimplemented the way we keep track of when to make calls to Process.
This reduces the amount of calls to TimeUntilNextProcess and since most implementations of that function grab a lock, this means less locking.
* Renamed ProcessThread::CreateProcessThread to ProcessThread::Create.
* Added thread checks for Start/Stop. Threading model of other functions is now documented.
* We now log an error if an implementation of TimeUntilNextProcess returns a negative value (some implementations do, but the method should only return a positive nr of ms).
* Removed the DestroyProcessThread method and instead force callers to use scoped_ptr<> to maintain object lifetime.
BUG=2822
R=henrika@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/35999004
Cr-Commit-Position: refs/heads/master@{#8261}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8261 4adac7df-926f-26a2-2b94-8c16560cd09d
This fixes a two year old TODO of deleting dead code :)
In cases where the _id or id_ member variable is being used for tracing,
I changed the member to at least be const.
It doesn't look like id's are that useful anymore so maybe the next step is to get rid of them.
BUG=
R=henrika@webrtc.org, perkj@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/37849004
Cr-Commit-Position: refs/heads/master@{#8201}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8201 4adac7df-926f-26a2-2b94-8c16560cd09d
Broke compile on the Chromium FYI bots:
http://build.chromium.org/p/chromium.webrtc.fyi/builders/Win%20Builder/builds/3483http://build.chromium.org/p/chromium.webrtc.fyi/builders/Mac/builds/16028http://build.chromium.org/p/chromium.webrtc.fyi/builders/Linux/builds/14293
Error:
In file included from ../../third_party/webrtc/voice_engine/channel.cc:13:
In file included from ../../third_party/webrtc/base/checks.h:22:
In file included from ../../third_party/webrtc/overrides/webrtc/base/logging.h:35:
../../base/logging.h:367:9:error: 'LOG' macro redefined [-Werror,-Wmacro-redefined]
#define LOG(severity) LAZY_STREAM(LOG_STREAM(severity), LOG_IS_ON(severity))
^
../../third_party/webrtc/system_wrappers/interface/logging.h:123:9: note: previous definition is here
#define LOG(sev) \
^
In file included from ../../third_party/webrtc/voice_engine/channel.cc:13:
In file included from ../../third_party/webrtc/base/checks.h:22:
../../third_party/webrtc/overrides/webrtc/base/logging.h:189:9:error: 'LOG_V' macro redefined [-Werror,-Wmacro-redefined]
#define LOG_V(sev) DIAGNOSTIC_LOG(sev, NONE, 0)
^
../../third_party/webrtc/system_wrappers/interface/logging.h:129:9: note: previous definition is here
#define LOG_V(sev) \
^
2 errors generated.
> Modify some tests to never use DTX disable mode
>
> DTX disable mode will be removed as a part of the ACM redesign work.
>
> COAUTHOR:kwiberg@webrtc.org
>
> R=henrika@webrtc.org
>
> Review URL: https://webrtc-codereview.appspot.com/34769004TBR=henrik.lundin@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/35859004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8129 4adac7df-926f-26a2-2b94-8c16560cd09d
This fixes a variety of MSVC warnings about value truncations when implicitly
storing the 64-bit values we get back from e.g. TimeTicks in 32-bit objects, and
removes the need for a number of explicit casts.
This also moves a number of constants so they're declared right where they're used, which is easier to read and maintain, and makes some of them of integral type rather than using the "enum hack".
BUG=chromium:81439
TEST=none
R=tommi@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/33649004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@7905 4adac7df-926f-26a2-2b94-8c16560cd09d
GetRTT() was separated from GetRTPStatistics() but the warnings were not updated.
Now GetRTT() is only only used by GetRTPStatistics() and the warning pops up pointlessly and too often.
This CL is to suppress these warnings and maintain a proper warning for GetRTPStatistics().
BUG=
R=henrika@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/36469004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@7899 4adac7df-926f-26a2-2b94-8c16560cd09d
This should speed up test execution on Android since only
the files needed by the test will be processed (instead
of the whole data + resources directories).
A few files for modules_unittests had to be explicitly added
for Android, since they were previously a part of the
add-whole-directories entries for the resources and data
directories.
BUG=webrtc:3741
TEST=Passing android+android_rel trybots.
R=phoglund@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/22559004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@7694 4adac7df-926f-26a2-2b94-8c16560cd09d
This will be used to refactor AudioProcessing/AudioBuffer. We can
enable alternate downmixing schemes in AudioProcessing by pulling
the conversion logic out of AudioBuffer.
The unit test is largely stolen from voice_engine/utility_unittest.cc.
As commented, the voice_engine routines should be replaced with
AudioConverter.
BUG=chromium:405270
R=aluebs@webrtc.org, mgraczyk@chromium.org
TBR=kwiberg
Review URL: https://webrtc-codereview.appspot.com/30779004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@7538 4adac7df-926f-26a2-2b94-8c16560cd09d
This also marks all virtual overrides of other classes in the same files.
This will make a subsequent change I intend to do safer, where I'll change the
argument types of the base Transport functions, by breaking the compile if I
miss any overrides.
This also highlighted a number of unused functions. I've removed some of these.
TBR=mflodman@webrtc.org, pkasting@chromium.org
BUG=none
TEST=none
Review URL: https://webrtc-codereview.appspot.com/28709004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@7421 4adac7df-926f-26a2-2b94-8c16560cd09d
RemoteNtpTimeEstimator needed user to give a remote SSRC and it intended to call RtpRtcp module to obtain RTT, to be able to calculate Ntp time.
When RTT cannot be directly obtained from the RtpRtcp module with the specified SSRC, RemoteNtpTimeEstimator would fail.
This change allows RemoteNtpTimeEstimator to calculate NTP with an external RTT estimate.
An immediate benefit is that capture_start_ntp_time_ms_ can be obtained in a Google hangout call.
BUG=
TEST=chromium + hangout call
R=stefan@webrtc.org, xians@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/24879004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@7407 4adac7df-926f-26a2-2b94-8c16560cd09d
This reverts selected parts of r7014 to enable
rolling WebRTC in Chromium DEPS.
This works around the problem with GYP includes
being processed in the first pass (i.e. variables
cannot be used for paths). Using a dependency with
a path using a variable that is conditioned for
build_with_chromium being 0 or 1 solves the Chromium
build.
These changes will be restored once I've finished
a major GYP refactoring that will break out all
test related code (at least the parts that includes
the Android APK targets) into a separate chain
of GYP targets that are not processed when generating
projects for Chromium (which is why r7014 is breaking
the Chromium build).
BUG=3741
TESTED=Passing compilation of standalone using:
GYP_DEFINES="OS=android component=static_library fastbuild=1 target_arch=arm" webrtc/build/gyp_webrtc
ninja -C out/Debug
Then verified the *_apk targets are generated and compiled.
Passing compilation from a Chromium checkout with third_party/webrtc
directory removed and a new empty third_party/webrtc mapped to the
standalone checkout using:
sudo mount --bind /path/to/trunk/webrtc third_party/webrtc
Then running build/gyp_chromium
I also verified WebRTC GYP targets exist and are able to compile.
R=henrike@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/20299004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@7040 4adac7df-926f-26a2-2b94-8c16560cd09d