Adressing clear races between the test thread and capturer thread shown
as heap-use-after-free in vpx_codec_destroy in
WebRtcVideoMediaChannelTest.SetSend (way later in the rest run).
When capturing a frame the test copied it to a separate frame that would
then be read by the test without synchronization, if the test didn't
manage to examine the frame in between captures the adapted frame would
be overwritten by the following frame during accesses to it.
The actual races are suppressed by race:webrtc/base/messagequeue.cc and
race:webrtc/base/thread.cc. These fixes reduce the suppression count
locally from around 3000 to 30 for VideoAdapterTest.*.
Also removing tsan suppressions for talk/base as it's been moved to
webrtc/base.
R=tommi@webrtc.org
BUG=3671
Review URL: https://webrtc-codereview.appspot.com/22169004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@6979 4adac7df-926f-26a2-2b94-8c16560cd09d
Now that WebRTC has rolled the chromium_revision past
http://crrev.com/284372 in r6784, clang has become the
default compiler. Since WebRTC standalone code doesn't
yet compile the Chromium Clang plugins enabled, this CL
disables them for the parts of the code that doesn't yet pass
compilation with them enabled.
The buildbots are using Goma which is not yet switched
over to Clang by default. That's why they're not red yet.
BUG=163
TEST=Passing compile locally on Linux using:
gn gen out/Debug --args="build_with_chromium=false is_debug=true" && ninja
-C out/Debug
gn gen out/Release --args="build_with_chromium=false is_debug=false" && ninja
-C out/Release
gn gen out/Default --args="build_with_chromium=false os=\"android\" cpu_arch=\"arm\" arm_version=7" && ninja -C out/Default
R=brettw@chromium.org
Review URL: https://webrtc-codereview.appspot.com/16279004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@6966 4adac7df-926f-26a2-2b94-8c16560cd09d
Adds a SCRIPT_VERSION and the target_os_list to the flag file content. The
script version is so that we can arbitrarially make all slaves/devs re-sync (in
case we change the implementation but don't want to roll chromium), and the
target_os_list is so that devs who change the target_os_list in their .gclient
file don't mysteriously fail to get the new deps.
R=kjellander@webrtc.org, agable@chromium.org, szager@chromium.org
BUG=2863, chromium:339647
Review URL: https://webrtc-codereview.appspot.com/17189004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@6952 4adac7df-926f-26a2-2b94-8c16560cd09d
This test verifies bit exactness for the send-side of ACM. The test
setup is a chain of three different test classes:
test::AcmSendTest -> AcmSenderBitExactness -> test::AcmReceiveTest
The receiver side is driving the test by requesting new packets from
AcmSenderBitExactness::NextPacket(). This method, in turn, asks for the
packet from test::AcmSendTest::NextPacket, which inserts audio from the
input file until one packet is produced. (The input file loops
indefinitely.) Before passing the packet to the receiver, the
AcmSenderBitExactness class verifies the packet header and updates a
payload checksum with the new payload. The decoded output from the
receiver is also verified with a (separate) checksum.
The current CL only adds tests for 30 ms and 60 ms iSAC. More codecs
will be added in coming changes.
BUG=3521
R=kwiberg@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/20179004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@6949 4adac7df-926f-26a2-2b94-8c16560cd09d
This test has been failing every now and then. This is likely due to the
random input that was used. With this change, the input is now read from
an audio file, making it identical on each run.
The encoding is moved to inside the main test loop, so that new data is
added with each packet. (Before this change, the same payload was added
over and over again; only the RTP header was updated.)
BUG=3715
R=turaj@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/19079004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@6948 4adac7df-926f-26a2-2b94-8c16560cd09d
An unsigned int was passed through %lu instead of %u (harmless on 32bit).
More seriously, a wide string was passed through %s, which means only the
first byte in the string got printed (since the 2nd byte is likely 0 in
UCS-2). Use %ls to include the whole string, even though it might not be
renderable in the target 8bit buffer.
BUG=chromium:82385
R=henrike@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/22409004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@6946 4adac7df-926f-26a2-2b94-8c16560cd09d
In r6939 the --verbose flag was passed to the problematic
(approx 2.2GB large) gclient sync of Chromium's src.git repo.
However the bots are still hitting killed sync jobs due to
lack of output. This is a speculative attempt to provoke
even more logging, in order to trigger buffer flushing for
the buildbot execution.
BUG=2863, chromium:339647
TEST=Ran gclient runhooks locally with CHROME_HEADLESS=1 set.
TBR=phoglund@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/21269004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@6940 4adac7df-926f-26a2-2b94-8c16560cd09d
In r6938 the switch to using Chromium's Git repo was
deployed. However this fails on the bots since their timeout
for steps without output is 1200 seconds, which is not enough
to checkout the large Chromium Git repo.
Adding --verbose will print more output, thus getting a longer
timeout that should be enough for the runhooks step to complete.
BUG=2863, chromium:339647
TEST=None
TBR=phoglund@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/15209004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@6939 4adac7df-926f-26a2-2b94-8c16560cd09d
WebRTC standalone shares a lot of dependencies and build
tools with Chromium. To make the build work, many of the
paths of a Chromium checkout is now emulated by creating
symlinks to files and directories.
All DEPS entries that previously used Var("chromium_trunk")
to reference a Chromium checkout or From("chromium_deps"..)
to reference the Chromium DEPS file are now removed and
replaced by symlink entries in setup_links.py.
The script also handles cleanup of the legacy
Subversion-based dependencies that's needed for the
transition.
Windows: One Windows-specific important change is that
gclient sync|runhooks must now be run from a shell
with Administrator privileges in order to be able to create
symlinks. This also means that Windows XP is no longer
supported.
To transition a previously created checkout:
Run "python setup_links.py --force" to cleanup the old
SVN-based dependencies that have been synced by gclient sync.
For Buildbots, the --force flag is automatically enabled for
their syncs.
BUG=2863, chromium:339647
TEST=Manual testing on Linux, Mac and Windows.
R=andrew@webrtc.org, iannucci@chromium.org, phoglund@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/18379005
git-svn-id: http://webrtc.googlecode.com/svn/trunk@6938 4adac7df-926f-26a2-2b94-8c16560cd09d
There are currently a number of places in the code where we dump audio
data in various stages of processing for debug purposes. Currently
these all write raw, uncompressed PCM files, which isn't supported by
the most common audio players, and requires the user to supply
metadata such as sample rate, sample size and endianness, etc.
This patch adds a simple class that makes it easy to write WAV files
instead. WAV files still contain the same uncompressed PCM data, but
they have a small header that contains all the requisite metadata, and
are supported by virtually all audio players.
Since some of the debug code that will be writing WAV files is written
in plain C, a C API is included as well.
R=andrew@webrtc.org, bjornv@webrtc.org, henrike@webrtc.org, tommi@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/16809004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@6932 4adac7df-926f-26a2-2b94-8c16560cd09d