Commit Graph

34319 Commits

Author SHA1 Message Date
d0b8879770 Delete AsyncSocket class, merge into Socket class
Bug: webrtc:13065
Change-Id: I13afee2386ea9c4de0e4fa95133f0c4d3ec826e8
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/227031
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34787}
2021-08-17 15:39:25 +00:00
45b3e530cb Improve webrtc fuzzer coverage of VP9 bitstream parser.
Bug: webrtc:12354
Change-Id: Ia8e2c7f68eb6c21d386eaf919960cb67a9db9285
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/229027
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Commit-Queue: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34786}
2021-08-17 13:41:04 +00:00
fb1959625d Allow setting different number of temporal layers per simulcast layer.
Setting different number of temporal layers is supported by SimulcastEncodeAdapter and LibvpxVp8Encoder will fallback to SimulcastEncoderAdapter if InitEncode fails.

Bug: none
Change-Id: I8a09ee1e6c70a0006317957c0802d019a0d28ca2
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/228642
Reviewed-by: Erik Språng <sprang@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Åsa Persson <asapersson@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34785}
2021-08-17 13:33:55 +00:00
29dddff209 usrsctp: Remove usage of usrsctp_getladdrs()
Using usrsctp_getladdrs() would sometimes be flagged by TSAN for a lock
order inversion. It was used to retrieve the "id" of the socket on the
transport.
The "id" is instead stored in the "ulp_info" parameter, which is
passed with each callback from usrsctp.

Bug: webrtc:12823
Change-Id: Ifb3d7780273a460e677526dd3a93f9365b29300c
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/229000
Commit-Queue: Florent Castelli <orphis@webrtc.org>
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34784}
2021-08-17 12:24:03 +00:00
24e79f6962 Add missing header (for unique_ptr).
Bug: None
Change-Id: I2ee004ac4feca9a0c25551fc1709069e8df836b4
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/229026
Reviewed-by: Per Åhgren <peah@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34783}
2021-08-17 12:19:01 +00:00
1fdafaeb21 Calculate bitrate and frame rate mismatches in video codec tests
Bug: webrtc:10812
Change-Id: I3408c0d7adefc37d088a5c6e10fce4f95aa1b668
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/228943
Commit-Queue: Sergey Silkin <ssilkin@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34782}
2021-08-17 10:33:08 +00:00
773a222667 red: enable opus-red by default
turning the current field trial into a killswitch.

Note that RED is not used by default since it is listed after opus in the SDP.
To enable RED for opus the setCodecPreferences can be used to change
the order of codecs.

BUG=webrtc:11640

Change-Id: I248f4340ca0a3f7c4ea6d6a41b566bc92ab6f19d
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/228426
Reviewed-by: Henrik Lundin <henrik.lundin@webrtc.org>
Reviewed-by: Per Åhgren <peah@webrtc.org>
Commit-Queue: Henrik Lundin <henrik.lundin@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34781}
2021-08-17 10:03:08 +00:00
d6da4c23cc Revert "Update remaining usage of VideoDecoder::InitDecode to Configure"
This reverts commit ca0a08ab600c8d7d00b94492122946ad837b1ef7.

Reason for revert: Breaks downstream project.

Original change's description:
> Update remaining usage of VideoDecoder::InitDecode to Configure
>
> Bug: webrtc:13045
> Change-Id: I5253fddfd613cf0228fc3cd861b91e56558dd34a
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/228947
> Reviewed-by: Erik Språng <sprang@webrtc.org>
> Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#34777}

TBR=danilchap@webrtc.org,sprang@webrtc.org,webrtc-scoped@luci-project-accounts.iam.gserviceaccount.com

Change-Id: I1868700a43b5aa4b37e9bcba5af233d24526c974
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:13045
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/229024
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34780}
2021-08-17 09:35:28 +00:00
5bf0bb3ed2 Enable WebRTC-UseStandardBytesStats in E2E tests by default.
Before this CL PeerConnectionE2EQualityTestSmokeTest was actually
overwriting this field trial:
[ RUN      ] PeerConnectionE2EQualityTestSmokeTest.Smoke
(field_trial.cc:140): Setting field trial string:WebRTC-UseStandardBytesStats/Enabled/
(field_trial.cc:140): Setting field trial string:
(network_emulation.cc:480): Created emulated endpoint 192.168.0.0 (); id=1
(network_emulation.cc:480): Created emulated endpoint 192.168.0.1 (); id=2
(field_trial.cc:140): Setting field trial string:WebRTC-FlexFEC-03-Advertised/Enabled/WebRTC-FlexFEC-03/Enabled/

