Commit Graph

33505 Commits

Author SHA1 Message Date
4bb81aca75 Make JsepTransportCollection self-managing for transports
This entails instantly deleting the transport when it is no longer
referenced by any MID.

Also adds consistency checks to JsepTransportCollection.

Bug: webrtc:12837
Change-Id: I85775aeb676aac3a9aee74280cc72ac87a0f49b5
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/221982
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34273}
2021-06-11 16:12:11 +00:00
63c96ce3c7 Roll chromium_revision d2f297f391..8907aace7e (890623:891631)
Change log: d2f297f391..8907aace7e
Full diff: d2f297f391..8907aace7e

Changed dependencies
* src/base: 5b7059db9a..bb0fa97f05
* src/build: 921ea5898e..eb4ebdf32c
* src/buildtools: 9d8449e380..c1cef4e23c
* src/buildtools/linux64: git_revision:39a87c0b36310bdf06b692c098f199a0d97fc810..git_revision:695504d72a30e0b58705b2a1a23964ebf7bca030
* src/buildtools/mac: git_revision:39a87c0b36310bdf06b692c098f199a0d97fc810..git_revision:695504d72a30e0b58705b2a1a23964ebf7bca030
* src/buildtools/third_party/libc++abi/trunk: 7e3b76855b..e5f25a39b9
* src/buildtools/win: git_revision:39a87c0b36310bdf06b692c098f199a0d97fc810..git_revision:695504d72a30e0b58705b2a1a23964ebf7bca030
* src/ios: 76fd3a66e2..54a3283c4d
* src/testing: 9ff56dc5b0..3d0002de69
* src/third_party: e7589e0105..00cd360e11
* src/third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/df0a59ab02..2f46970950
* src/third_party/depot_tools: 4bb3a7d00d..e5d455cca7
* src/third_party/freetype/src: 08f66322e3..7833e308ef
* src/third_party/googletest/src: 5bcd8e3bb9..aa533abfd4
* src/third_party/libaom/source/libaom: https://aomedia.googlesource.com/aom.git/+log/4d1ace0ad3..12287adee9
* src/third_party/libsrtp: 7990ca64c6..5b7c744eb8
* src/third_party/nasm: 19f3fad68d..e9be5fd6d7
* src/third_party/perfetto: b9f666ed45..adce539a59
* src/third_party/r8: b-pZFt8hs7xMMaJ7r94g-oiaVJSYzLOfpduSfYquzM4C..gXyBDv_fM87KnLcxvF5AGV5lwnm-JXIALYH8zrzdoaMC
* src/third_party/turbine: _iPtB_ThhxlMOt2TsYqVppwriEEn0mp-NUNRwDwYLUAC..Om6yIEXgJxuqghErK29h9RcMH6VaymMbxwScwXmcN6EC
* src/tools: 84ce063ff6..e9eaed516e
* src/tools/luci-go: git_revision:2cc9805d5ad186367461ef1c4f0c59098b450418..git_revision:2adc53281f4a72ecb71e84a8af5acc0fced04cc9
* src/tools/luci-go: git_revision:2cc9805d5ad186367461ef1c4f0c59098b450418..git_revision:2adc53281f4a72ecb71e84a8af5acc0fced04cc9
* src/tools/luci-go: git_revision:2cc9805d5ad186367461ef1c4f0c59098b450418..git_revision:2adc53281f4a72ecb71e84a8af5acc0fced04cc9
DEPS diff: d2f297f391..8907aace7e/DEPS

Clang version changed llvmorg-13-init-11649-g4d788fb8:llvmorg-13-init-12491-g055770d5
Details: d2f297f391..8907aace7e/tools/clang/scripts/update.py

TBR=chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com,
BUG=None

Change-Id: I5104ea2ece272a6ea9cabb343239c74ae7e4bbe5
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/221941
Reviewed-by: Autoroller <chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com>
Commit-Queue: Autoroller <chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#34272}
2021-06-11 15:53:50 +00:00
8d3396dabe In vp9 encoder fuzzer reduce information stored for older frames
Making a copy of that information takes noticable amount of time
causing fuzzer timeout for larger inputs, but that extra information
is not even used.

Bug: chromium:1217944
Change-Id: Icf9d43ae4b8feddda972daf3a4743fb73f7766d2
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/221962
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34271}
2021-06-11 15:46:00 +00:00
a63d152423 AEC3: Unbounded echo spectrum for dominant nearend detection.
The dominant nearend detector uses the residual echo spectrum for
determining whether in nearend state. The residual echo spectrum in
computed using the ERLE. To reduce the risk of echo leaks in the
suppressor, the ERLE is capped. While minimizing echo leaks, the
capping of the ERLE can affect the dominant nearend classification
negatively as the residual echo spectrum is often over estimated.

This change enables the dominant nearend detector to use a residual
echo spectrum computed with a virtually non-capped ERLE. This ERLE
is only used for dominant nearend detection and leads to increased
transparency.

The feature is currently disabled by default and can be enabled
with the field trial "WebRTC-Aec3UseUnboundedEchoSpectrum".

Bug: webrtc:12870
Change-Id: Icb675c6f5d42ab9286e623b5fb38424d5c9cbee4
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/221920
Reviewed-by: Jesus de Vicente Pena <devicentepena@webrtc.org>
Commit-Queue: Gustaf Ullberg <gustaf@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34270}
2021-06-11 13:30:00 +00:00
1b4807ff65 count webrtc pranswer usage
count webrtc pranswer usage for connected connections

BUG=chromium:1006079

