Some applications explicitly require RFC3550 style RTP without ICE.
Port number requirement of RFC3550 section 11 will be addressed in a follow-up CL.
BUG=webrtc:6436
Review-Url: https://codereview.webrtc.org/2377883003
Cr-Commit-Position: refs/heads/master@{#15005}
Moving one of the targets that shouldn't pollute the already large
webrtc/BUILD.gn file.
BUG=webrtc:6440
NOTRY=True
Review-Url: https://codereview.webrtc.org/2440963002
Cr-Commit-Position: refs/heads/master@{#14970}
This will enable more warnings for Android ARM64 build.
The main purpose is to clean up clutter in the warnings config.
BUG=webrtc:6653
NOTRY=True
Review-Url: https://codereview.webrtc.org/2479533002
Cr-Commit-Position: refs/heads/master@{#14917}
With this change, instead of
RTC_DCHECK_GE(unsigned_var, 17u);
we can simply write
RTC_DCHECK_GE(unsigned_var, 17);
or even
RTC_DCHECK_GE(unsigned_var, -17); // Always true.
and the mathematically sensible thing will happen.
Perhaps more importantly, we can replace checks like
// index is size_t, num_channels is int.
RTC_DCHECK(num_channels >= 0
&& index < static_cast<size_t>(num_channels));
or, even worse, just
// Surely num_channels isn't negative. That would be absurd!
RTC_DCHECK_LT(index, static_cast<size_t>(num_channels));
with simply
RTC_DCHECK_LT(index, num_channels);
In short, you no longer have to keep track of the signedness of the arguments, because the sensible thing will happen.
BUG=webrtc:6645
Review-Url: https://codereview.webrtc.org/2459793002
Cr-Commit-Position: refs/heads/master@{#14878}
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}
Now that Chromium has taken libsrtp2, remove any compatibility bridge code in WebRTC that was only needed for libsrtp1.
Remove SRTP_RELATIVE_PATH now that Google's internal copy of libsrtp and the Chromium copy have the same directory structure.
Fix some include orderings per the Chromium C++ style guide.
Remove the `extern "C"` blocks now that the libsrtp headers include them (https://github.com/cisco/libsrtp/pull/195).
BUG=webrtc:6376
Review-Url: https://codereview.webrtc.org/2447893002
Cr-Commit-Position: refs/heads/master@{#14776}
Move the following targets into webrtc/video/BUILD.gn:
* screenshare_loopback
* video_quality_test
* video_loopback
Add new target 'run_tests' in webrtc/test/BUILD.gn, being used by two
of the above and make then depend on that instead.
BUG=webrtc:6440
NOTRY=True
Review-Url: https://codereview.webrtc.org/2438973002
Cr-Commit-Position: refs/heads/master@{#14735}
The main reason for doing this is to allow refcounted objects to accept rvalue references in ctor and be able to std::move ctor rvalue arguments.
Also, refcounted.h is now generated using pump.py instead of manually creating each ctor version.
BUG= none
Review-Url: https://codereview.webrtc.org/2425683003
Cr-Commit-Position: refs/heads/master@{#14687}
asyncstuntcpsocket_unittest.cc never seem to have been added
along with the other tests in webrtc/p2p. Luckily the tests pass.
BUG=None
NOTRY=True
Review-Url: https://codereview.webrtc.org/2404173002
Cr-Commit-Position: refs/heads/master@{#14632}
Reason for revert:
Seems to break our Android Swarming bots. Probably due to https://cs.chromium.org/chromium/src/testing/buildbot/gn_isolate_map.pyl?rcl=0&l=875
Error:
/b/c/b/Android32__M_Nexus5X__dbg_/src/buildtools/linux64/gn gen //out/Debug --check --runtime-deps-list-file=/b/c/b/Android32__M_Nexus5X__dbg_/src/out/Debug/runtime_deps
-> returned 1
ERROR The label "//webrtc/tools:tools_unittests(//build/toolchain/android:arm)" isn't a target.
When reading the line:
//webrtc/tools:tools_unittests
from the --runtime-deps-list-file=/b/c/b/Android32__M_Nexus5X__dbg_/src/out/Debug/runtime_deps
GN gen failed: 1
Original issue's description:
> Remove tools dir from root webrtc target
>
> Removing it as we don't need it to build as part of webrtc target.
>
> BUG=webrtc:6412
> NOTRY=True
>
> Committed: https://crrev.com/163b1a2d0a0f8e822d8cd15f6385057bc7988ad1
> Cr-Commit-Position: refs/heads/master@{#14622}
TBR=charujain@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:6412
Review-Url: https://codereview.webrtc.org/2420573002
Cr-Commit-Position: refs/heads/master@{#14624}
Removing it as we don't need it to build as part of webrtc target.
BUG=webrtc:6412
NOTRY=True
Review-Url: https://codereview.webrtc.org/2412353004
Cr-Commit-Position: refs/heads/master@{#14622}
but remove the #if BWE_TEST_LOGGING_COMPILE_TIME_ENABLE so that it always builds.
BUG=webrtc:6497
Review-Url: https://codereview.webrtc.org/2398123002
Cr-Commit-Position: refs/heads/master@{#14564}
This CL deletes the old and not used video defines in
engine_configurations.h and pre-pends voice_ to indicate there are only
voice/audio defines left in the file.
BUG=none
R=solenberg@webrtc.org
Review URL: https://codereview.webrtc.org/2401673002 .
Cr-Commit-Position: refs/heads/master@{#14558}
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}
The implementation is borrowed from Chromium.
Also change use of raw pointers in VideoSendStreamImpl to use WeakPtr<>
BUG= webrtc:6289
Review-Url: https://codereview.webrtc.org/2367853002
Cr-Commit-Position: refs/heads/master@{#14468}
It's a very general type, and we're about to start needing it in other
places besides AudioCodingModule.
BUG=webrtc:5801
Review-Url: https://codereview.webrtc.org/2380463003
Cr-Commit-Position: refs/heads/master@{#14423}
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}
Most other targets were converted to static_library to match the
GYP build in https://codereview.webrtc.org/2361623004.
The monolithic 'webrtc' wasn't converted due to a limitation in
libtool on Mac: it will fail if there are no object files to link
(see http://crbug.com/625874).
Because of that, a no_op_function.cc source file was added to
the sources here, even if it's not used. This will be further
refactored in the future as part of the Slim and Modular
effort (bugs.webrtc.org/5716).
BUG=webrtc:6418, webrtc:6410
NOTRY=True
Review-Url: https://codereview.webrtc.org/2372983002
Cr-Commit-Position: refs/heads/master@{#14403}
Reason for revert:
Internal project is updated.
Original issue's description:
> Revert of Rename AppRTCDemo on Android and iOS to AppRTCMobile (patchset #2 id:20001 of https://codereview.webrtc.org/2343403002/ )
>
> Reason for revert:
> Breaks internal project.
>
> Original issue's description:
> > Rename AppRTCDemo on Android and iOS to AppRTCMobile
> >
> > The purpose is to make it clearer it is a mobile application.
> >
> > BUG=webrtc:6359
> > NOPRESUBMIT=true
> >
> > Committed: https://crrev.com/d3af58bdab5b25acd62cd816363becc7003d3e5a
> > Cr-Commit-Position: refs/heads/master@{#14356}
>
> TBR=sakal@webrtc.org,kthelgason@webrtc.org,tommi@webrtc.org
> # Skipping CQ checks because original CL landed less than 1 days ago.
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=webrtc:6359
>
> Committed: https://crrev.com/87ef6f750126f9f17f4714d696a8e77a2dd0a3f1
> Cr-Commit-Position: refs/heads/master@{#14358}
TBR=sakal@webrtc.org,kthelgason@webrtc.org,tommi@webrtc.org
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG=webrtc:6359
Review URL: https://codereview.webrtc.org/2373443005 .
Cr-Commit-Position: refs/heads/master@{#14391}
This CL removes the use_objc_h264 flag. This means that the VideoToolbox
H264 encoder and decoder will always be built.
BUG=webrtc:4081
NOTRY=TRUE
Review-Url: https://codereview.webrtc.org/2366443003
Cr-Commit-Position: refs/heads/master@{#14372}
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}
Reason for revert:
Breaks internal project.
Original issue's description:
> Rename AppRTCDemo on Android and iOS to AppRTCMobile
>
> The purpose is to make it clearer it is a mobile application.
>
> BUG=webrtc:6359
> NOPRESUBMIT=true
>
> Committed: https://crrev.com/d3af58bdab5b25acd62cd816363becc7003d3e5a
> Cr-Commit-Position: refs/heads/master@{#14356}
TBR=sakal@webrtc.org,kthelgason@webrtc.org,tommi@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:6359
Review-Url: https://codereview.webrtc.org/2358133003
Cr-Commit-Position: refs/heads/master@{#14358}
The purpose is to make it clearer it is a mobile application.
BUG=webrtc:6359
NOPRESUBMIT=true
Review-Url: https://codereview.webrtc.org/2343403002
Cr-Commit-Position: refs/heads/master@{#14356}
For some reason the RtcEventLog unit tests were not building and
running. This CL adds these tests to the rtc_unittests target.
They are only built if protobuf support is enabled.
BUG=webrtc:6379
R=stefan@webrtc.org, terelius@webrtc.org
Review URL: https://codereview.webrtc.org/2344383002 .
Cr-Commit-Position: refs/heads/master@{#14295}
With the small number of tests these targets contain, it
makes more sense to gather them into android_junit_tests
instead, which was created to be a high-level target containing
all the junit tests.
BUG=chromium:647390
NOTRY=True
Review-Url: https://codereview.webrtc.org/2347403002
Cr-Commit-Position: refs/heads/master@{#14292}
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}
Only used in VoE tests so I'm moving it in under voice_engine/ until we've removed its usage and can deprecate.
Note: submitting this with PRESUBMIT=false because the files do not adhere to style guide conventions and I'd rather change that in a separate CL.
BUG=
NOPRESUBMIT=true
Committed: https://crrev.com/ade2a038a9290ee0c85d8c682eba5447aca943cd
Review-Url: https://codereview.webrtc.org/2319583005
Cr-Original-Commit-Position: refs/heads/master@{#14191}
Cr-Commit-Position: refs/heads/master@{#14198}
Moved it inside the rtc_include_tests if clause
so that it build only when tests flag is set to true.
NOTRY=True
BUG=31425205
Review-Url: https://codereview.webrtc.org/2337463002
Cr-Commit-Position: refs/heads/master@{#14197}
Reason for revert:
Breaks downstream code
Original issue's description:
> Moved webrtc/test/channel_transport/ into webrtc/voice_engine/test/
>
> Only used in VoE tests so I'm moving it in under voice_engine/ until we've removed its usage and can deprecate.
>
> Note: submitting this with PRESUBMIT=false because the files do not adhere to style guide conventions and I'd rather change that in a separate CL.
>
> BUG=
> NOPRESUBMIT=true
>
> Committed: https://crrev.com/ade2a038a9290ee0c85d8c682eba5447aca943cd
> Cr-Commit-Position: refs/heads/master@{#14191}
TBR=kwiberg@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=
Review-Url: https://codereview.webrtc.org/2336123002
Cr-Commit-Position: refs/heads/master@{#14193}