After this CL it is instead used:
[ RUN      ] PeerConnectionE2EQualityTestSmokeTest.Smoke
(network_emulation.cc:480): Created emulated endpoint 192.168.0.0 (); id=1
(network_emulation.cc:480): Created emulated endpoint 192.168.0.1 (); id=2
(field_trial.cc:140): Setting field trial string:WebRTC-UseStandardBytesStats/Enabled/WebRTC-FlexFEC-03-Advertised/Enabled/WebRTC-FlexFEC-03/Enabled/

This CL also removes the non effective field trial override in
test/pc/e2e/peer_connection_e2e_smoke_test.cc which was unset as soon
as the variable was going out of scope.

Bug: b/186198412
Change-Id: I1698407e2c490a80c1f835cd591624446cf993fc
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/229023
Reviewed-by: Artem Titov <titovartem@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34779}
2021-08-17 09:22:57 +00:00
14ef6338b0 dcsctp: Don't send small packets when cwnd full
The congestion window is unlikely to be even divisible by the size
of a packet, so when the congestion window is almost full, there is
often just a few bytes remaining in it. Before this change, a small
packet was created to fill the remaining bytes in the congestion window,
to make it really full.

Small packets don't add much. The cost of sending a small packet is
often the same as sending a large one, and you usually get lower
throughput sending many small packets compared to few larger ones.'

This mode will only be enabled when the congestion window is large, so
if the congestion window is small - e.g. due to poor network conditions,
it will allow packets to become fragmented into small parts, in order to
fully utilize the congestion window.

Bug: webrtc:12943
Change-Id: I8522459174bc72df569edd57f5cc4a494a4b93a8
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/228526
Commit-Queue: Victor Boivie <boivie@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Florent Castelli <orphis@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34778}
2021-08-17 09:03:36 +00:00
ca0a08ab60 Update remaining usage of VideoDecoder::InitDecode to Configure
Bug: webrtc:13045
Change-Id: I5253fddfd613cf0228fc3cd861b91e56558dd34a
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/228947
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34777}
2021-08-17 08:48:30 +00:00
82c3a6f3a7 Extract frames comparator out from DVQA
Bug: b/196229820
Change-Id: Iaea04feadf0ed9cd734dd31e7ccca915fb7c585a
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/228645
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34776}
2021-08-17 08:40:28 +00:00
be9281b92b dcsctp: Increase cwnd by serialized chunk size
For symmetry, as the outstanding_bytes is increased/decreased by
the serialized chunk size (not just the payload) - which is compared
to the congestion window, the congestion window should be increased
by the serialized size of chunks acked - not just their payload.

Bug: webrtc:12943
Change-Id: I0a06033e8ca0d58433138df6442ca80494918cf2
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/228525
Commit-Queue: Victor Boivie <boivie@webrtc.org>
Reviewed-by: Florent Castelli <orphis@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34775}
2021-08-17 07:04:26 +00:00
a32495005d Update WebRTC code version (2021-08-17T04:05:32).
TBR=webrtc-version-updater@webrtc-ci.iam.gserviceaccount.com,mbonadei@webrtc.org

Bug: None
Change-Id: Ie8ce13a8d31a2aa7bcab363fcb9f177426c25c1f
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/229040
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@{#34774}
2021-08-17 05:28:56 +00:00
d912446f52 dcsctp: Refactor chunk acking
The same code was done for both acking chunks due to moving the
cum-ack-tsn and when acking gap-ack-blocks. Unify them completely
to have a single code path.

Bug: webrtc:12943
Change-Id: I3b864e41cc2ec674460517660c23b72a70edf720
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/228521
Reviewed-by: Florent Castelli <orphis@webrtc.org>
Commit-Queue: Victor Boivie <boivie@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34773}
2021-08-16 20:20:55 +00:00
abf6188cba dcsctp: Add PacketSender
This is mainly a refactoring commit, to break out packet sending to a
dedicated component.