Change-Id: I83b819f481d02ed2c71807aa10dd6fb12c8b4faf
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/221740
Reviewed-by: Johannes Kron <kron@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Philipp Hancke <philipp.hancke@googlemail.com>
Cr-Commit-Position: refs/heads/master@{#34269}
2021-06-11 12:59:37 +00:00
b22abbc11d Add kron as owner of api/uma_metrics.h
kron is an owner of UMA metrics for WebRTC in chromium,
see tools/metrics/histograms/histograms_xml/web_rtc/OWNERS

Bug: webrtc:12096
Change-Id: I9804d747fc4e52d2ed2a9d96cc4ed315639210da
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/221961
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Johannes Kron <kron@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34268}
2021-06-11 12:25:18 +00:00
ef4edafe8f Remove DEPS that was removed from chromium
https://crrev.com/c/2950009 removed third_party/turbine/src from DEPS. We should manually remove it to unblock chromium -> webrtc roll (https://ci.chromium.org/ui/p/webrtc/builders/cron/Auto-roll%20-%20WebRTC%20DEPS/14975/overview)

Bug: None
Change-Id: I60a47275983dc46a01d7c882daf5a890bc125571
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/221981
Commit-Queue: Andrey Logvin <landrey@webrtc.org>
Reviewed-by: Christoffer Jansson <jansson@google.com>
Cr-Commit-Position: refs/heads/master@{#34267}
2021-06-11 12:04:37 +00:00
ec6b655ba6 Break out pc/session_description build target (part 2)
Move the files.

Bug: webrtc:11967
Change-Id: Ib8c26e32248064ce6140bef79410e5a4a595d01e
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/221861
Reviewed-by: Niels Moller <nisse@webrtc.org>
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34266}
2021-06-11 06:49:57 +00:00
f5f7e8e806 Ensure that fps adaptation count can go back to zero when framerate is unrestricted.
Bug: webrtc:12867
Change-Id: I1c11d1a1154ea3d802cdc01e260f72a7e9d17e99
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/221373
Commit-Queue: Åsa Persson <asapersson@webrtc.org>
Reviewed-by: Evan Shrubsole <eshr@google.com>
Cr-Commit-Position: refs/heads/master@{#34265}
2021-06-10 16:00:39 +00:00
c63ae48871 Prepare for breakout of session_description.{h,cc}
External dependencies require "visibility = [ "*" ]"
to depend on the target.

Bug: webrtc:11967
Change-Id: I3df76e6c80380a8ab1f2bb6850a31a0d9065304b
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/221901
Reviewed-by: Niels Moller <nisse@webrtc.org>
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34264}
2021-06-10 13:20:32 +00:00
62ec0f6130 Add small cooldown to unsignalled ssrc stream creation.
This CL adds a cooldown of 0.5 seconds where if the WebRtcVideoChannel
created an unsignalled receive stream within that amount of time, if we
receive even more unknown ssrcs we simply drop those RTP packets.

This prevents getting into a state of spawning new decoders on every
single packet which could happen e.g. if PT based demuxing is enabled
and MIDs are missing from the packets.

Bug: webrtc:12815
Change-Id: Id7675fb0cbfbc72281dcfe030d1a35629df3eb9f
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/221520
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Henrik Boström <hbos@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34263}
2021-06-10 13:13:21 +00:00
ba7da8b9d2 Relax expectation in OveruseFrameDetectorTest2.ConvergesSlowly
Bug: webrtc:12846
Change-Id: I9238374c18c3cdbe79265e93cb23522d0454bb6e
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/221822
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34262}
2021-06-10 13:06:01 +00:00
9dea393f17 Move MID/JsepTransport mappings into a new manager object.
This is part of the work to make Bundle handling understandable,
so that we can get it to work right.

Bug: webrtc:12837
Change-Id: I77f046b4bac2d9709460b3b956a2edc3df0cdaac
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/221745
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34261}
2021-06-10 07:10:47 +00:00
64e3a36668 Update WebRTC code version (2021-06-10T04:05:52).
TBR=webrtc-version-updater@webrtc-ci.iam.gserviceaccount.com,mbonadei@webrtc.org

Bug: None
Change-Id: I59414deca69c95e6cfc0f1b58a0c36424bb500f1
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/221880
Reviewed-by: webrtc-version-updater@webrtc-ci.iam.gserviceaccount.com <webrtc-version-updater@webrtc-ci.iam.gserviceaccount.com>
Commit-Queue: webrtc-version-updater@webrtc-ci.iam.gserviceaccount.com <webrtc-version-updater@webrtc-ci.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#34260}
2021-06-10 05:09:17 +00:00
5e65dd5f25 Add MB configs for M1 bots
Bug: chromium:1155245
Change-Id: Id353dde5348a8792deb8b4040a15a69969f187f1
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/221825
Reviewed-by: Andrey Logvin <landrey@webrtc.org>
Reviewed-by: Tommi <tommi@webrtc.org>
Commit-Queue: Tommi <tommi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34259}
2021-06-09 19:02:28 +00:00
3cc68ec32e Report stats from ChannelReceive::GetAudioFrameWithInfo at 1Hz.
This is a change from the previous 100Hz frequency.
Also changing the  locks slightly in AcmReceiver so that grabbing the
neteq lock right after we've let it go, isn't necessary inside of
AcmReceiver::GetAudio and also to avoid grabbing the neteq lock while
holding the AcmReceiver lock.

