Overview of changes in Chrome DEPS:
$ svn diff http://src.chromium.org/chrome/trunk/src/DEPS -r 249215:255773
which can be compared with the output of:
$ grep chromium_deps DEPS
in a WebRTC checkout, gives the following relevant changes:
* third_party/icu 246118:249466
* third_party/libyuv 978:979
* third_party/libjpeg_turbo 239595:251747
* third_party/libsrtp 214783:250757
* third_party/nss 246067:254867
* tools/clang-format 198831:202065
* tools/gyp 1846:1860
Among a variety of updated DEPS, this enables us to use
the new automatic download of Chromium's stripped down
Visual Studio 2013 toolchain on Windows.
For Windows, Visual Studio 2013 is also the default compiler
in Chrome. This CL sets the GYP_MSVS_VERSION to 2010 unless
otherwise specified. Doing that we can first fix our 2013 problems
before we move over to having 2013 by default.
The plan is to build 2013 at the WebRTC FYI waterfall at
http://build.chromium.org/p/client.webrtc.fyi/waterfall
to ensure we can support VS2013 before the switch.
I realized we can sync Chromium's find_depot_tools.py script
into it's own folder and just alter the PYTHONPATH for the
gyp_webrtc script. That way there's no need to have the dummy
module in webrtc/build anymore. The real script is also needed
for the logic that handles checking VS2013 and downloading it if
not found.
BUG=chromium:340973
TEST=All trybots passing runhooks and compile step.
R=tommi@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/9299004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@5667 4adac7df-926f-26a2-2b94-8c16560cd09d
The find_depot_tools.py is needed to workaround the import
error we get from gyp_chromium when importing it in
webrtc/build/gyp_webrtc (to avoid code duplication).
gyp_chromium introduced a dependency on it in
http://crrev.com/245412 but as we cannot sync all of Chrome's
src/tools (it's quite big), we'll work around this by
adding an empty find_depot_tools module.
The removal of the Cygwin relates to
http://crrev.com/248802 which is a step on the way to remove
Cygwin in Chromium. We seem to already be able to remove it
entirely for WebRTC though.
Changes in the isolate framework required us to update our
copies of the isolate.gypi files.
BUG=none
TEST=trybots passing on all platforms
R=andrew@webrtc.org, fischman@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/8099004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@5512 4adac7df-926f-26a2-2b94-8c16560cd09d
The reason for this is that http://crrev.com/245412
introduces a dependency of Chrome's src/build/gyp_chromium
to src/tools/find_depot_tools.py, which we don't have
synced in WebRTC (src/tools is very big).
Offline discussions shows that we cannot rely on syncing
individual subdirectories from Chrome in the future, but
maintaining our own gyp_webrtc file will at least buy us
some time for now, so we can roll past that chromium_revision
in WebRTC DEPS.
Overview of differences between gyp_webrtc and gyp_chromium
(and how we previously used gyp_chromium):
* No .gyp file needs to be passed (defaults to all.gyp)
* CHROMIUM_GYP_FILE is ignored (i.e. cannot be used to
specify an alternate .gyp file to process)
* Ninja is used by default on all platforms unless GYP_GENERATORS
is set.
* Gyp syntax check is always on
* Gyp circular dependency check is always on
* No support for automatic toolchain detection on Windows.
* --depth argument is no longer needed since calculated by
the script.
* Support for a webrtc.gyp_env file sitting next to the
.gclient file in the top dir of checkout, which can be
used to override Gyp variables similar to chromium.gyp_env.
* SKIP_WEBRTC_GYP_ENV can be set to skip reading webrtc.gyp_env.
BUG=2863
TEST=Ran and verified behavior on Linux with:
gclient runhooks
webrtc/build/gyp_webrtc
webrtc/build/gyp_webrtc -Dextra_gyp_flag=0
. build/android/envsetup.sh && gclient runhooks
SKIP_WEBRTC_GYP_ENV=1 webrtc/build/gyp_webrtc
GYP_GENERATORS=make webrtc/build/gyp_webrtc
The patch also passes runhooks and compile step on all trybots.
R=andrew@webrtc.org, fischman@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/7759004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@5467 4adac7df-926f-26a2-2b94-8c16560cd09d
It includes unit test fixes to properly initialize SSL if DTLS or SSL random number generator is used in the tests.
The private key and certificate constant strings used in some tests are updated to be compatible with NSS.
A few potentially overflow type conversions caused compiling warning on Windows and they are fixed by importing and using Chromium's checked_cast, which aborts the program if overflow occurs.
It also fixes a leak in nssstreamadapter.cc by releasing the PRFileDesc* in StreamClose.
BUG=2253
R=fischman@webrtc.org, juberti@google.com, wu@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/4679005
git-svn-id: http://webrtc.googlecode.com/svn/trunk@5459 4adac7df-926f-26a2-2b94-8c16560cd09d
There are uninitializion problem with normal_asyn_test.cc. This is fairly easy to solve and therefore is included in this CL.
The following is a memo on the selection of the version to roll. It may be a reference for similar missions.
How was this version picked?
1. The whole purpose of this work is to update to Clang to be able to compile Opus 1.1. In Chromium, Clang got updated to 198389 at r244540.
2. From r245412, gyp_chromium requires "tools\find_depot_tools.py". However, WebRTC does not sync up the root of folder "tools". An issue has been created to Chromium on this.
... So the version must be a good version between r244540 and r245411 (inclusive)
BUG=
TEST=passes all trybots
R=kjellander@webrtc.org, stefan@webrtc.org, tina.legrand@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/7569005
git-svn-id: http://webrtc.googlecode.com/svn/trunk@5436 4adac7df-926f-26a2-2b94-8c16560cd09d
With help from hinoka@, we're now using a more efficient approach
to download only the files that have changed from Google Storge.
When uploading new resource files, use
upload_to_google_storage.py --bucket chromium-webrtc-resources ./filename
which of course requires gsutil authentication setup.
NOTICE: Before deploying this, svn:ignore should be removed for
the resources folder, or the bots will run into problems with a
non-versioned file being found in the checkout during sync (as
this CL adds resources to version control).
All developers will also need to be informed to wipe their local
resources dir to avoid getting an error during checkout due to the
already existing non-versioned resources directory.
BUG=2294
TEST=locally running gclient runhooks
R=andrew@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/2095004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@5076 4adac7df-926f-26a2-2b94-8c16560cd09d
This will speed up our buildbots and trybots since it also enables
incremental builds again (currently out/ was wiped for each build).
The Chromium toolchain somehow has changed behavior, since the out/
dir didn't use to be wiped. This change should get faster builds
back again.
git-svn-id: http://webrtc.googlecode.com/svn/trunk@4641 4adac7df-926f-26a2-2b94-8c16560cd09d
This is a re-land attempt of http://review.webrtc.org/1673004/
It now includes a build/isolate.gypi in WebRTC that includes the same
file as the one that would be included when WebRTC is used in a Chromium
checkout. It is needed since it is not possible to use variables in GYP's
includes sections.
Implemented according to the instructions at
http://www.chromium.org/developers/testing/isolated-testing
Workflow has been like this:
1. create _run GYP target
2. create a stripped down .isolate file
3. export GYP_DEFINES="$GYP_DEFINES test_isolation_mode=check"
4. runhooks
5. compile
6. test if the test would run (i.e. find it's dependencies) without
actually executing it:
tools/swarm_client/isolate.py run --isolated out/Release/testname.isolated
7. If failing, run the fix_test_cases.py script like this:
tools/swarm_client/googletest/fix_test_cases.py --isolated out/Release/testname.isolated
All tests that run on the bots for WebRTC has got _run target
and .isolate file created.
"Normal tests" that run fine on any machine:
* audio_decoder_unittests
* common_audio_unittests
* common_video_unittests
* metrics_unittests
* modules_tests
* modules_unittests
* neteq_unittests
* system_wrappers_unittests
* test_support_unittests
* tools_unittests
* video_engine_core_unittests
* voice_engine_unittests
Tests that requires bare-metal and audio/video devices:
* audio_device_tests
* video_capture_tests
I also added the isolate boilerplate code for the following
tests that are not yet pure gtest binaries (which means they
cannot run isolated yet):
* video_render_tests
* vie_auto_test
* voe_auto_test
TEST=running isolate.py as described above. WebRTC trybots passing. Created a Chromium checkout with third_party/webrtc ToT and this patch applied, passing the runhooks step.
BUG=1916
R=henrike@webrtc.org, tommi@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/2056004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@4590 4adac7df-926f-26a2-2b94-8c16560cd09d
As this breaks the FYI bots in
http://build.chromium.org/p/chromium.webrtc.fyi/waterfall
due to different path to isolate.gypi (which cannot easily
be resolved due to limitations in GYP)
> Isolate GYP target and .isolate files for tests
>
> Implemented according to the instructions at
> http://www.chromium.org/developers/testing/isolated-testing
>
> Workflow has been like this:
> 1. create _run GYP target
> 2. create a stripped down .isolate file
> 3. export GYP_DEFINES="$GYP_DEFINES test_isolation_mode=check"
> 4. runhooks
> 5. compile
> 6. test if the test would run (i.e. find it's dependencies) without
> actually executing it:
> tools/swarm_client/isolate.py run --isolated out/Release/testname.isolated
> 7. If failing, run the fix_test_cases.py script like this:
> tools/swarm_client/fix_test_cases.py --isolated out/Release/testname.isolated
>
> All tests that run on the bots for WebRTC has got _run target
> and .isolate file created.
>
> "Normal tests" that run fine on any machine:
> * audio_decoder_unittests
> * common_audio_unittests
> * common_video_unittests
> * metrics_unittests
> * modules_integrationtests
> * modules_unittests
> * neteq_unittests
> * system_wrappers_unittests
> * test_support_unittests
> * tools_unittests
> * video_engine_core_unittests
> * voice_engine_unittests
>
> Tests that requires bare-metal and audio/video devices:
> * audio_device_integrationtests
> * video_capture_integrationtests
>
> I also added the isolate boilerplate code for the following
> tests that are not yet pure gtest binaries (which means they
> cannot run isolated yet):
> * video_render_integrationtests
> * vie_auto_test
> * voe_auto_test
>
> TEST=running isolate.py as described above.
> BUG=1916
> R=tommi@webrtc.org
>
> Review URL: https://webrtc-codereview.appspot.com/1673004TBR=kjellander@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/2040004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@4548 4adac7df-926f-26a2-2b94-8c16560cd09d
Implemented according to the instructions at
http://www.chromium.org/developers/testing/isolated-testing
Workflow has been like this:
1. create _run GYP target
2. create a stripped down .isolate file
3. export GYP_DEFINES="$GYP_DEFINES test_isolation_mode=check"
4. runhooks
5. compile
6. test if the test would run (i.e. find it's dependencies) without
actually executing it:
tools/swarm_client/isolate.py run --isolated out/Release/testname.isolated
7. If failing, run the fix_test_cases.py script like this:
tools/swarm_client/fix_test_cases.py --isolated out/Release/testname.isolated
All tests that run on the bots for WebRTC has got _run target
and .isolate file created.
"Normal tests" that run fine on any machine:
* audio_decoder_unittests
* common_audio_unittests
* common_video_unittests
* metrics_unittests
* modules_integrationtests
* modules_unittests
* neteq_unittests
* system_wrappers_unittests
* test_support_unittests
* tools_unittests
* video_engine_core_unittests
* voice_engine_unittests
Tests that requires bare-metal and audio/video devices:
* audio_device_integrationtests
* video_capture_integrationtests
I also added the isolate boilerplate code for the following
tests that are not yet pure gtest binaries (which means they
cannot run isolated yet):
* video_render_integrationtests
* vie_auto_test
* voe_auto_test
TEST=running isolate.py as described above.
BUG=1916
R=tommi@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/1673004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@4547 4adac7df-926f-26a2-2b94-8c16560cd09d
Things included in this CL:
- updated READMEs to provide an exact/reproable set of steps for getting the app
running.
- gyp changes to build the iOS AppRTCDemo sample app using gyp+ninja instead of
the hand-crafted Xcode project (which has never worked in its checked-in
form), including a gyp action to sign the sample app for deployment to an iOS
device (the app can also be used in the simulator)
- deleted the busted hand-crafted Xcode project for the sample app
- updated the sample app to match the PeerConnection API that ended up landing
(in a surprising twist of fate, the API landed quite a bit later than the
sample app and this is the first time the CR-time changes in the API are
reflected in the sample app)
- updated the sample app to reflect apprtc.appspot.com HTML/JS changes (equiv to
the AppRTCClient.java changes in http://s10/47299162)
- picked up the iossim DEPS to enable launching the sample app in the simulator
from the command-line.
- renamed some files to match capitalization of the classes they contain (Ice ->
ICE) per ObjC naming guidelines.
- ran the files involved in this CL through clang-format to deal with xcode
formatting craxy.
BUG=2106
RISK=P2
TESTED=unittest builds with ninja and passes on OS=mac; sample app builds with ninja and runs on simulator and device, though no audio flows from simulator/device (will fix in a follow-up CL)
R=andrew@webrtc.org, justincohen@google.com, wu@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/1874005
git-svn-id: http://webrtc.googlecode.com/svn/trunk@4466 4adac7df-926f-26a2-2b94-8c16560cd09d
Until we have WebRTC test targets created for Android, this test
makes it possible to move forward for buildbot automation.
TEST=Android NDK buildbot and local execution of:
source build/android/envsetup.sh
gclient runhooks
ninjar -C out/Debug
verified the out/Debug/simple_apk dir exists and has the files.
BUG=1882
R=henrika@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/1688005
git-svn-id: http://webrtc.googlecode.com/svn/trunk@4245 4adac7df-926f-26a2-2b94-8c16560cd09d
The md5sum and forwarder2 binaries from Chromium's
src/tools/android are needed to be able to run tests using the
test framework launched by build/android/run_tests.py.
Since they depend on Chromium's base, we're using a precompiled
copy for WebRTC's purposes.
Linux works out of the box if Chromium's Android build instructions
at https://code.google.com/p/chromium/wiki/AndroidBuildInstructions
are used. Mac runs into problems earlier in the build toolchain,
but as Mac is not a supported Android development platform in Chrome,
the files will have to be copied manually on that platform for now.
TEST=Synced, built and ran a test APK using run_tests.py.
BUG=1882
R=andrew@webrtc.org, henrike@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/1679005
git-svn-id: http://webrtc.googlecode.com/svn/trunk@4241 4adac7df-926f-26a2-2b94-8c16560cd09d
- Tests video_rtp_play.cc, video_rtp_play_mt.cc, decode_from_storage.cc rewritten
- rtp_player.cc/.h rewritten; added interfaces for externally setting up sinks
- Support for reading .rtp files pulled out into rtp_file_reader namespace
- Added support for reading .pcap (libpcap/wireshark/tcpdump) files, see pcap_file_reader
BUG=
TEST=trybots
Review URL: https://webrtc-codereview.appspot.com/1201009
git-svn-id: http://webrtc.googlecode.com/svn/trunk@3856 4adac7df-926f-26a2-2b94-8c16560cd09d
This CL enables building with Android NDK in the way that Chromium buildbots do it.
== Overview ==
* Add Android dependencies to DEPS (SDK, NDK, Android test runner). This also makes it possible to use Android's build/android/run_tests.py script to execute tests on Android devices.
* Add a Python script to build the WebRTC Video demo for Android using ndk-build and Ant. This is designed as an annotation script for Buildbots but is also fine to run locally.
* Update Android.mk so it works with the compiler output from a build performed by build/android/buildbot/bb_run_bot.py (which is how Chrome buildbots build).
== Syncing Android dependencies ==
To get the dependencies added in DEPS synced out, you must change the last line
of your .gclient file to look like this:
];target_os = ["android"]
That will append another variable to the .gclient file that causes these
dependencies to be synced during gclient sync.
If you want to get additional platform-specific dependencies in the same
checkout, add them to the list too, e.g. target_os = ["android", "unix"].
== Android.mk ==
The fix in Android.mk is needed since Chrome is building using build/android/buildbot/bb_run_bot.py, which only output the libraries into out/Debug. With the change it works for both that and a normal build (which copies the library files from out/Debug/obj.target/subpath to out/Debug anyway as a part of the build).
== svn:ignore ==
NOTICE: Before submitting, the following directories should be added to svn:ignore in third_party to avoid them from being removed and re-synced for every build:
* android_testrunner
* android_tools
* WebKit
This has to be done in a manual SVN commit since it's not possible to include in a git-svn CL (and I don't want to migrate this to a SVN CL).
BUG=none
TEST=local builds
Review URL: https://webrtc-codereview.appspot.com/1024009
git-svn-id: http://webrtc.googlecode.com/svn/trunk@3497 4adac7df-926f-26a2-2b94-8c16560cd09d
However, two other "hacks" had to be added to maintain bit-exactness
with legacy.
Note that this change requires a new version of the universal.rtp test
input, although the output reference stays the same.
Moving reference files, and using a new input vector for NetEq4.
The new input vector neteq_universal_new.rtp is identical to the old
neteq_universal.rtp, except that the payload type for CNG packets that
follows a wideband codec is changed to 98.
Update to resources revision 15 where the new reference files are.
Also changing a faulty log error.
Review URL: https://webrtc-codereview.appspot.com/1078009
git-svn-id: http://webrtc.googlecode.com/svn/trunk@3442 4adac7df-926f-26a2-2b94-8c16560cd09d
By changing the working directory for the executing script to the same
directory as the script is located in, it is possible to run the script
standing in a higher-level directory (otherwise the input file relative
paths become invalid).
This CL also changes the input file path for the audio_e2e_test test to
assume the file is located resources.
BUG=none
TEST=locally executed the tests standing in trunk/
Review URL: https://webrtc-codereview.appspot.com/1061009
git-svn-id: http://webrtc.googlecode.com/svn/trunk@3422 4adac7df-926f-26a2-2b94-8c16560cd09d
This resolves ninja error on Windows due to recent depot_tools update, since a newer GYP will be synced.
Initially we ran into a compile issue with libvpx: http://code.google.com/p/webm/issues/detail?id=521
The change in libvpx.gyp is needed since the newer version of Clang that
is used with this Chromium revision provides the -fsanitize=address flag
instead of the old (now deprecated) -faddress-sanitizer. Without
disabling them when asan=1, we'll get compile errors for the assembly
offsets generated for Libvpx. See http://crbug.com/159580 for more details.
BUG=libyuv:173
TEST=trybots passing.
Review URL: https://webrtc-codereview.appspot.com/1026004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@3361 4adac7df-926f-26a2-2b94-8c16560cd09d