Bug: webrtc:12943
Change-Id: I78f18933776518caf49737d3952bda97f19ef335
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/228565
Reviewed-by: Florent Castelli <orphis@webrtc.org>
Commit-Queue: Victor Boivie <boivie@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34772}
2021-08-16 20:19:53 +00:00
6b89130d45 Fix array_view nested namespace.
Bug: webrtc:13075
Change-Id: I4160966487b5a596ade78033081e8dc0a4e11c99
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/228944
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34771}
2021-08-16 14:38:57 +00:00
ac09f0dc92 Remove last traces of deferred sequencing.
Bug: webrtc:11340
Change-Id: I761be67d42959192355f9f6f54ed1f735da1fe96
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/228646
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Per Åhgren <peah@webrtc.org>
Commit-Queue: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34770}
2021-08-16 12:44:37 +00:00
ffce8e3ea0 Migrate android video decoder wrapper from InitDecode to Configure
Bug: webrtc:13045
Change-Id: Idb6d83d5cde659876ea3a106a85f177191f8074c
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/228941
Reviewed-by: Sergey Silkin <ssilkin@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34769}
2021-08-16 12:43:17 +00:00
600bb8c79f dcsctp: Migrating to using absl::bind_front
It is now allowed in WebRTC, so let's use it.

Bug: webrtc:12943
Change-Id: I74a0f2fd9c1b9e7b5613ae1c592cf26842b8dddd
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/228564
Commit-Queue: Victor Boivie <boivie@webrtc.org>
Reviewed-by: Florent Castelli <orphis@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34768}
2021-08-16 11:51:27 +00:00
8df32eb0e1 dcsctp: Add API to indicate packet send status
Before this change, there was no way for a client to indicate to the
dcSCTP library if a packet that was supposed to be sent, was actually
sent. It was assumed that it always was.

To handle temporary failures better, such as retrying to send packets
that failed to be sent when the send buffer was full, this information
is propagated to the library.

Note that this change only covers the API and adaptations to clients.
The actual implementation to make use of this information is done as a
follow-up change.

Bug: webrtc:12943
Change-Id: I8f9c62e17f1de1566fa6b0f13a57a3db9f4e7684
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/228563
Commit-Queue: Victor Boivie <boivie@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34767}
2021-08-16 11:29:47 +00:00
19214818d7 Fix some -Wunreachable-code-aggressive warnings
Bug: chromium:1066980
Change-Id: I24fea094f28577799c5fcbcf2e9657ffa9bfd076
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/228760
Reviewed-by: Jamie Walch <jamiewalch@chromium.org>
Reviewed-by: Tommi <tommi@webrtc.org>
Commit-Queue: Tommi <tommi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34766}
2021-08-16 11:09:16 +00:00
96106719a9 Drop support for PipeWire 0.2
We already default to PipeWire 0.3 and there is no reason to keep
continue supporting an old version of PipeWire which is not maintained
anymore, wont't get any update or new features. It also makes the code
easier to understand since we can remove all ifdefs we had to support
two versions simultaneously.

Bug: chromium:1146942
Change-Id: I7156e1784ebfad111485a2944199563568a75eec
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/227345
Reviewed-by: Tommi <tommi@webrtc.org>
Commit-Queue: Tommi <tommi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34765}
2021-08-16 09:54:27 +00:00
e1afe72aeb Roll chromium_revision 1d52d174cb..47dc8e2f50 (911982:912091)
Change log: 1d52d174cb..47dc8e2f50
Full diff: 1d52d174cb..47dc8e2f50

Changed dependencies
* src/base: 61ff3869c9..959457e3f3
* src/ios: 35bad7cc93..6a9bd7348f
* src/testing: 33834b4245..c0ea7c3386
* src/third_party: 7d67c07a43..56c558ed2e
* src/third_party/androidx: wapweqY3T9FEHpjaWRsHugloyn-WT9pGg45FvDUjXwUC..v5A41FDtUTUgWmjkgJS42X4yMcKx2zbPp8fWod32rhsC
* src/tools: 0e936433d9..b54abb9ed0
DEPS diff: 1d52d174cb..47dc8e2f50/DEPS