Bug: webrtc:12868
Change-Id: If6ee35f3dca20eb5bdbc615123aa099ccecf57c5
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/221371
Commit-Queue: Tommi <tommi@webrtc.org>
Reviewed-by: Minyue Li <minyue@webrtc.org>
Reviewed-by: Henrik Lundin <henrik.lundin@webrtc.org>
Reviewed-by: Markus Handell <handellm@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34258}
2021-06-09 18:41:47 +00:00
e2e046452a Remove a couple of locks from ChannelReceive and add thread checks.
* Removes playing_lock_, sync_info_lock_ and video_sync_lock_.
* Also remove video_capture_thread_race_checker_ which was redundant.

Only video_sync_lock_ was actually needed. The other two aren't needed
anymore because of changes made to RtpStreamsSynchronizer class last
year (see webrtc:11489).

In the one case where we had a lock, we post a task to the thread
where the state is maintained. This task is for capturing histograms
which I'm not sure we should have been capturing on the audio thread
anyway.

Also making ChannelReceiveFrameTransformerDelegate compatible with more
tests by using TaskQueueBase instead of rtc::Thread. A number of tests
that instantiate ChannelReceive (and thereby CRFTD) set the worker
thread as a TQ and not actually an rtc::Thread instance. In those cases
CRFTD would previously have gotten a nullptr for the worker thread.

Bug: webrtc:11993
Change-Id: I59f4b2afbfedb06f241d9a613f8538adc19cd6d8
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/221364
Commit-Queue: Tommi <tommi@webrtc.org>
Reviewed-by: Henrik Lundin <henrik.lundin@webrtc.org>
Reviewed-by: Markus Handell <handellm@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34257}
2021-06-09 16:07:02 +00:00
b56a63e470 dcsctp: Prevent overflow of missing parameters
This was found when fuzzing. If the specified number of parameter count
was larger than std::numeric_limits<size_t>::max()/2, the comparison
would overflow and read out-of-bounds. This would only apply to 32-bit
platforms and it would lead to a crash as it would access all of the
virtual memory range, and more.

Fixed: chromium:1216758
Change-Id: I2193d3ed078120b6c3e4645c0b16b9f230055e8d
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/221742
Commit-Queue: Victor Boivie <boivie@webrtc.org>
Reviewed-by: Florent Castelli <orphis@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34256}
2021-06-09 14:12:53 +00:00
6eda26c550 Reland "Remove AudioReceiveStream::Reconfigure() method."
This reverts commit 8a18e5b3c954a3f9cc006c90356a3d850bcc352f.

Reason for revert: Removing the problematic DCHECK.

Original change's description:
> Revert "Remove AudioReceiveStream::Reconfigure() method."
>
> This reverts commit e2561e17e29e62c02731f1d214d7ee5ffdaeb941.
>
> Reason for revert: Speculative revert: breaks an downstream project
>
> Original change's description:
> > Remove AudioReceiveStream::Reconfigure() method.
> >
> > Instead, adding specific setters that are needed at runtime:
> > * SetDepacketizerToDecoderFrameTransformer
> > * SetDecoderMap
> > * SetUseTransportCcAndNackHistory
> >
> > The whole config struct is big and much of the state it holds, needs to
> > be considered const. For that reason the Reconfigure() method is too
> > broad of an interface since it overwrites the whole config struct
> > and doesn't actually handle all the potential config changes that might
> > occur when the config changes.
> >
> > Bug: webrtc:11993
> > Change-Id: Ia5311978f56b2e136781467e44f0d18039f0bb2d
> > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/221363
> > Reviewed-by: Niels Moller <nisse@webrtc.org>
> > Commit-Queue: Tommi <tommi@webrtc.org>
> > Cr-Commit-Position: refs/heads/master@{#34252}
>
> TBR=saza@webrtc.org,nisse@webrtc.org,tommi@webrtc.org,webrtc-scoped@luci-project-accounts.iam.gserviceaccount.com
>
> Change-Id: I15ca2d8ee5fd612e13dc1f4b3bfb9c885c21dc66
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Bug: webrtc:11993
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/221746
> Commit-Queue: Artem Titov <titovartem@webrtc.org>
> Reviewed-by: Andrey Logvin <landrey@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#34253}

# Not skipping CQ checks because this is a reland.

Bug: webrtc:11993
Change-Id: I0d3bf9abdcdc8d3f9259d014e6074a5e6b6cc73c
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/221747
Reviewed-by: Tommi <tommi@webrtc.org>
Reviewed-by: Artem Titov <titovartem@webrtc.org>
Reviewed-by: Andrey Logvin <landrey@webrtc.org>
Commit-Queue: Tommi <tommi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34255}
2021-06-09 13:26:15 +00:00
c0a95863bd Break out pc/session_description in its own build target (part 1)
As a side effect, break out pc/simulcast_description.

Step 1: Don't move the {h,cc} files; just declare the targets
so that downstream projects can add dependencies on it.

Bug: webtc:11967
Change-Id: Iad3d77513af418b664c1bef46070177ed24027fc
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/221603
Reviewed-by: Niels Moller <nisse@webrtc.org>
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34254}
2021-06-09 11:39:06 +00:00
8a18e5b3c9 Revert "Remove AudioReceiveStream::Reconfigure() method."
This reverts commit e2561e17e29e62c02731f1d214d7ee5ffdaeb941.

Reason for revert: Speculative revert: breaks an downstream project

Original change's description:
> Remove AudioReceiveStream::Reconfigure() method.
>
> Instead, adding specific setters that are needed at runtime:
> * SetDepacketizerToDecoderFrameTransformer
> * SetDecoderMap
> * SetUseTransportCcAndNackHistory
>
> The whole config struct is big and much of the state it holds, needs to
> be considered const. For that reason the Reconfigure() method is too
> broad of an interface since it overwrites the whole config struct
> and doesn't actually handle all the potential config changes that might
> occur when the config changes.
>
> Bug: webrtc:11993
> Change-Id: Ia5311978f56b2e136781467e44f0d18039f0bb2d
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/221363
> Reviewed-by: Niels Moller <nisse@webrtc.org>
> Commit-Queue: Tommi <tommi@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#34252}

