All these tests crashed before r8811. These tests should've been with
that change but r8811 was pushed in before to make bots green.
BUG=1788, 1667
R=stefan@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/48669004
Cr-Commit-Position: refs/heads/master@{#8881}
These are problematic when running with the default TSan
settings which has deadlock detection enabled.
Our bots still run with it disabled but we want to be
able to turn it back on, thus this is needed.
BUG=3911,4456
TESTED=
Successfully executed:
GYP_DEFINES="tsan=1 release_extra_cflags=-g use_allocator=none" webrtc/build/gyp_webrtc
ninja -C out/Release rtc_unittests
out/Release/rtc_unittests
R=pbos@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/44899004
Cr-Commit-Position: refs/heads/master@{#8879}
Setting the member value output_will_be_muted_ in set_output_will_be_muted() was done before the lock.
This caused a data race.
BUG=4477
R=pbos@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/44929004
Cr-Commit-Position: refs/heads/master@{#8877}
It turns out that Camera.getCameraInfo can throw an exception if the camera does not work.
TESTED=added a throw before all calls to Camera.open and Camera.getCameraInfo and made sure APPRtcDemo does not crash.
BUG=4371
R=glaznev@webrtc.org, magjed@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/44909004
Cr-Commit-Position: refs/heads/master@{#8876}
Also adds a framework for an AudioManager to be used by both sides (playout and recording).
This initial implementation only does very simple tasks like setting up the correct audio
mode (needed for correct volume behavior). Note that this CL is mainly about modifying
the volume. The added AudioManager is only a place holder for future work. I could have
done the same parts in the WebRtcAudioTrack class but feel that it is better to move these
parts to an AudioManager already at this stage.
The AudioManager supports Init() where actual audio changes are done (set audio mode etc.)
but it can also be used a simple "construct-and-store-audio-parameters" unit, which is the
case here. Hence, the AM now serves as the center for getting audio parameters and then inject
these into playout and recording sides. Previously, both sides acquired their own parameters
and that is more error prone.
BUG=NONE
TEST=AudioDeviceTest
R=perkj@webrtc.org, phoglund@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/45829004
Cr-Commit-Position: refs/heads/master@{#8875}
Removes 'googCaptureJitterMs' and 'googCaptureQueueDelayMsPerS' from
talk/. The overuse-detection method used is based on encoding time,
so these stats aren't useful enough to warrant having them showing up in
GetStats().
BUG=
R=stefan@webrtc.org, tommi@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/50469004
Cr-Commit-Position: refs/heads/master@{#8874}
Change internal indexing of registered decoders. It makes sense because payload type is unique, while ACM codec ID may not be. This is a step towards allowing for addition of external decoders.
R=kwiberg@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/44869004
Cr-Commit-Position: refs/heads/master@{#8867}
These checks would help catching double-deletes, forgetting to destroy
streams and also catch if VideoEngine has held on to any stale
references.
BUG=1788
R=stefan@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/42929004
Cr-Commit-Position: refs/heads/master@{#8866}
This means all channels within the same group will share the same pacing queue and scheduler. It also means padding will be computed and sent by a single pacer. To accomplish this I also introduce a PacketRouter which finds the RTP module which owns the packet to be paced out.
BUG=4323
R=mflodman@webrtc.org, pbos@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/45549004
Cr-Commit-Position: refs/heads/master@{#8864}
If built-in Echo Cancellation is available on a device it is automatically enabled. The reason is that it in most cases performs better than the WebRTC software echo control for mobile. The drawback is that we can not develop, test and rollout the delay agnostic AEC (DA-AEC) on Android as for desktops.
This CL includes
- adding a media constraint to enable/disable DA-AEC.
- automatically turning on echo cancellation if DA-AEC is enabled.
- a fix in the AEC that enables delay estimation when DA-AEC is enabled, but delay metrics is disabled.
- sets the Config struct ReportedDelay, which controls DA-AEC internally in the AEC.
The test code to verify that it works in AppRTCDemo can be found here:
https://webrtc-codereview.appspot.com/50479004/
BUG=4472
TESTED=locally on N7, N6, Android One
R=glaznev@webrtc.org, perkj@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/48699004
Cr-Commit-Position: refs/heads/master@{#8861}
AppRTCDemo is failing to cleanly exit a room because it sends a GET request to /bye. The request to /bye should be a POST request. Because the /bye request is failing, the room is still marked as "full" and rejoining will fail.
BUG=
R=tkchin@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/47759004
Patch from Chuck Hays <haysc@webrtc.org>.
Cr-Commit-Position: refs/heads/master@{#8860}
The macro is defined as
#define WEBRTC_SPL_MUL_16_16_RSFT(a, b, c) \
(WEBRTC_SPL_MUL_16_16(a, b) >> (c))
where the latter macro is in C defined as
#define WEBRTC_SPL_MUL_16_16(a, b) \
((int32_t) (((int16_t)(a)) * ((int16_t)(b))))
(For definitions on ARMv7 and MIPS, see common_audio/signal_processing/include/spl_inl_{armv7,mips}.h)
The replacement consists of
- avoiding casts to int16_t if inputs already are int16_t
- adding explicit cast to <type> if result is assigned to <type> (other than int or int32_t)
- minor cleanups like remove of unnecessary parentheses and style changes
BUG=3347, 3348, 3353
TESTED=locally on Linux for both fixed and floating point and trybots
R=kwiberg@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/44799004
Cr-Commit-Position: refs/heads/master@{#8857}
The macro is defined as
#define WEBRTC_SPL_MUL_16_16_RSFT(a, b, c) \
(WEBRTC_SPL_MUL_16_16(a, b) >> (c))
where the latter macro is in C defined as
#define WEBRTC_SPL_MUL_16_16(a, b) \
((int32_t) (((int16_t)(a)) * ((int16_t)(b))))
(For definitions on ARMv7 and MIPS, see common_audio/signal_processing/include/spl_inl_{armv7,mips}.h)
The replacement consists of
- avoiding casts to int16_t if inputs already are int16_t
- adding explicit cast to <type> if result is assigned to <type> (other than int or int32_t)
- minor cleanups like remove of unnecessary parentheses and style changes
BUG=3348, 3353
TESTED=locally on Linux for both fixed and floating point and trybots
R=kwiberg@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/49499004
Cr-Commit-Position: refs/heads/master@{#8853}
This CL deletes VideoAdapter::AdaptFrame and replaces the remaining calls with AdaptFrameResolution instead.
I do not expect this CL to fix the flaky VideoAdapterTests yet. I intend to replace FileVideoCapturer with a deterministic FakeVideoCapturer in a follow-up CL.
BUG=4317
R=pbos@webrtc.org, pthatcher@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/44769004
Cr-Commit-Position: refs/heads/master@{#8848}
The key in codereview.settings only made sense for committing to SVN.
The drover.properties is of no use, since drover doesn't support Git.
BUG=chromium:412012
Review URL: https://webrtc-codereview.appspot.com/46669004
Cr-Commit-Position: refs/heads/master@{#8847}
And add a constructor for creating an uninitialized Buffer of a
specified size.
(I intend to follow up with more Buffer changes, but since it's rather
widely used, the rename is quite noisy and works better as a separate
CL.)
R=tommi@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/48579004
Cr-Commit-Position: refs/heads/master@{#8841}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8841 4adac7df-926f-26a2-2b94-8c16560cd09d
I'm splitting the timer functions in EventWrapper into a separate interface.
- Users of the timer functions have different needs than users of a generic event
- Providing a default implementation for EventWrapper that simply uses rtc::Event.
This means that clients of WebRTC that don't use the relatively few classes, typically rendering classes, that depend on the event timer functionality, also don't pull in dependencies on multimedia timers.
R=mflodman@webrtc.org, mflodman
BUG=
Review URL: https://webrtc-codereview.appspot.com/48599004
Cr-Commit-Position: refs/heads/master@{#8833}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8833 4adac7df-926f-26a2-2b94-8c16560cd09d