No update to Clang.

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

Change-Id: I365cef193e5e8b45ab5c1d05c5a0333eef529403
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/228861
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@{#34764}
2021-08-16 08:53:28 +00:00
c617c33948 Update WebRTC code version (2021-08-16T04:02:11).
TBR=webrtc-version-updater@webrtc-ci.iam.gserviceaccount.com,mbonadei@webrtc.org

Bug: None
Change-Id: I86f1920a97f17d4a918a786a502c02ec5be367ff
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/228880
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@{#34763}
2021-08-16 05:14:12 +00:00
750948bd00 Pass dSYM when creating XCFramework only if dSYM exists
Enabling bitcode doesn't seem to create a separate dSYM.
To make it work in this configuration, when creating an XCFramework,
pass dSYM only if it exists.

Bug: none
Change-Id: I6d95dc765accc10a70caeb88063d05eeea630dd1
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/228700
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34762}
2021-08-14 16:01:45 +00:00
ba0a306585 Move check for number_of_cores parameter validitity
from runtime check in proxy classes that picks decoder (VCMDecoderDataBase)
to a DCHECK in the VideoDecoder::Settings

Bug: None
Change-Id: Ic8c2e971486a3a7eb247f9d03815aba5ca5a7bad
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/228644
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34761}
2021-08-14 11:51:53 +00:00
10ee27e80f Roll chromium_revision d76e910d24..1d52d174cb (911810:911982)
Change log: d76e910d24..1d52d174cb
Full diff: d76e910d24..1d52d174cb

Changed dependencies
* src/base: 8c9fa2069d..61ff3869c9
* src/build: b5b4ab23e6..a0d51919fe
* src/ios: 0bbdc35ead..35bad7cc93
* src/testing: 0c11f1ee96..33834b4245
* src/third_party: c3ad412926..7d67c07a43
* src/third_party/android_build_tools/aapt2: aKJ5MrSRXjVPtBx2DoBnJtmmjO6W6PkQrTYuBtdu46YC..PHj2SHpCe6Sr9lcIR9W1onhKN4FIIPL2Mho5aAQG-QIC
* src/third_party/androidx: krtkAyAj_Vhfu3r0xami8YhOw7sbY3Zh_JEHbIchaFYC..wapweqY3T9FEHpjaWRsHugloyn-WT9pGg45FvDUjXwUC
* src/third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/bd47f22ad2..126f6a8996
* src/third_party/depot_tools: 699d70d878..0c42eff6d1
* src/third_party/googletest/src: 47f819c3ca..0134d73a49
* src/third_party/perfetto: 76f7830d7f..303b88cfe5
* src/tools: c0e6f12d59..0e936433d9
DEPS diff: d76e910d24..1d52d174cb/DEPS

No update to Clang.

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