TBR=saza@webrtc.org,nisse@webrtc.org,tommi@webrtc.org,webrtc-scoped@luci-project-accounts.iam.gserviceaccount.com

Change-Id: I15ca2d8ee5fd612e13dc1f4b3bfb9c885c21dc66
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:11993
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/221746
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Reviewed-by: Andrey Logvin <landrey@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34253}
2021-06-09 10:24:20 +00:00
e2561e17e2 Remove AudioReceiveStream::Reconfigure() method.
Instead, adding specific setters that are needed at runtime:
* SetDepacketizerToDecoderFrameTransformer
* SetDecoderMap
* SetUseTransportCcAndNackHistory

The whole config struct is big and much of the state it holds, needs to
be considered const. For that reason the Reconfigure() method is too
broad of an interface since it overwrites the whole config struct
and doesn't actually handle all the potential config changes that might
occur when the config changes.

Bug: webrtc:11993
Change-Id: Ia5311978f56b2e136781467e44f0d18039f0bb2d
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/221363
Reviewed-by: Niels Moller <nisse@webrtc.org>
Commit-Queue: Tommi <tommi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34252}
2021-06-09 09:39:30 +00:00
4ea80f35f1 Disable PT based demuxing if MID header extension is present.
We want to turn off PT based demux because SSRC-based endpoints that
send media prematurely (which is a popular non-standard behavior still
heavily in use) can otherwise get incorrect mappings and unsignalled
ssrc issues because of the PT demux path.

This CL disables PT based demuxing when the MID header extension is
present on all m= sections in the SDP for that kind (audio/video), not
caring if it was in the offer or answer. However if PT demuxing has been
used in the past then it is always allowed. This ensures PT is off by
default but that either offer or answer can enable PT and once it has
been on it is also possible to get early media with PT.

- Want PT-based demux? The MID header extension has to be removed in
  either the offer or the answer. Follow-up O/As allow PT demuxing if
  possible.
- Want to use MID or SSRC demuxing? Great, you don't need PT-based demux
  and won't mind that we turned it off for you.

The reason for disabling PT demux at offer time (if MID is present)
instead of waiting for the SDP answer is because by the time the SDP
answer arrives, early media could have triggered PT demux and caused
incorrect mappings. The safe thing is to assume a spec-compliant
endpoint until proven otherwise.

However if PT demux is ever enabled, then from that point on we always
allow PT-based demux in follow-up O/A exchanges. This ensures we don't
drop packets in follow-up exchanges. The fact that PT-based demux is
disabled during the initial offer should not matter because before the
initial O/A exchange we don't have fingerprints.

This change only affects Unified Plan and bundled groups. Existing test
coverage ensuring we do not break legacy endpoints:
[1] https://source.chromium.org/chromium/chromium/src/+/main:third_party/webrtc/pc/peer_connection_integrationtest.cc;l=1156
[2] https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/web_tests/external/wpt/webrtc/protocol/rtp-demuxing.html;l=59

UnsignaledStreamTest is also updated to test the interesting setups.
A kill-switch is added in case we want to disable this change.

Bug: webrtc:12814
Change-Id: I807a82a543325753633aaef698e06cb4c9dfebaa
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/221101
Commit-Queue: Henrik Boström <hbos@webrtc.org>
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34251}
2021-06-09 09:25:59 +00:00
33e75bb874 Roll chromium_revision 415567486a..d2f297f391 (890510:890623)
Change log: 415567486a..d2f297f391
Full diff: 415567486a..d2f297f391

Changed dependencies
* src/base: 94292e26b8..5b7059db9a
* src/build: 2367e0d9b9..921ea5898e
* src/buildtools: c793cca886..9d8449e380
* src/ios: dfc8f770ad..76fd3a66e2
* src/testing: 6f9b775a98..9ff56dc5b0
* src/third_party: a8c955adab..e7589e0105
* src/third_party/boringssl/src: https://boringssl.googlesource.com/boringssl.git/+log/3dd9864fea..7fffa4636c
* src/third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/859c953d28..df0a59ab02
* src/third_party/depot_tools: b9236628c6..4bb3a7d00d
* src/third_party/googletest/src: 53495a2a7d..5bcd8e3bb9
* src/third_party/perfetto: 853a6d0426..b9f666ed45
* src/tools: 58a1b6a76b..84ce063ff6
DEPS diff: 415567486a..d2f297f391/DEPS

No update to Clang.

TBR=chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com,
BUG=None

Change-Id: I51629340ddcf68155718dca7abeb7b1405c6cc89
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/221780
Reviewed-by: Autoroller <chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com>
Commit-Queue: Autoroller <chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#34250}
2021-06-09 06:36:14 +00:00
80d6669cf4 Roll chromium_revision 94153b0fd3..415567486a (890203:890510)
Change log: 94153b0fd3..415567486a
Full diff: 94153b0fd3..415567486a

