Commit Graph

48 Commits

Author SHA1 Message Date
985d280b46 Add support for field trials to event log visualizer.
BUG=None

Review-Url: https://codereview.webrtc.org/2499283002
Cr-Commit-Position: refs/heads/master@{#15086}
2016-11-15 14:54:16 +00:00
6ceab08322 GN: New conventions, default target and refactorings
Introduce a convention on categorizing GN targets:
1. Production code
2. Tests
3. Examples
4. Tools
The first two have targets spread out all over the tree,
while the latter are isolated to examples/ and tools/ directories.

Another new convention: Each directory's BUILD.gn file shall contain
a target named similar to the directory name. This target shall
contain the 'most common' production code, i.e. so that most
consumers of the directory can depend on only the directory
(which implicitly means that target in GN).

//webrtc:webrtc_tests is changed to depend on all WebRTC tests.
From now on, it's necessary to add new test targets to this dependency
tree in order to get them compiled.

Two new group targets are created:
//webrtc/modules/audio_coding:audio_coding_tests
//webrtc/modules/audio_processing:audio_processing_tests
to reduce the long list of tests in //webrtc:webrtc_tests.

Visibility on //webrtc:webrtc and  //webrtc:webrtc_tests is restricted
to the root target, to avoid circular dependencies due to the monolithic
property of these targets (a problem we've had in the past).

The 'root' target at the top level is renamed to 'default', which means GN will
build this target instead of _all_ generated targets
(see https://chromium.googlesource.com/chromium/src/+/master/tools/gn/docs/faq.md#Can-I-control-what-targets-are-built-by-default).
This target now depends on everything we want to build, meaning all targets now
explicitly needs to be wired up from the root target in order to get build.
Having this, the number of compiled objects on Android is decreased from 8855 to 6276. It also gives us better control over our build.

BUG=webrtc:6440
TESTED=git cl try --clobber
NOTRY=True

Review-Url: https://codereview.webrtc.org/2441383002
Cr-Commit-Position: refs/heads/master@{#14821}
2016-10-28 12:44:07 +00:00
e40a7ee007 GN: Exclude suppressions of Chromium Clang warnings for Chromium builds.
These suppressions are causing GN errors when Chromium targets are depending
directly on WebRTC targets (needed for https://codereview.chromium.org/2413103004)

BUG=webrtc:4256
NOTRY=True

Review-Url: https://codereview.webrtc.org/2408133008
Cr-Commit-Position: refs/heads/master@{#14644}
2016-10-17 06:56:20 +00:00
cc91d284e4 Moved RtcEventLog files from call/ to logging/
The RtcEventLog headers need to be accessible from any place which needs
logging, and the implementation needs access to data structures that are
logged.

After a discussion in the code review, we all agreed to move the RtcEventLog implementation into its own top level directory - which I called "logging/" in expectation that other types of logging may have similar requirements. The directory contains two main build targets - "rtc_event_log_api", which is just rtc_event_log.h, that has no external dependencies and can be used from anywhere, and "rtc_event_log_impl" which contains the rest of the implementation and has many dependencies (more in the future).

The "api" target can be referenced from anywhere, while the "impl" target is only needed at the place of instantiation (currently Call, soon to be moved to PeerConnection by https://codereview.webrtc.org/2353033005/).

This change allows using RtcEventLog in the p2p/ directory, so that we
can log STUN pings and ICE state transitions.

BUG=webrtc:6393
R=kjellander@webrtc.org, kwiberg@webrtc.org, solenberg@webrtc.org, stefan@webrtc.org, terelius@webrtc.org

Review URL: https://codereview.webrtc.org/2380683005 .

Cr-Commit-Position: refs/heads/master@{#14485}
2016-10-04 01:31:32 +00:00
89a3a1a363 Moved Gn target rtc_event_log to one directory above.
This is done to ensure GN targets are placed in the same directory as of the source files.

BUG=webrtc:6412
NOTRY=True

Review-Url: https://codereview.webrtc.org/2365383004
Cr-Commit-Position: refs/heads/master@{#14411}
2016-09-28 07:49:04 +00:00
b62dbbe985 GN: Change rtc_source_set targets --> rtc_static_library
This changes most non-test related rtc_source_set targets to be
rtc_static_library instead. Targets without any .cc files are excluded.
This should bring back the build behavior we used to have with GYP
(i.e. same symbols exported in the libjingle_peerconnection.a file, which
are used by some downstream projects).

After doing an Android build with these changes:
$ nm --defined-only -g -C out/Release/lib.unstripped/libjingle_peerconnection_so.so | grep -i createpeerconnectionf
00077c51 T Java_org_webrtc_PeerConnectionFactory_nativeCreatePeerConnectionFactory
$ nm --defined-only -g -C out/Release/obj/webrtc/api/libjingle_peerconnection.a | grep -i createpeerconnectionf
00000001 T webrtc::CreatePeerConnectionFactory(rtc::Thread*, rtc::Thread*, rtc::Thread*, webrtc::AudioDeviceModule*, cricket::WebRtcVideoEncoderFactory*, cricket::WebRtcVideoDecoderFactory*)
00000001 T webrtc::CreatePeerConnectionFactory()

See https://chromium.googlesource.com/chromium/src/+/master/tools/gn/docs/cookbook.md#Note-on-static-libraries
for more details on this.

NOTICE: This should be further cleaned up in the future, to reduce
binary bloat and unnecessary linking time. Right now it's more
important to restore the desired build output though.

BUG=webrtc:6410, chromium:630755

Review-Url: https://codereview.webrtc.org/2361623004
Cr-Commit-Position: refs/heads/master@{#14364}
2016-09-23 07:38:58 +00:00
3a7f35b1c4 GN: Declare resources for targets.
Declare resources for GN targets so that they can be isolated

NOTRY=True
BUG=chromium:497757

Review-Url: https://codereview.webrtc.org/2340753002
Cr-Commit-Position: refs/heads/master@{#14210}
2016-09-14 12:10:06 +00:00
fc433e6546 Don't use VoE legacy APIs in force_mic_volume_max tool.
BUG=webrtc:4690

Committed: https://crrev.com/ae9f2bdcef7f3a338ece6f57744c8c8f74d15483
Review-Url: https://codereview.webrtc.org/2268183007
Cr-Original-Commit-Position: refs/heads/master@{#14135}
Cr-Commit-Position: refs/heads/master@{#14169}
2016-09-09 18:05:01 +00:00
96f2c4df31 Remove unused audio_e2e_harness.cc and infrastructure.
BUG=webrtc:4690

Review-Url: https://codereview.webrtc.org/2295283004
Cr-Commit-Position: refs/heads/master@{#14165}
2016-09-09 13:51:25 +00:00
f581eb76f4 Renamed and restructured the protobuf definitions for the rtc_event_log graphs.
BUG=

Review-Url: https://codereview.webrtc.org/2310403002
Cr-Commit-Position: refs/heads/master@{#14112}
2016-09-07 18:15:45 +00:00
e9cc686293 GN Templates: Move common_inherited_config to the template.
Remove common_inherited_config from the targets and add it to the
template instead.

BUG=webrtc:6187
NOTRY=True

Review-Url: https://codereview.webrtc.org/2311843002
Cr-Commit-Position: refs/heads/master@{#14069}
2016-09-05 13:10:23 +00:00
7a2ce0b738 GN Templates: Move common_config to the template.
Remove common_config from the targets' config and add
it to the template instead.

BUG=webrtc:6187
NOTRY=True

Review-Url: https://codereview.webrtc.org/2300413002
Cr-Commit-Position: refs/heads/master@{#14063}
2016-09-05 08:35:48 +00:00
1dd2335023 GN Templates: Add //build/config/sanitizers:deps to rtc_executable.
Remove //build/config/sanitizers:deps as a dependency for
all rtc_executable targets and add it to the template instead.

BUG=webrtc:6187
NOTRY=True

Review-Url: https://codereview.webrtc.org/2308553002
Cr-Commit-Position: refs/heads/master@{#14048}
2016-09-02 14:03:23 +00:00
38a2132b02 GN: Introduce templates.
Defines the rtc_executable, rtc_source_set, rtc_test and
rtc_static_library templates.

These templates provide no functionality yet, but will enable common
configuration to be introduced, avoiding repetition in every target

Changes summary:
- Prepend rtc_ to test, source_set, executable and static_library targets
- Change "configs -= [" to "suppressed_configs += ["
- Include webrtc/build/webrtc.gni where it wasn't included yet
- Delete import("//testing/test.gni"), since rtc_test makes it unnecessary.

BUG=webrtc:6187
TBR=henrik.lundin@webrtc.org,tommi@webrtc.org
NOTRY=True

Review-Url: https://codereview.webrtc.org/2301053002
Cr-Commit-Position: refs/heads/master@{#14043}
2016-09-02 11:10:41 +00:00
f383c5754f - Remove unused unit test webrtc/modules/audio_processing/agc/agc_unittest.cc
- Remove webrtc/tools/agc/test_utils.cc/.h - only used from the above test.
- Remove webrtc/tools/agc/agc_harness.cc - not used anymore.

BUG=webrtc:4690

Review-Url: https://codereview.webrtc.org/2299023004
Cr-Commit-Position: refs/heads/master@{#14039}
2016-09-02 09:39:40 +00:00
7a122d6376 Fix resource files for tools_unittests
Fixes the incorrect resource file that changed in
https://codereview.webrtc.org/2292853002

BUG=webrtc:5949
NOTRY=True
TBR=ehmaldonado@webrtc.org

Review URL: https://codereview.webrtc.org/2292923002 .

Cr-Commit-Position: refs/heads/master@{#13969}
2016-08-30 11:10:40 +00:00
32c4a20df7 GN: Fix resource files for iOS test target
In order to get resource files to be properly packaged into
the .app for a unit test on iOS, the resource files needs
to be listed as sources in a bundle_data target.

BUG=webrtc:5949
NOTRY=True

Review-Url: https://codereview.webrtc.org/2292853002
Cr-Commit-Position: refs/heads/master@{#13968}
2016-08-30 09:53:54 +00:00
19319a3a2e Add missing "//build/config/sanitizers:deps" to executable targets.
BUG=webrtc:6215
NOTRY=True

Review-Url: https://codereview.webrtc.org/2278723004
Cr-Commit-Position: refs/heads/master@{#13915}
2016-08-25 09:44:11 +00:00
28a0ffdd52 GN: Synchronize resources between Android and iOS.
iOS tests packaged into an .app uses the same way of
defining resources (the data attribute). Some iOS
simulator tests are failing due to missing resources, so
let's sync them all.

BUG=webrtc:5949
NOTRY=True

Review-Url: https://codereview.webrtc.org/2277753003
Cr-Commit-Position: refs/heads/master@{#13898}
2016-08-24 14:48:48 +00:00
b246a292cd Define a protobuf format for representing plots. Add code to convert the C-representation generated by the RtcEventLog analysis tool, to the new protobuf format.
BUG=webrtc:6249

NOTRY=True

Review-Url: https://codereview.webrtc.org/2268063002
Cr-Commit-Position: refs/heads/master@{#13873}
2016-08-24 01:15:31 +00:00
185ba29a3c Extract library from the RTCEventLog visualizer
This change splits the RtcEventLog visualization tool into a library and
the command-line tool that drives it. This allows other applications to
link with the library.

BUG=6249
R=kjellander@webrtc.org, terelius@webrtc.org

Review URL: https://codereview.webrtc.org/2273473002 .

Cr-Commit-Position: refs/heads/master@{#13869}
2016-08-23 20:01:38 +00:00
bcba64a0fa GN: Add "//build/config/sanitizers:deps" as a dependency to executable targets.
When the sanitizer bots are switched to GN, this needs to be included as a dependency so that the executables can be compiled.

BUG=webrtc:6215
NOTRY=True

Review-Url: https://codereview.webrtc.org/2250893003
Cr-Commit-Position: refs/heads/master@{#13829}
2016-08-19 09:11:15 +00:00
714dd4e532 GN: Update tests to have the correct shard timeout value on Android.
TBR=mflodman@webrtc.org
NOTRY=True

Review-Url: https://codereview.webrtc.org/2231413002
Cr-Commit-Position: refs/heads/master@{#13741}
2016-08-15 09:29:19 +00:00
4556b45076 Fix tools_unittests in GN.
tools_unittests were failing when generated by GN and running on a device.

BUG=webrtc:5949
NOTRY=True

Review-Url: https://codereview.webrtc.org/2233843002
Cr-Commit-Position: refs/heads/master@{#13714}
2016-08-10 14:47:20 +00:00
d49a37b1d9 Rename main file for visualization tool.
Review-Url: https://codereview.webrtc.org/2226273002
Cr-Commit-Position: refs/heads/master@{#13712}
2016-08-10 14:12:55 +00:00
dc35dcd4dc Convenience functions to set axis properties in visualization tool.
Also makes the properties protected, as previously requested by Stefan.

Review-Url: https://codereview.webrtc.org/2179223003
Cr-Commit-Position: refs/heads/master@{#13593}
2016-08-01 19:03:33 +00:00
13181035bc Reland: Add BWE plot to event log analyzer.
The plot is constructed by actually running the congestion controller with
the logged rtp headers and rtcp feedback messages to reproduce the same behavior
as in the real call.

R=phoglund@webrtc.org, terelius@webrtc.org

Review URL: https://codereview.webrtc.org/2193763002 .

Cr-Commit-Position: refs/heads/master@{#13574}
2016-07-29 12:49:04 +00:00
59c1ad58e6 Revert of Add BWE plot to event log analyzer. (patchset #6 id:100001 of https://codereview.webrtc.org/2188033004/ )
Reason for revert:
Breaks downstream targets.

Original issue's description:
> Add BWE plot to event log analyzer.
>
> The plot is constructed by actually running the congestion controller with
> the logged rtp headers and rtcp feedback messages to reproduce the same behavior
> as in the real call.
>
> R=phoglund@webrtc.org, terelius@webrtc.org
>
> Committed: https://crrev.com/2beea2a8c920000ef19eea20cce397507fc3d5e7
> Cr-Commit-Position: refs/heads/master@{#13558}

TBR=phoglund@webrtc.org,stefan@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

Review-Url: https://codereview.webrtc.org/2190013002
Cr-Commit-Position: refs/heads/master@{#13559}
2016-07-28 16:21:32 +00:00
2beea2a8c9 Add BWE plot to event log analyzer.
The plot is constructed by actually running the congestion controller with
the logged rtp headers and rtcp feedback messages to reproduce the same behavior
as in the real call.

R=phoglund@webrtc.org, terelius@webrtc.org

Review URL: https://codereview.webrtc.org/2188033004 .

Cr-Commit-Position: refs/heads/master@{#13558}
2016-07-28 15:42:31 +00:00
54ce680170 Initial version of the local visualization tool for WebrtcEventLogs.
Plot graphs to python code. Generate packet, playout, sequence number and total bitrate graphs.

Add bitrate and latency plots. Generate multiple figures, and control which ones are used through command line flags.

Committed: https://crrev.com/a478786ef1513790194792010f766324a469db4d
Review-Url: https://codereview.webrtc.org/1995523002
Cr-Original-Commit-Position: refs/heads/master@{#13443}
Cr-Commit-Position: refs/heads/master@{#13463}
2016-07-13 13:44:48 +00:00
a44f28da45 Revert of Visualization tool for WebrtcEventLogs (patchset #9 id:160001 of https://codereview.webrtc.org/1995523002/ )
Reason for revert:
Reverting while investigating a downstream build failure.

Original issue's description:
> Initial version of the local visualization tool for WebrtcEventLogs.
>
> Plot graphs to python code. Generate packet, playout, sequence number and total bitrate graphs.
>
> Add bitrate and latency plots. Generate multiple figures, and control which ones are used through command line flags.
>
> Committed: https://crrev.com/a478786ef1513790194792010f766324a469db4d
> Cr-Commit-Position: refs/heads/master@{#13443}

TBR=stefan@webrtc.org,aleloi@webrtc.org,phoglund@webrtc.org,henrika@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

Review-Url: https://codereview.webrtc.org/2147453002
Cr-Commit-Position: refs/heads/master@{#13445}
2016-07-12 12:11:29 +00:00
a478786ef1 Initial version of the local visualization tool for WebrtcEventLogs.
Plot graphs to python code. Generate packet, playout, sequence number and total bitrate graphs.

Add bitrate and latency plots. Generate multiple figures, and control which ones are used through command line flags.

Review-Url: https://codereview.webrtc.org/1995523002
Cr-Commit-Position: refs/heads/master@{#13443}
2016-07-12 11:30:31 +00:00
7ebbf90077 New rtc dump analyzing tool in Python
R=henrik.lundin@webrtc.org, ivoc@webrtc.org, kwiberg@webrtc.org, peah@webrtc.org, phoglund@webrtc.org

Review-Url: https://codereview.webrtc.org/1999113002
Cr-Commit-Position: refs/heads/master@{#13218}
2016-06-20 14:39:21 +00:00
aff499c9bf GN: Fix errors in rtc_include_tests conditions
https://codereview.webrtc.org/2043873003 forgot to flip the
logic.

BUG=webrtc:5949
TBR=phoglund@webrtc.org
NOTRY=True

Review URL: https://codereview.webrtc.org/2037403003 .

Cr-Commit-Position: refs/heads/master@{#13055}
2016-06-06 21:04:16 +00:00
e72db17556 GN: Use rtc_include_tests variable to exclude tests.
This is closer to what the GYP build does, and is more readable.

BUG=webrtc:5949
TBR=phoglund@webrtc.org
NOTRY=True

Review-Url: https://codereview.webrtc.org/2043873003
Cr-Commit-Position: refs/heads/master@{#13054}
2016-06-06 21:00:09 +00:00
a811968eec GN: Exclude frame_analyzer and rgba_to_i420_converter from Chromium builds.
Chromium's ASan bot fails to link rgba_to_i420_converter so let's exclude it until resolved.

NOTRY=True
BUG=webrtc:5970
TBR=jochen@chromium.org

Review-Url: https://codereview.webrtc.org/2039173002
Cr-Commit-Position: refs/heads/master@{#13047}
2016-06-06 09:00:25 +00:00
dc0dbad5e5 GN: Exclude tools and tests in Chromium builds.
BUG=webrtc:5949
TBR=guidou@webrtc.org
NOTRY=True

Review URL: https://codereview.webrtc.org/2038493002 .

Cr-Commit-Position: refs/heads/master@{#13015}
2016-06-02 11:29:13 +00:00
bac0412e7f GN: Add system_wrappers_unittests, tools and tools_unittests
BUG=webrtc:5949
TESTED=Built and ran the tests on Mac.
NOTRY=True

Review-Url: https://codereview.webrtc.org/2025343002
Cr-Commit-Position: refs/heads/master@{#13007}
2016-06-02 09:18:57 +00:00
84583e03c7 Adding default_exe_manifest to some gn binaries
gn builds are missing Windows manifests for some webrtc executables.
These manifests are necessary in order to get predictable behavior on
Windows.

BUG=602505
NOTRY=True

Review-Url: https://codereview.webrtc.org/1927793002
Cr-Commit-Position: refs/heads/master@{#12540}
2016-04-28 07:21:14 +00:00
84ba8b6f45 GN: Fix dependency for rtc_base_approved
In https://codereview.webrtc.org/1921463002/ a dependency
on Foundation.framework was added to rtc_base_approved for the
GYP build but not for the GN build. This was fixed for some
targets in https://codereview.webrtc.org/1919673002/ but the proper
fix is to introduce an all_dependent_configs entry for rtc_base_approved.

NOTRY=True

Review URL: https://codereview.webrtc.org/1921513002

Cr-Commit-Position: refs/heads/master@{#12483}
2016-04-25 06:03:15 +00:00
1d2dbdb0c0 Fix dependencies on mac in tools/BUILD.gn.
This can probly be done in a neater way but right now this is blocking the roll.

TBR=kjellander@webrtc.org

Review URL: https://codereview.webrtc.org/1919673002 .

Cr-Commit-Position: refs/heads/master@{#12480}
2016-04-24 16:24:32 +00:00
988d31eb9b Move gtest_prod_util.h out of webrtc/test tree.
This is needed because the target is defined in webrtc/common.gyp
and its current location crosses package boundaries when generating
projects for some build systems.

NOTRY=True

Review URL: https://codereview.webrtc.org/1665603003

Cr-Commit-Position: refs/heads/master@{#11496}
2016-02-05 08:23:57 +00:00
67bcb609a3 GN: Port frame_analyzer and rgba_to_i420_converter targets
Original patch by tfarina@chromium.org at
https://webrtc-codereview.appspot.com/42999004/

BUG=chromium:461019, webrtc:4504
TESTED=Tested on Linux with the following command lines:
$ gn gen/out/Debug --args='is_debug=true build_with_chromium=false'
$ ninja -C out/Debug frame_analyzer rgba_to_i420_converter
Also successfully compiled from a Chromium checkout using the steps in webrtc:4504.

R=tfarina@chromium.org

Review URL: https://codereview.webrtc.org/1387243002 .

Cr-Commit-Position: refs/heads/master@{#10193}
2015-10-07 06:43:07 +00:00
57e5fd2e60 PRESUBMIT: Improve PyLint check and add GN format check.
Add pylintrc file based on
https://code.google.com/p/chromium/codesearch#chromium/src/tools/perf/pylintrc
bit tightened up quite a bit (the one in depot_tools is far
more relaxed).

Remove a few excluded directories from pylint check and fixed/
suppressed all warnings generated.

Add GN format check + formatted all GN files using 'gn format'.
Cleanup redundant rules in tools/PRESUBMIT.py

TESTED=Ran 'git cl presubmit -vv', fixed the PyLint violations.
Ran it again with a modification in webrtc/build/webrtc.gni, formatted
all the GN files and ran it again.

R=henrika@webrtc.org, phoglund@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/50069004

Cr-Commit-Position: refs/heads/master@{#9274}
2015-05-25 10:55:50 +00:00
fa16dda238 Revert "Port frame_analyzer and rgba_to_i420_converter targets to GN build."
This reverts commit 6ac53b2b37c36d4e09f4252c91cada0462adf741.

Reason: breaks compile on Win GN:
https://build.chromium.org/p/chromium.webrtc.fyi/builders/Win%20GN/builds/131

TBR=tfarina@chromium.org

Review URL: https://webrtc-codereview.appspot.com/45919004

Cr-Commit-Position: refs/heads/master@{#8915}
2015-04-01 20:54:08 +00:00
6ac53b2b37 Port frame_analyzer and rgba_to_i420_converter targets to GN build.
Tested on Linux with the following command lines:

$ gn gen //out/Debug --args='is_debug=true target_cpu="x64" build_with_chromium=false'
$ ninja -C out/Debug frame_analyzer rgba_to_i420_converter

BUG=chromium:461019
TEST=see above
R=kjellander@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/42999004

Cr-Commit-Position: refs/heads/master@{#8914}
2015-04-01 15:29:51 +00:00
3037bc3447 GN: Add common configs to tools and test.
Similar changes as in https://review.webrtc.org/28589004/
were missed in https://review.webrtc.org/25569004/.
This should fix the Chromium WebRTC FYI bots that currently
are broken due to lack of include paths.

BUG=3441
TBR=henrike@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/25749004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7347 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-09-30 19:07:58 +00:00
b8caf6a504 GN: Enable libvpx, add link target and convert some test targets
Libvpx now supports GN and this CL turns on compiling it.
I also introduced an executable target 'webrtc_tests'
that depends on all in WeBRTC + tests in order to get a full
linking step executed (since we've seen link problems for GN
when rolling WebRTC into Chromium).

I also converted a few test targets and made a GN file for
third_party/gflags.

BUG=3441
TESTED=Trybots + full Chromium build with a symlinked src/third_party/webrtc
dir to a workspace wit this CL applied.

R=brettw@chromium.org
TBR=niklas.enbom@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/25569004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7344 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-09-30 18:05:02 +00:00