Change-Id: Iddba866c96e75dc05c58c49a8e93863223262a12
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/228720
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@{#34760}
2021-08-14 08:32:43 +00:00
75f222827a Update WebRTC code version (2021-08-14T04:03:09).
TBR=webrtc-version-updater@webrtc-ci.iam.gserviceaccount.com,mbonadei@webrtc.org

Bug: None
Change-Id: Ida73a898739ea9f2c18677ffb33b4b120470f9bd
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/228684
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@{#34759}
2021-08-14 06:03:53 +00:00
a7d32e3dcb Roll chromium_revision cce6e710fd..d76e910d24 (911687:911810)
Change log: cce6e710fd..d76e910d24
Full diff: cce6e710fd..d76e910d24

Changed dependencies
* src/base: d6b10338ba..8c9fa2069d
* src/build: 3fdcec6e56..b5b4ab23e6
* src/buildtools: f063da141c..6810b870e0
* src/ios: 508797fd54..0bbdc35ead
* src/testing: c5ff879f92..0c11f1ee96
* src/third_party: b9f1426982..c3ad412926
* src/third_party/androidx: o74JoE-kByyfp7IZNkn3v09A4ryAISjuilobCBzv6PAC..krtkAyAj_Vhfu3r0xami8YhOw7sbY3Zh_JEHbIchaFYC
* src/third_party/breakpad/breakpad: bc7ddae234..b95c4868b1
* src/third_party/perfetto: e0c4d9b956..76f7830d7f
* src/tools: 69b0efcff6..c0e6f12d59
DEPS diff: cce6e710fd..d76e910d24/DEPS

No update to Clang.

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

Change-Id: I7e3e991a8d7660d4b7c185f2f5f691e393218bd5
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/228662
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@{#34758}
2021-08-13 18:17:20 +00:00
54abf984cc Remove the now unused non-deferred sequencing code path.
The config flag will be removed once downstream usage is gone.

Bug: webrtc:11340
Change-Id: Iee8816660009211540d9b09bb3cba514455d709b
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/228431
Commit-Queue: Erik Språng <sprang@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34757}
2021-08-13 17:17:49 +00:00
355b8d237c Use VideoDecoder::Configure interface when setting up decoder
Bug: webrtc:13045
Change-Id: I322ff91d96bab8bb7c40f4dea1c9c2b5c7631635
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/228420
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34756}
2021-08-13 16:03:32 +00:00
b6bbdeb24d Allow RTP module thread checking to know PacketRouter status.
Since https://webrtc-review.googlesource.com/c/src/+/228433 both audio
and video now only call Get/SetRtpState while not registered to the
packet router.

We can thus remove the lock around packet sequencer and just use a
thread checker.

Bug: webrtc:11340
Change-Id: Ie6865cc96c36208700c31a75747ff4dd992ce68d
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/228435
Commit-Queue: Erik Språng <sprang@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34755}
2021-08-13 15:04:49 +00:00
05a9e5abd3 Fix race in CallPerfTest.Bitrate_Kbps_PadsToMinTransmitBitrate
Task posted by OnSendRtp might be scheduled after `send_stream_` is
destroyed. Fix by using a PendingTaskSafetyFlag, killed from the
OnStreamsStopped callback.

Bug: webrtc:12726
Change-Id: I935917a3d80e82c3536261d72059448fb7aac00d
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/228643
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34754}
2021-08-13 13:22:49 +00:00
95f6e8bebb Relax video_codec parameter for RtpVideoStreamReceiver::AddReceiveCodec
Instead of requiring huge VideoCodec struct, pass single member from it

Bug: webrtc:13045
Change-Id: I1a4a48abd6c407cb9a878daafda5c8a85beff39e
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/228641
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34753}
2021-08-13 12:56:00 +00:00
b2745ba1f8 Condition frame pacing on min/max playout delay
As a first step we only want to enable frame pacing for the case
where min playout delay == 0 and max playout delay > 0.

Bug: chromium:1237402, chromium:1239469
Change-Id: Icf9641db7566083d0279135efa8618e435d881eb
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/228640
Commit-Queue: Johannes Kron <kron@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34752}
2021-08-13 10:52:19 +00:00
edfaaef086 Propagate socket write errors for DtlsTransport
The UDP sockets in WebRTC are non-blocking, and when writing too much
to them so that their send buffer becomes exhausted, they will return
EAGAIN or EWOULDBLOCK, which indicates that the client will need to
retry a bit later.

Media packets are generally sent by the pacer, which generally avoids
this exhaustion, but for SCTP which has a congestion control algorithm
quite similar to TCP, it may overshoot the amount of data it writes. If
the SCTP library can be notified when writing fails, it can stop writing
for a while until the socket recovers, which will result in less
overshooting and fewer lost packets (possibly even none). But for the
SCTP library to be able to know this, errors must be propagated, which
they weren't with the argument that packets may get lost anyway.

Bug: webrtc:12943
Change-Id: I9244580abf0d48ff810da30a23f995d12be623ed
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/228439
Reviewed-by: Tommi <tommi@webrtc.org>
Commit-Queue: Tommi <tommi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34751}
2021-08-13 10:30:29 +00:00
55a2f770a6 Roll chromium_revision fcc4764793..cce6e710fd (911577:911687)
Change log: fcc4764793..cce6e710fd
Full diff: fcc4764793..cce6e710fd