Changed dependencies
* src/base: 5a68ea2e71..94292e26b8
* src/build: 867c91367b..2367e0d9b9
* src/ios: 4d744bfccd..dfc8f770ad
* src/testing: a62f8260df..6f9b775a98
* src/third_party: 9902a775a4..a8c955adab
* src/third_party/android_deps/libs/org_jetbrains_kotlin_kotlin_stdlib: version:2@1.4.32.cr0..version:2@1.5.10.cr0
* src/third_party/android_deps/libs/org_jetbrains_kotlin_kotlin_stdlib_common: version:2@1.4.32.cr0..version:2@1.5.10.cr0
* src/third_party/androidx: edF71ADEJsA1sqDrrY8PjDKnkcq2cl0b1QIqYCYBc7sC..X9QRQdySUF6AfnqQBWGClKiBkrEs0dsHy1AorJ0Ekt8C
* src/third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/d598390f02..859c953d28
* src/third_party/depot_tools: b508ecd932..b9236628c6
* src/third_party/freetype/src: 2a6665a4c0..08f66322e3
* src/third_party/perfetto: 5ca51f9111..853a6d0426
* src/third_party/r8: gXyBDv_fM87KnLcxvF5AGV5lwnm-JXIALYH8zrzdoaMC..b-pZFt8hs7xMMaJ7r94g-oiaVJSYzLOfpduSfYquzM4C
* src/tools: 09c4bddd98..58a1b6a76b
DEPS diff: 94153b0fd3..415567486a/DEPS

Clang version changed llvmorg-13-init-11999-g50c0aaed:llvmorg-13-init-11649-g4d788fb8
Details: 94153b0fd3..415567486a/tools/clang/scripts/update.py

TBR=chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com,
BUG=None

Change-Id: Ia3a80a9affa2c43d48eaa12211a547cf2484cac3
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/221682
Reviewed-by: Autoroller <chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com>
Commit-Queue: Autoroller <chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#34249}
2021-06-09 00:32:11 +00:00
58126f92bf Update the only 3 remaining kFilterBilinear to kFilterBox.
Bilinear is faster but lesser quality, box is best quality. Our code
base has disagreed about which filter to use for quite some time,
causing aliasing bug reports. In an effort to avoid aliasing artifacts
and make our scaling filters more predictable, we're updating all uses
to kFilterBox.

WebRTC already uses kFilterBox everywhere except for these three
places. The main discrepency was between Chromium and WebRTC but that
has already been fixed. This CL fixes the last remaining bilinears.

This brings the WebRTC kFilterBox use count up from 11 to 14 and the
kFilterBilinear use count down from 3 to 0.

Bug: chromium:1212630
Change-Id: I5fe4aa92b9275d65b91ea97925533055d190d317
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/221372
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Henrik Boström <hbos@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34248}
2021-06-08 13:19:23 +00:00
d9a135b088 Roll chromium_revision a72439959b..94153b0fd3 (889958:890203)
Change log: a72439959b..94153b0fd3
Full diff: a72439959b..94153b0fd3

Changed dependencies
* src/base: 3f16b04533..5a68ea2e71
* src/build: e3a96c8e5c..867c91367b
* src/ios: e5c25cbeaf..4d744bfccd
* src/testing: 447023e6cd..a62f8260df
* src/third_party: a749529524..9902a775a4
* src/third_party/androidx: SZh6kDBh5bVJm_ADaQfC6SaHIHPyAeMCYgYd3xRQsegC..edF71ADEJsA1sqDrrY8PjDKnkcq2cl0b1QIqYCYBc7sC
* src/third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/c8ae7ec534..d598390f02
* src/third_party/depot_tools: 730b974ee7..b508ecd932
* src/third_party/perfetto: 0856d6eecd..5ca51f9111
* src/tools: a5750d3a3e..09c4bddd98
DEPS diff: a72439959b..94153b0fd3/DEPS

No update to Clang.

TBR=chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com,
BUG=None

Change-Id: I5f7fa92ea4b02d19e133d02e99d701b5d008c022
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/221680
Reviewed-by: Autoroller <chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com>
Commit-Queue: Autoroller <chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#34247}
2021-06-08 12:39:13 +00:00
2aa24f1942 Move group-modifying functions into BundleManager
Bug: webrtc:12837
Change-Id: I886ec89427207e1dc291c9959f1b6113c97cbca3
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/221616
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34246}
2021-06-08 12:19:33 +00:00
9f9bf38805 Start refactoring bundle behavior into BundleManager
This is step 1: Encapsulating the data.

Bug: webrtc:12837
Change-Id: I15df30dc294c90136a90b072608ed4c2e8925dcb
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/221602
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34245}
2021-06-08 08:52:25 +00:00
2e1546887b Avoid generating a random id for candidate stats.
CandidateStats didn't use an initializer list which caused the
`candidate` member variable to be constructed with a random id
(calling an expensive rng method), only to be overwritten directly
thereafter.

Bug: webrtc:12840
Change-Id: I0366f674281d236896cb9539812dc2d88c1b37ef
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/221600
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Commit-Queue: Tommi <tommi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34244}
2021-06-08 08:00:01 +00:00
0fb949702b Update WebRTC code version (2021-06-08T04:04:02).
TBR=webrtc-version-updater@webrtc-ci.iam.gserviceaccount.com,mbonadei@webrtc.org

Bug: None
Change-Id: Idddcfd5a877bebe57ab9dfa56bddfb9c7acc31a3
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/221583
Reviewed-by: webrtc-version-updater@webrtc-ci.iam.gserviceaccount.com <webrtc-version-updater@webrtc-ci.iam.gserviceaccount.com>
Commit-Queue: webrtc-version-updater@webrtc-ci.iam.gserviceaccount.com <webrtc-version-updater@webrtc-ci.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#34243}
2021-06-08 05:43:09 +00:00
c6f2fef092 Roll chromium_revision 98040cdbe1..a72439959b (889744:889958)
Change log: 98040cdbe1..a72439959b
Full diff: 98040cdbe1..a72439959b

