Removes lock-order inversion formed by RTPSenderAudio->RTPSender calls
by doing a lot shorter locking which fetches a current state of
RTPSenderAudio variables before sending.
Thread annotates locked variables and removes one lock in
RTPSenderAudio, bonus fixes data races reported in voe_auto_test
--automated under TSan (DTMF data race).
Also includes some bonus cleanup of RTPSenderVideo which removes the
send critsect completely as all methods using it was always called
from RTPSender under its send_critsect.
R=henrik.lundin@webrtc.org, stefan@webrtc.org, tommi@webrtc.org
BUG=3001, chromium:454654
Review URL: https://webrtc-codereview.appspot.com/41869004
Cr-Commit-Position: refs/heads/master@{#8348}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8348 4adac7df-926f-26a2-2b94-8c16560cd09d
For build_with_chromium==1 the includes will be the same.
For build_with_chromium==0 the <(DEPTH) variable is replaced by ../..
which should be the same in all common use cases.
This change makes the include paths for all GYP targets
more similar to the setup in the
direct_dependent_settings section further down.
BUG=4185
TESTED=Trybots + build in Chromium with third_party/webrtc patched with this CL.
R=tommi@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/41739004
Cr-Commit-Position: refs/heads/master@{#8219}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8219 4adac7df-926f-26a2-2b94-8c16560cd09d
The work landed in 4034 (use of HW AEC in AppRTC) is currently not
active by default since we build for Open SL. I missed that when I
did my initial change (since I always disabled OpenSL by GYP_DEFINES).
This CL ensures that Java based audio is used as default in WebRTC.
It would be great if we could shift over to Open SL (to cut latency)
but that would (today) mean that we can't support the HW AEC.
Hence, we are not ready to do so yet.
BUG=4034
R=kjellander@webrtc.org, perkj@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/36699004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8040 4adac7df-926f-26a2-2b94-8c16560cd09d
Due to lack of atomics our tracing code is broken and triggering real
errors in ThreadSanitizer.
R=kjellander@webrtc.org
BUG=2497
TEST=out-tsan/out/Debug/libjingle_media_unittest --gtest_filter=WebRtcVideoMediaChannelTest.GetStatsMultipleRecvStreams + verifying that "race:*trace_event_unique_catstatic*" exists in the list of matched suppressions.
Review URL: https://webrtc-codereview.appspot.com/35719004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8022 4adac7df-926f-26a2-2b94-8c16560cd09d
This will make it easier to execute tests and allows
for more cleanup in the buildbot recipes.
Now tests can be listed using:
webrtc/build/android/test_runner.py gtest --help
and executed like
webrtc/build/android/test_runner.py gtest -s audio_decoder_unittests
TESTED=
Ran:
webrtc/build/android/test_runner.py gtest --help
and verified the tests were listed.
I wiped /sdcard/resources on my device, executed:
webrtc/build/android/test_runner.py gtest -s audio_decoder_unittests
and verified it passed and that resources/audio_coding/testfile32kHz.pcm
was copied to the device.
BUG=
R=phoglund@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/33619004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@7873 4adac7df-926f-26a2-2b94-8c16560cd09d
The Android test execution toolchain scripts in Chromium
has been causing headaches for us several times. Mostly
because they're tailored at running Chrome tests only.
Wrapping their script in our own avoids the pain of
upstreaming new test names to Chromium and rolling them
in to get them running on our bots.
TESTED=Ran a test on a local device using:
webrtc/build/android/test_runner.py gtest -s audio_decoder_unittests --verbose --isolate-file-path webrtc/modules/audio_coding/neteq/audio_decoder_unittests.isolate --release
TBR=phoglund@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/25269004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@7794 4adac7df-926f-26a2-2b94-8c16560cd09d
Allows successful build of arm64 libraries using
GYP_DEFINES="OS=ios target_arch=arm64 target_subarch=arm64".
Note that not all libraries will be NEON optimized (eg common_audio),
however most importantly libvpx will be. WEBRTC_ARCH_ARM needs to be
defined so that libvpx doesn't post-process, which is significantly
detrimental to performance.
BUG=3898
R=kjellander@webrtc.org, pthatcher@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/26959004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@7573 4adac7df-926f-26a2-2b94-8c16560cd09d
Modifies the previous condition to additionally not use openmax_dl on
iOS. Remove the All target's direct dependency on it, as it is now
pulled in by the targets that need it.
Add gn support since an openmax_dl gn target is available.
BUG=chromium:415393, webrtc:3906
R=turaj@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/23949004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@7397 4adac7df-926f-26a2-2b94-8c16560cd09d
Breaks debug compilation (didn't run all trybots when testing this).
> Update isolate.gypi files + link to isolate_driver.py
>
> This updates the isolate.gypi copies we're forced to
> maintain in our code repo to Chromium revision c264a05.
>
> Since isolated testing is now using a new launch script
> in tools: isolate_driver.py, that is added to our links
> script.
>
> BUG=395700
> TESTED=Ran one of our tests with:
> ninja -C out/Release tools_unittests_run
> tools/isolate_driver.py run --isolated out/Release/tools_unittests.isolated --isolate webrtc/tools/tools_unittests.isolate
>
> R=henrika@webrtc.org, jam@chromium.org
>
> Review URL: https://webrtc-codereview.appspot.com/26649004TBR=kjellander@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/31509004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@7328 4adac7df-926f-26a2-2b94-8c16560cd09d
This updates the isolate.gypi copies we're forced to
maintain in our code repo to Chromium revision c264a05.
Since isolated testing is now using a new launch script
in tools: isolate_driver.py, that is added to our links
script.
BUG=395700
TESTED=Ran one of our tests with:
ninja -C out/Release tools_unittests_run
tools/isolate_driver.py run --isolated out/Release/tools_unittests.isolated --isolate webrtc/tools/tools_unittests.isolate
R=henrika@webrtc.org, jam@chromium.org
Review URL: https://webrtc-codereview.appspot.com/26649004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@7327 4adac7df-926f-26a2-2b94-8c16560cd09d
Targets must now link with implementation of their choice instead of at "gyp"-time.
Targets linking with libjingle_media:
- internal implementation when build_with_chromium=0, default otherwise.
Targets linking with default render implementation:
- video_engine_tests
- video_loopback
- video_replay
- anything dependent on webrtc_test_common
Targets linking with internal render implementation:
- vie_auto_test
- video_render_tests
- libwebrtcdemo-jni
- video_engine_core_unittests
GN changes:
- Not many since there is almost no test definitions.
Work-around for chromium:
- Until chromium has updated libpeerconnection to link with video_capture_impl and video_render_impl, webrtc target automatically depends on it. This should fix the FYI bots and not require a webrtc roll to fix.
Re-enable android tests by reverting 7026 (some tests left disabled).
TESTED: passes all the bots. If this inadvertently breaks a target please fix the linking rules so the target has the desired implementation linked in.
BUG=3770
R=kjellander@webrtc.org, pbos@webrtc.orgTBR=mflodman@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/19359004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@7217 4adac7df-926f-26a2-2b94-8c16560cd09d
into its own targets. Dependencies must link directly with the desired one.
Targets linking with libjingle_media:
- internal implementation when build_with_chromium=0, default otherwise.
Targets linking with default/external capture implementation:
- anything dependent on webrtc_test_common
- anything dependent on video_engine_core
Targets linking with internal capture implementation:
- vie_auto_test
- anything dependent on webrtc_test_renderer
GN changes:
- Not many since there is almost no test definitions.
TESTED: passes all the bots. If this inadvertently breaks a target please fix the linking rules so the target has the desired implementation linked in.
BUG=3768
R=glaznev@webrtc.orgTBR=kjellander@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/24589004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@7209 4adac7df-926f-26a2-2b94-8c16560cd09d
This is based on webrtc/build/merge_libs.gyp, with a dependency on
voice_engine.gyp instead and suitable name changes.
Executing:
$ rm -rf out/
$ ./webrtc/build/gyp_webrtc -Denable_video=0 -Denable_protobuf=0
-Drelease_optimize=s webrtc/build/merge_libs_voice.gyp
$ ninja -C out/Release merged_lib_voice
results in a minimially sized voice engine lib at:
out/Release/librtc_voice_merged.a
Linux: 6.4 MB
Mac: 3.7 MB
R=braveyao@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/23659004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@7199 4adac7df-926f-26a2-2b94-8c16560cd09d