Changed dependencies
* src/base: d5da9fc322..d6b10338ba
* src/build: 4d07fd6ad5..3fdcec6e56
* src/buildtools: 37dc929ecb..f063da141c
* src/ios: 4ca2b0232a..508797fd54
* src/testing: 7a163851ec..c5ff879f92
* src/third_party: 755005b7cb..b9f1426982
* src/third_party/androidx: JO4WtrFSgv4hKbrR0kNn-c6rw1p6XQZuWfufbsEhuD4C..o74JoE-kByyfp7IZNkn3v09A4ryAISjuilobCBzv6PAC
* src/third_party/nasm: e9be5fd6d7..4e6fe9d154
* src/tools: 58a626d715..69b0efcff6
DEPS diff: fcc4764793..cce6e710fd/DEPS

No update to Clang.

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

Change-Id: I43c2adb51729ea159c2a30ed639ffd80da78710e
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/228628
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@{#34750}
2021-08-13 10:28:20 +00:00
722a8a6875 Tolerate more not completed measurements for CPD uploads
Recently CPD team rolled out upload completion token feature to all users. Pressure on the system increased. Now became more common situations when upload completed, but because of Datastore limitations we can't see confirmation of it for some measurements.

I've checked 6 recent failures. For all of them amount of timeout measurements were less than 3% (less than 15 in absolute numbers, the biggest percent of failures was for 80 measurements, 2 of which timed out).

Bug: b/182111579
Change-Id: Ia5af367870d1cf7d28b9422c4114c6b85c41f865
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/228562
Reviewed-by: Artem Titov <titovartem@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Andrey Logvin <landrey@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34749}
2021-08-13 10:21:29 +00:00
dcaf1e79c4 Update WebRTC code version (2021-08-13T04:05:09).
TBR=webrtc-version-updater@webrtc-ci.iam.gserviceaccount.com,mbonadei@webrtc.org