Changed dependencies
* src/base: 2f1ff63074..3f16b04533
* src/build: 5021a63bb8..e3a96c8e5c
* src/ios: 0f34c2d05e..e5c25cbeaf
* src/testing: a45949a818..447023e6cd
* src/third_party: 24ab3093b5..a749529524
* src/third_party/androidx: 8d-gGcc4KVhOnn2B-Od7eR421Q-sNZQ0U7dMrNz_VX4C..SZh6kDBh5bVJm_ADaQfC6SaHIHPyAeMCYgYd3xRQsegC
* src/third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/8bf7a0b3c8..c8ae7ec534
* src/third_party/depot_tools: a5b6b2f8b7..730b974ee7
* src/third_party/harfbuzz-ng/src: 7ab0f4eda9..4811e8f5d7
* src/third_party/perfetto: 468c71c71f..0856d6eecd
* src/tools: d92ea2e55e..a5750d3a3e
DEPS diff: 98040cdbe1..a72439959b/DEPS

No update to Clang.

TBR=chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com,
BUG=None

Change-Id: I6a0cf41fba1cb69f14aee93dd4df7c34e8383449
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/221620
Reviewed-by: Autoroller <chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com>
Commit-Queue: Autoroller <chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#34242}
2021-06-07 22:42:41 +00:00
da8a45fdaa AllocationSequence: migrate from rtc::Message to TaskQueue.
AllocationSequence uses legacy rtc::Thread message handling. In order
to cancel callbacks it uses rtc::Thread::Clear() which uses locks and
necessitates looping through all currently queued (unbounded) messages
in the thread. In particular, these Clear calls are common during
negotiation and the probability of having a lot of queued messages is
high due to a long-running network thread function invoked on the
network thread.

Fix this by migrating AllocationSequence to task queues.

Bug: webrtc:12840, webrtc:9702
Change-Id: I42bbdb59fb2c88b50e866326ba15134dcc6ce691
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/221369
Commit-Queue: Markus Handell <handellm@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34241}
2021-06-07 18:15:34 +00:00
dedcdfeba3 AllocationSequence: switch signal to callback.
Bug: webrtc:12840
Change-Id: Ic25ceb9a487b28575ab7530c54b13781ed404f7a
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/221367
Commit-Queue: Markus Handell <handellm@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34240}
2021-06-07 17:33:34 +00:00
fd89fc75cc BasicPortAllocatorSession: migrate to TaskQueue.
Removes dependence on rtc::Thread APIs from BPAS, which removes
the need to remove callbacks via rtc::Thread::Clear().

Bug: webrtc:12840
Change-Id: I0bcc1828c5ab38f521b583f52707174961f28e8a
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/221366
Commit-Queue: Markus Handell <handellm@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34239}
2021-06-07 16:40:54 +00:00
637a9eebd7 Roll chromium_revision 8d359ae542..98040cdbe1 (889625:889744)
Change log: 8d359ae542..98040cdbe1
Full diff: 8d359ae542..98040cdbe1

Changed dependencies
* src/base: 1b195da248..2f1ff63074
* src/build: e353b02625..5021a63bb8
* src/buildtools: eb65cc3594..c793cca886
* src/ios: e470857626..0f34c2d05e
* src/testing: 8dc98b062a..a45949a818
* src/third_party: 07fdd542df..24ab3093b5
* src/third_party/perfetto: 2d7bf1e435..468c71c71f
* src/tools: 0ccc146add..d92ea2e55e
DEPS diff: 8d359ae542..98040cdbe1/DEPS

No update to Clang.

TBR=chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com,
BUG=None

Change-Id: Ie16def31747095040cc66cd2f0e3e3e2bed8317b
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/221446
Reviewed-by: Autoroller <chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com>
Commit-Queue: Autoroller <chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#34238}
2021-06-07 14:48:41 +00:00
518669d6d4 Add more trace events to interesting places.
Bug: webrtc:12840
Change-Id: I57e5373ae33060bd3743cea8ada21c845cbbd944
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/221365
Commit-Queue: Markus Handell <handellm@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34237}
2021-06-07 13:43:07 +00:00
a94a4cc197 Roll chromium_revision 2951ce9ba1..8d359ae542 (889518:889625)
Change log: 2951ce9ba1..8d359ae542
Full diff: 2951ce9ba1..8d359ae542

Changed dependencies
* src/base: 47c75183d7..1b195da248
* src/build: 5f88cb3c2c..e353b02625
* src/ios: 76595faf30..e470857626
* src/testing: 0231deaeb8..8dc98b062a
* src/third_party: 672883196a..07fdd542df
* src/third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/84decbd7a4..8bf7a0b3c8
* src/third_party/depot_tools: 3ba11d965c..a5b6b2f8b7
* src/tools: 1e3438b50c..0ccc146add
DEPS diff: 2951ce9ba1..8d359ae542/DEPS

Clang version changed llvmorg-13-init-11649-g4d788fb8:llvmorg-13-init-11999-g50c0aaed
Details: 2951ce9ba1..8d359ae542/tools/clang/scripts/update.py

TBR=chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com,
BUG=None

Change-Id: I37495c771784dad3cf7c71a9a80fa937015a5033
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/221460
Reviewed-by: Autoroller <chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com>
Commit-Queue: Autoroller <chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#34236}
2021-06-06 22:42:28 +00:00
5032f54dd3 Update WebRTC code version (2021-06-06T04:02:33).
TBR=webrtc-version-updater@webrtc-ci.iam.gserviceaccount.com,mbonadei@webrtc.org

