WebRTC doesn't use or support the target_subarch
GYP variable in the same way as Chromium does, and we
currently don't build fat binaries at our buildbots.
This is needed to unblock the chromium_revision roll in
https://webrtc-codereview.appspot.com/50569004/ and it
also makes it a bit easier to build for iOS since it
is no longer needed to set target_subarch=arm64 when
target_arch=arm64 (i.e. when you build for ARM64).
TBR=tkchin@webrtc.org
BUG=4503
Review URL: https://webrtc-codereview.appspot.com/48869004
Cr-Commit-Position: refs/heads/master@{#8937}
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}
This CL adds support for unittests of the AudioDeviceModule on Android using both Java and C++. The new framework uses ::testing::TesWithParam to support both Java-based audio and OpenSL ES based audio. However, given existing issues in our OpenSL ES implementation, the list of test parameters only contains Java in this first version. Open SL ES will be enabled as soon as the backend has been refactored.
It also:
- Removes the redundant JNIEnv* argument in webrtc::VoiceEngine::SetAndroidObjects().
- Modifies usage of enable_android_opensl and the WEBRTC_ANDROID_OPENSLES define.
- Adds kAndroidJavaAudio and kAndroidOpenSLESAudio to AudioLayer enumerator.
- Fixes some bugs which were discovered when running the tests.
BUG=NONE
R=phoglund@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/40069004
Cr-Commit-Position: refs/heads/master@{#8651}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8651 4adac7df-926f-26a2-2b94-8c16560cd09d
The problem we were running into on the Mac 10.9 debug bot in Chrome turned out to be good ol'fashion memory corruption. Part of webrtc was being compiled with _DEBUG, another half without it. This caused the definition of some symbols to be out of sync (notably pthread_mutex_t) and would cause code built from common.gypi, to overwrite memory allocated via common types from base/base.gypi derived code. Fun stuff to track down. This was a problem in particular with base/criticalsection.h since it's inlined into multiple object files but will have different definitions of what a mutex is.
TBR=pbos,kjellander
BUG=
Review URL: https://webrtc-codereview.appspot.com/43659004
Cr-Commit-Position: refs/heads/master@{#8646}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8646 4adac7df-926f-26a2-2b94-8c16560cd09d
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