Bug: None
Change-Id: I253d5f78ca1afc88e3cb3296a5456ca49387d4be
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/228625
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@{#34748}
2021-08-13 05:46:54 +00:00
1a292b72cd Roll chromium_revision 8baabcff97..fcc4764793 (911441:911577)
Change log: 8baabcff97..fcc4764793
Full diff: 8baabcff97..fcc4764793

Changed dependencies
* src/base: cadc2eec1e..d5da9fc322
* src/buildtools/third_party/libc++abi/trunk: eed07007f8..671803fd96
* src/buildtools/third_party/libunwind/trunk: 7729bc9248..83f8edbca7
* src/ios: 4cbd2f26b1..4ca2b0232a
* src/testing: ebfd3cfb94..7a163851ec
* src/third_party: a6b4b34428..755005b7cb
* src/third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/3ef3f2c876..bd47f22ad2
* src/third_party/perfetto: 91a6d3a9b8..e0c4d9b956
* src/tools: 33a8d904de..58a626d715
DEPS diff: 8baabcff97..fcc4764793/DEPS

No update to Clang.

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

Change-Id: I1aa71ae35cf397cf60fb489d85e5cbc0832177c8
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/228621
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@{#34747}
2021-08-13 01:08:49 +00:00
04a9ce1e11 Roll chromium_revision ea375c193d..8baabcff97 (911333:911441)
Change log: ea375c193d..8baabcff97
Full diff: ea375c193d..8baabcff97

Changed dependencies
* src/base: c0e983f5db..cadc2eec1e
* src/build: 923d7f828a..4d07fd6ad5
* src/ios: af3143e15a..4cbd2f26b1
* src/testing: fd265d4809..ebfd3cfb94
* src/third_party: d1a75c47c8..a6b4b34428
* src/third_party/icu: 75e34bccce..a38aef9142
* src/tools: 2c3524bb30..33a8d904de
DEPS diff: ea375c193d..8baabcff97/DEPS

No update to Clang.

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

Change-Id: I4276361915bf71d54776e6a21d2232b2d8f9a0d9
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/228600
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@{#34746}
2021-08-12 20:36:12 +00:00
0c2a9caf8f fix some typos
BUG=None

Change-Id: If793268a5773dfab6a40bbd4ffa760f3d4cb5a46
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/228428
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34745}
2021-08-12 18:37:10 +00:00
e0fb45c6d4 dcsctp: Add burst limiter for sent packets
Some deployments, e.g. Chromium, has a limited send buffer. It's
reasonable that it's quite small, as it avoids queuing too much, which
typically results in increased latency for real-time communication. To
avoid SCTP to fill up the entire buffer at once - especially when doing
fast retransmissions - limit the amount of packets that are sent in one
go.

In a typical scenario, SCTP will not send more than three packets for
each incoming packet, which is is the case when a SACK is received which
has acknowledged two large packets, and which also adds the MTU to the
congestion window (due to in slow-start mode), which then may result in
sending three packets. So setting this value to four makes any
retransmission not use that much more of the send buffer.

This is analogous to usrsctp_sysctl_set_sctp_fr_max_burst_default in
usrsctp, which also has the default value of four (4).

Bug: webrtc:12943
Change-Id: Iff76a1668beadc8776fab10312ef9ee26f24e442
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/228480
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Victor Boivie <boivie@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34744}
2021-08-12 17:22:55 +00:00
a9e7f719a9 Roll chromium_revision 3857505ab0..ea375c193d (911218:911333)
Change log: 3857505ab0..ea375c193d
Full diff: 3857505ab0..ea375c193d

Changed dependencies
* src/base: 92386f1e2e..c0e983f5db
* src/ios: a5cdce730f..af3143e15a
* src/testing: 186477c3e1..fd265d4809
* src/third_party: 7d4e6c863f..d1a75c47c8
* src/third_party/android_build_tools/aapt2: R2k5wwOlIaS6sjv2TIyHotiPJod-6KqnZO8NH-KFK8sC..aKJ5MrSRXjVPtBx2DoBnJtmmjO6W6PkQrTYuBtdu46YC
* src/third_party/androidx: zIoBx2j1PxzEKWCcYBQWLEu66f7usW-CNUQOr1ErmJ4C..JO4WtrFSgv4hKbrR0kNn-c6rw1p6XQZuWfufbsEhuD4C
* src/third_party/depot_tools: 4b973b6e6e..699d70d878
* src/third_party/perfetto: b34dc62800..91a6d3a9b8
* src/tools: b801bdfdc3..2c3524bb30
DEPS diff: 3857505ab0..ea375c193d/DEPS

No update to Clang.

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

Change-Id: Iaf596d148f310eaeacf688026154a875cba2c286
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/228475
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@{#34743}
2021-08-12 17:16:25 +00:00
d08930d5fb Migrate test VideoDecoders to new VideoDecoder::Configure
Bug: webrtc:13045
Change-Id: I3b66270de59b441bf8b92bc10f67f59f05e9995e
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/228436
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34742}
2021-08-12 15:41:03 +00:00
40f7a5bab0 Extract CPU measurer from DVQA
Bug: b/196229820
Change-Id: I1f8f21ea5864f9ba98365e4699572fabd8cb1ece
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/228560
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34741}
2021-08-12 15:28:44 +00:00
da6a9d58f8 Use GTEST_SKIP() instead of early return.
The issue for iOS platforms was fixed by crrev.com/c/2505276.

Bug: webrtc:13057
Change-Id: I0f01c1291184f4c7960db746951255961a962303
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/228520
Reviewed-by: Niels Moller <nisse@webrtc.org>
Reviewed-by: Alessio Bazzica <alessiob@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34740}
2021-08-12 15:24:13 +00:00
aa918e0111 Delete always-true BasicPortAllocatorSession::AddAllocatedPort argument
This is a private method, and the `prepare_address` argument was
constant true at all call sites.

Bug: None
Change-Id: Id4714ee7c154a729a6e106c29895fc760e9d0455
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/228527
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34739}
2021-08-12 15:21:13 +00:00
69dd142797 Register audio send stream in packet router on Start().
Currently, the RtpRtcp module of AudioSendStream is (de)registered in
the packet router on calls to
(Register|Reset)SenderCongestionControlObjects.
This CL changes that to happen on Start/Stop instead, which allows us
to safely call (Get|Set)RtpState on suspend/resume without the need
for extra locking in the rtp module.

See also https://webrtc-review.googlesource.com/c/src/+/228430

Bug: webrtc:11340
Change-Id: I54243a9ace8a7659924269418468b49b967b9465
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/228433
Reviewed-by: Per Åhgren <peah@webrtc.org>
Commit-Queue: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34738}
2021-08-12 15:15:53 +00:00