Bug: None
Change-Id: Iebd999259a109a0776f36b1cd49b4d3debd64260
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/221400
Reviewed-by: webrtc-version-updater@webrtc-ci.iam.gserviceaccount.com <webrtc-version-updater@webrtc-ci.iam.gserviceaccount.com>
Commit-Queue: webrtc-version-updater@webrtc-ci.iam.gserviceaccount.com <webrtc-version-updater@webrtc-ci.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#34235}
2021-06-06 05:17:07 +00:00
b60ebfeac9 Roll chromium_revision f54fe52cfb..2951ce9ba1 (889417:889518)
Change log: f54fe52cfb..2951ce9ba1
Full diff: f54fe52cfb..2951ce9ba1

Changed dependencies
* src/base: bc326ab4e8..47c75183d7
* src/ios: 180aa0046f..76595faf30
* src/testing: df91f460b6..0231deaeb8
* src/third_party: fb53793609..672883196a
* src/third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/b8eb01bccd..84decbd7a4
* src/third_party/depot_tools: 8b3bc259a0..3ba11d965c
* src/tools: bbe63f05b8..1e3438b50c
DEPS diff: f54fe52cfb..2951ce9ba1/DEPS

No update to Clang.

TBR=chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com,
BUG=None

Change-Id: I5415a126b567ed6ef06ee338486528c9c35a40c3
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/221347
Reviewed-by: Autoroller <chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com>
Commit-Queue: Autoroller <chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#34234}
2021-06-05 00:32:09 +00:00
b6d50e3a17 Handle encoder_ == nullptr in VideoStreamEncoder::EncodeVideoFrame.
This is to address a test failure seen on the msan bot(s).

Tbr: handellm@webrtc.org
Bug: webrtc:12857
Change-Id: I77cbe158e3d0aae62d4a4c0783d5ee6d74edcc22
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/221362
Reviewed-by: Tommi <tommi@webrtc.org>
Commit-Queue: Tommi <tommi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34233}
2021-06-04 21:06:36 +00:00
f277300ce5 Roll chromium_revision 44fa1f9723..f54fe52cfb (889277:889417)
Change log: 44fa1f9723..f54fe52cfb
Full diff: 44fa1f9723..f54fe52cfb

Changed dependencies
* src/base: ebd72f5c3a..bc326ab4e8
* src/ios: 3321bf9f5d..180aa0046f
* src/testing: f39abc2692..df91f460b6
* src/third_party: 3261a3665e..fb53793609
* src/third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/712eb08096..b8eb01bccd
* src/third_party/depot_tools: 8891092106..8b3bc259a0
* src/third_party/perfetto: 5874d918cf..2d7bf1e435
* src/tools: a761ddb116..bbe63f05b8
DEPS diff: 44fa1f9723..f54fe52cfb/DEPS

No update to Clang.

TBR=chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com,
BUG=None

Change-Id: If3540b1e191c7d58523f3900e7ca763c934012ae
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/221345
Reviewed-by: Autoroller <chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com>
Commit-Queue: Autoroller <chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#34232}
2021-06-04 20:41:16 +00:00
1a778a24ba Avoid using legacy rtp header parser in the rtp_to_text tool
Bug: None
Change-Id: I4c0ab1ba7730bdcdd826aa41b67b80a96d92c8f3
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/221204
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34231}
2021-06-04 16:41:23 +00:00
1b63db956f Move AV1X-AV1 mapping to VideoCodecTypeMime
AV1X->AV1 mapping added to SdpVideoFormatToVideoCodecInfo in
https://webrtc-review.googlesource.com/c/src/+/215586 results in
discrepancy of codec name between SDP and VideoCodecInfo. That violates
VideoCodecInfo design and breaks downstream projects.

This CL moves the mapping from VideoCodecInfoToSdpVideoFormat and
SdpVideoFormatToVideoCodecInfo to VideoCodecTypeMime.

Bug: b/181690054
Change-Id: I2a76524c29b082241f2ec72a60a209ce9b0c7c5f
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/221205
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Reviewed-by: Xavier Lepaul‎ <xalep@webrtc.org>
Commit-Queue: Sergey Silkin <ssilkin@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34230}
2021-06-04 15:38:48 +00:00
e34380a160 Roll chromium_revision b54a8c30e7..44fa1f9723 (889150:889277)
Change log: b54a8c30e7..44fa1f9723
Full diff: b54a8c30e7..44fa1f9723

Changed dependencies
* src/base: b006ae39d1..ebd72f5c3a
* src/build: bf4ecd926c..5f88cb3c2c
* src/ios: 5bd5c4f9b4..3321bf9f5d
* src/testing: 10cb761b19..f39abc2692
* src/third_party: d030bb4cd0..3261a3665e
* src/third_party/depot_tools: 9705687c25..8891092106
* src/third_party/perfetto: ae2171b89c..5874d918cf
* src/tools: 5617cf30e7..a761ddb116
* src/tools/luci-go: git_revision:c9957ed0ce0fd363aac127056344eba1b873bad0..git_revision:2cc9805d5ad186367461ef1c4f0c59098b450418
* src/tools/luci-go: git_revision:c9957ed0ce0fd363aac127056344eba1b873bad0..git_revision:2cc9805d5ad186367461ef1c4f0c59098b450418
* src/tools/luci-go: git_revision:c9957ed0ce0fd363aac127056344eba1b873bad0..git_revision:2cc9805d5ad186367461ef1c4f0c59098b450418
DEPS diff: b54a8c30e7..44fa1f9723/DEPS

No update to Clang.

TBR=chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com,
BUG=None

Change-Id: Ic4beb4c1f5fdf4d036dae8e0b2fd2bc79d9c2a53
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/221342
Reviewed-by: Autoroller <chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com>
Commit-Queue: Autoroller <chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#34229}
2021-06-04 15:03:17 +00:00
a334dc68f3 Make VideoSendStream::UpdateActiveSimulcastLayers not block.
UpdateActiveSimulcastLayers has been blocking
WebRtcVideoChannel::SetSend which may be called quite frequently during
negotiations. This CL changes UpdateActiveSimulcastLayers to not
synchronize with the transport's task queue to wait for the changes to
get applied.

This synchronization is quite costly, but so too are other remaining
things in VideoSendStream, so we should aim to get rid of the
`thread_sync_event_` in VideoSendStream.

Bug: webrtc:12840, webrtc:12854
Change-Id: Idb48d29b6b8382881c7c1e6f1d0f5e708dbca30f
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/221203
Commit-Queue: Tommi <tommi@webrtc.org>
Reviewed-by: Markus Handell <handellm@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34228}
2021-06-04 12:32:24 +00:00
d25af8ceac doc: document rtp payload type mapping behaviour
documents the various payload type mappers used by WebRTC.

BUG=webrtc:12194,webrtc:12295
No-try: true

Change-Id: I88e2388f54e72db5e5fe0f72fa4fe4c455c99679
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/220936
Commit-Queue: Philipp Hancke <phancke@nvidia.com>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34227}
2021-06-04 06:23:32 +00:00
bc8e17583a Roll chromium_revision a11573a242..b54a8c30e7 (888935:889150)
Change log: a11573a242..b54a8c30e7
Full diff: a11573a242..b54a8c30e7

Changed dependencies
* src/build: 2c4263f17a..bf4ecd926c
* src/buildtools: cd7b8c0c22..eb65cc3594
* src/ios: 583ff3aa05..5bd5c4f9b4
* src/testing: 140293d8d4..10cb761b19
* src/third_party: 7dd03bb83f..d030bb4cd0
* src/third_party/androidx: 5wEAJbMDQJnCxXbN6hMn66IR4akg1G25HQtc_8_7Vz0C..8d-gGcc4KVhOnn2B-Od7eR421Q-sNZQ0U7dMrNz_VX4C
* src/third_party/depot_tools: 85557a08f4..9705687c25
* src/third_party/icu: f022e298b4..a0718d4f12
* src/third_party/perfetto: d355130be3..ae2171b89c
* src/tools: 455291f3e9..5617cf30e7
DEPS diff: a11573a242..b54a8c30e7/DEPS

Clang version changed llvmorg-13-init-10392-gd3676d4b:llvmorg-13-init-11649-g4d788fb8
Details: a11573a242..b54a8c30e7/tools/clang/scripts/update.py

TBR=chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com,
BUG=None

Change-Id: Id1593e0a5d9bb5103d9d81f4ce9539d6566e7a24
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/221301
Reviewed-by: Autoroller <chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com>
Commit-Queue: Autoroller <chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#34226}
2021-06-04 05:23:36 +00:00
ffbfba979f Added PeerConnectionObserverJni::OnRemoveTrack()
Change-Id: I0880caa77a1097f56c560152e85c9ca29242f825

This PR add support for the `PeerConnectionObserverJni::OnRemoveTrack()`
event on Java, allowing to be notified when a remote track has been
removed. It's a very thing JNI wrapper on top of C++ API, being mostly
similar to other already available events like `track` and `addTrack`.

In Javascript API, tracks are not "removed" explicitly from the
PeerConnection, but instead receiver PeerConnection gets notified that
they have been removed from the streams they are associated to, and when
no `MediaStream` object has that track, it's considered that the track
has been removed from the PeerConnection. In Java and C++ APIs there's no
`MediaStreamObserver` class, so there's no way to listen to the
`removeTrack` event the same way happens in Javascript API, but instead
C++ API has a `removeTrack` event at PeerConnection level. This patchset
just only wraps and expose this `removeTrack` event from the C++ API to
the Java API.

This PR has been sponsored by Atos Research and Innovation
(https://atos.net/en/about-us/innovation-and-research).

Bug: webrtc:12850
Change-Id: I0880caa77a1097f56c560152e85c9ca29242f825
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/218847
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Xavier Lepaul‎ <xalep@webrtc.org>
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34225}
2021-06-03 19:24:55 +00:00
1050fbca91 Remove synchronization from VideoSendStream construction.
* Make VideoSendStream and VideoSendStreamImpl construction non-blocking.
* Move ownership of the rtp video sender to VideoSendStream.
* Most state is constructed in initializer lists.
* More state is now const (including VideoSendStreamImpl ptr)
* Adding thread checks to classes that appear to have had a race before
  E.g. RtpTransportControllerSend. The change in threading now actually
  fixes an issue we weren't aware of.
* Moved from using weak_ptr to safety flag and made some PostTask calls
  cancellable that could potentially have been problematic. Initalizing
  the flag without thread synchronization is also simpler.

This should speed up renegotiation significantly when there are
multiple channels. A follow-up change will improve SetSend as well
which is another costly step during renegotiation.

Bug: webrtc:12840
Change-Id: If4b28da5a085643ce132c7cfcf80a62cd1a625c5
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/221105
Commit-Queue: Tommi <tommi@webrtc.org>
Reviewed-by: Markus Handell <handellm@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34224}
2021-06-03 19:13:45 +00:00