Commit Graph

37788 Commits

Author SHA1 Message Date
f2fe43b655 Don't round the computed time deltas to nearest ms.
Resolving https://bugs.chromium.org/p/webrtc/issues/detail?id=14023

At the moment, in DelayBasedBwe the time deltas are rounded to the
nearest millisecond. This change makes sure the numbers are passed as
doubles as expected by the TrendlineEstimator.

Change-Id: I68882547fb19af0e67e7b5d8de4159083a54d7eb
Bug: webrtc:14023
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/261320
Reviewed-by: Per Kjellander <perkj@webrtc.org>
Commit-Queue: Per Kjellander <perkj@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36806}
2022-05-09 07:02:46 +00:00
624340b32f Add test for StringFormat and string_view
Bug: none
Change-Id: Ibc366dc30f0fc8ef098e66b8ffd982c0046db6d2
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/261449
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Auto-Submit: Tomas Gunnarsson <tommi@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36805}
2022-05-08 09:13:53 +00:00
89e017dd72 Update WebRTC code version (2022-05-07T04:01:40).
Bug: None
Change-Id: I5332e8a36c357feedcfe2aa7630f85429e43ed18
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/261442
Commit-Queue: webrtc-version-updater@webrtc-ci.iam.gserviceaccount.com <webrtc-version-updater@webrtc-ci.iam.gserviceaccount.com>
Bot-Commit: webrtc-version-updater@webrtc-ci.iam.gserviceaccount.com <webrtc-version-updater@webrtc-ci.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/main@{#36804}
2022-05-07 06:30:52 +00:00
bbeea47079 Roll chromium_revision 1540b3391d..ebe8237c89 (1000453:1000623)
Change log: 1540b3391d..ebe8237c89
Full diff: 1540b3391d..ebe8237c89

Changed dependencies
* src/base: 74bbf349e1..9f52d32434
* src/build: 129f40a5db..3606e28a7f
* src/ios: 27d8f3ab25..1eefcbc806
* src/testing: 1a91b3f90b..3f9bf49584
* src/third_party: 28277a11e5..4c74bc30e6
* src/third_party/boringssl/src: https://boringssl.googlesource.com/boringssl.git/+log/6686352e49..735a86834c
* src/third_party/libaom/source/libaom: https://aomedia.googlesource.com/aom.git/+log/7977bb492a..7e338ea0a3
* src/third_party/perfetto: 7f0cb753aa..a82f6c1e87
* src/tools: 3605a93788..e0e931ea61
DEPS diff: 1540b3391d..ebe8237c89/DEPS

No update to Clang.

BUG=None

Change-Id: I0e4726282be0beb3a9d087f85ae8c400869f404a
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/261421
Commit-Queue: Autoroller <chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com>
Bot-Commit: Autoroller <chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/main@{#36803}
2022-05-07 00:56:32 +00:00
c5b8c8f36b Fix failing WGC tests on Win10
Several tests starting failing when run on trybots on Win10. This CL
fixes several issues that were uncovered.

Issue 1:
Capture failed to start because `get_Size` returned {0, 0}. This is a
known issue in the WGC API that occurs when there are multiple user
sessions on the same machine.
Solution:
Add a `GetSize` method to the `WgcCaptureSource` interface so we can
fallback to other methods if `get_Size` fails.

Issue 2:
The screen capture tests assume there will be displays attached and
fail if there aren't.
Solution:
Always run `IsWgcSupported` for the appropriate capture type.

Issue 3:
ASAN container-overflow in `GetTestWindowIdFromSourceList`
Solution:
Check the validity of the iterator before dereferencing.

Issue 4:
Occasionally, the call to `GetMessage` in the `CloseWindowMidCapture`
test would hang because there were no messages in the queue.
Solution:
Use `PeekMessage` instead which will return if there are no messages.

Bug: webrtc:14002
Change-Id: I69b2f765db87d34a41d6a1796cd5a81f4029be33
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/260202
Reviewed-by: Alexander Cooper <alcooper@chromium.org>
Commit-Queue: Austin Orion <auorion@microsoft.com>
Cr-Commit-Position: refs/heads/main@{#36802}
2022-05-06 23:46:42 +00:00
c48ad732d6 Don't create channel_manager when media_engine is not set
Also remove a bunch of functions in ChannelManager that were just
forwarding to MediaEngineInterface.

Bug: webrtc:13931
Change-Id: Ia38591fd22c665cace16d032f5c1e384e413cded
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/261304
Reviewed-by: Tomas Gunnarsson <tommi@webrtc.org>
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36801}
2022-05-06 22:48:22 +00:00
3387a7fdb8 Roll chromium_revision de59fcd05d..1540b3391d (1000326:1000453)
Change log: de59fcd05d..1540b3391d
Full diff: de59fcd05d..1540b3391d

Changed dependencies
* src/base: a925d69575..74bbf349e1
* src/ios: 561848d5da..27d8f3ab25
* src/testing: f4978188ef..1a91b3f90b
* src/third_party: aed1adbd66..28277a11e5
* src/third_party/androidx: 5LpwRnpUYpJRI7AwY-7-zUPDxVKRadX09h5M0UqHRgcC..XbPCfKKY9DjXFa-jD5pUowbW3cSXD9-8PDJ_f_MbbEoC
* src/third_party/perfetto: 4df14f2d7e..7f0cb753aa
* src/tools: 42d9dbfe1a..3605a93788
DEPS diff: de59fcd05d..1540b3391d/DEPS

Clang version changed llvmorg-15-init-9074-gc62b014d:llvmorg-15-init-9576-g75f9e83a
Details: de59fcd05d..1540b3391d/tools/clang/scripts/update.py

BUG=None

Change-Id: I448723a777945b34539b0370670916c29a02a27e
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/261384
Commit-Queue: Autoroller <chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com>
Bot-Commit: Autoroller <chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/main@{#36800}
2022-05-06 19:56:52 +00:00
8f04c7cc5a sctp: Handle concurrent data channel reset in transport
The state machine for handling resets couldn't handle resets
happening from both sides at the same time.

Bug: webrtc:13994
Change-Id: I2c268e54f4c5c9858913faef91ff00f6af956e99
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/261305
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Florent Castelli <orphis@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36799}
2022-05-06 14:38:17 +00:00
489e9bd49c Roll chromium_revision 5727c6ea30..de59fcd05d (1000211:1000326)
Change log: 5727c6ea30..de59fcd05d
Full diff: 5727c6ea30..de59fcd05d

Changed dependencies
* src/base: 2e965a3958..a925d69575
* src/build: a1147fb865..129f40a5db
* src/ios: a3cc6c672d..561848d5da
* src/testing: c14c7c14ac..f4978188ef
* src/third_party: 58db3b7560..aed1adbd66
* src/third_party/androidx: BD7Jn9dUNGfL-fZrWigOxcOUjvTM0VYHEwPUf9Y0LOsC..5LpwRnpUYpJRI7AwY-7-zUPDxVKRadX09h5M0UqHRgcC
* src/third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/7979ffe022..778ecbcb2a
* src/third_party/depot_tools: b9dca865af..6a1494e5d7
* src/tools: 33c512aee9..42d9dbfe1a
DEPS diff: 5727c6ea30..de59fcd05d/DEPS

No update to Clang.

BUG=None

Change-Id: I04f7aa73139ac1d990033d53564a80718e8690fb
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/261401
Commit-Queue: Autoroller <chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com>
Bot-Commit: Autoroller <chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/main@{#36798}
2022-05-06 12:53:08 +00:00
8c72cc1634 dcsctp: Handle in-progress stream sequence numbers
When an outgoing stream reset is sent, with sequence number A, and the
receiver can't perform it immediately, it will return IN_PROGRESS with
response sequence number A.

This is then retried with sequence number A+1, and the peer would then
possibly respond PERFORMED with response sequence number A+1.

Before this CL, whenever a request was sent that didn't immediately
succeed, it wouldn't increment its expected response sequence number.
So in the retry above, the socket would still expect the response
sequence number to stay at A, not at A+1.

Bug: webrtc:13994
Change-Id: I6f36d45229a7fb312e97ad15826e0377f4efb64f
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/261310
Reviewed-by: Florent Castelli <orphis@webrtc.org>
Commit-Queue: Victor Boivie <boivie@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36797}
2022-05-06 12:20:42 +00:00
5a71f15858 Run iOS tests on multiple shards.
Bug: b/230824012
Change-Id: I6d27a8ed2c07eb76972b3bbe3679f6346ba58e06
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/261306
Reviewed-by: Christoffer Jansson <jansson@webrtc.org>
Commit-Queue: Jeremy Leconte <jleconte@google.com>
Cr-Commit-Position: refs/heads/main@{#36796}
2022-05-06 09:55:41 +00:00
2445602bdf Revert "Migrate iOS simulator tests to Mac-12 machines."
This reverts commit 3466511ee1bb29f34851e497d7734f47cd078918.

Reason for revert: Pending time can be very long when the test are running at the same time as this builder:
https://luci-milo.appspot.com/p/chromium/builders/ci/ios15-beta-simulator

Original change's description:
> Migrate iOS simulator tests to Mac-12 machines.
>
> Bug: b/227442116
> Change-Id: I7b5157a735596616f9785391c40b8f26974c222d
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/260985
> Reviewed-by: Christoffer Jansson <jansson@webrtc.org>
> Commit-Queue: Jeremy Leconte <jleconte@google.com>
> Cr-Commit-Position: refs/heads/main@{#36751}

Bug: b/227442116
Change-Id: I87f27b36db7aa4c6d9d6982a5e86d56648a709e8
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/261307
Bot-Commit: rubber-stamper@appspot.gserviceaccount.com <rubber-stamper@appspot.gserviceaccount.com>
Reviewed-by: Christoffer Jansson <jansson@webrtc.org>
Commit-Queue: Jeremy Leconte <jleconte@google.com>
Cr-Commit-Position: refs/heads/main@{#36795}
2022-05-06 09:38:34 +00:00
536f587b98 Revert "Calculate video stream max bitrate using expression."
This reverts commit 45361f78ed18c350b3edcaef19ae4c7cf167e95b.

Reason for revert: Perf alerts galore.

Original change's description:
> Calculate video stream max bitrate using expression.
>
> This replaces the ealier table-based caps.
> Apart from the VGA cap (now 1600kbps instead of 1700kbps), or if using
> "in between" resolutions, the caps are unchanged - but now cover high
> resolutions better.
>
> Bug: webrtc:14017
> Change-Id: I8649b528495d6c917e38ea8cb1a272df6c464c03
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/260940
> Commit-Queue: Erik Språng <sprang@webrtc.org>
> Reviewed-by: Per Kjellander <perkj@webrtc.org>
> Cr-Commit-Position: refs/heads/main@{#36776}

Bug: webrtc:14017
Change-Id: I18ebc81c6054713c58d49bd227e37090686958c9
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/261309
Reviewed-by: Per Kjellander <perkj@webrtc.org>
Auto-Submit: Erik Språng <sprang@webrtc.org>
Commit-Queue: Per Kjellander <perkj@webrtc.org>
Bot-Commit: rubber-stamper@appspot.gserviceaccount.com <rubber-stamper@appspot.gserviceaccount.com>
Cr-Commit-Position: refs/heads/main@{#36794}
2022-05-06 09:37:32 +00:00
7f969c0eff Ensure that an RTP audio level of 127 represents digital silence.
To quote rfc6464:
  The audio level for digital silence -- for a muted audio source, for
  example -- MUST be represented as 127 (-127 dBov), regardless of the
  dynamic range of the encoded audio format.

The behavior in webrtc is correct that digital silence is represented
with 127, but it is also possible to get a value of 127 for not quite
digitally silent audio buffer (as in, not strictly 0s).

Bug: webrtc:14029
Change-Id: I7ff8698a7e4d5c0960c667fd1cc961838e269456
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/261244
Commit-Queue: Tomas Gunnarsson <tommi@webrtc.org>
Reviewed-by: Per Åhgren <peah@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36793}
2022-05-06 07:56:39 +00:00
3b0481389f Update SupportsScalabilityMode functions to use enum ScalabilityMode.
And add missing values to ScalabilityMode.

Bug: webrtc:11607
Change-Id: I892ac35a3528db11b0901d26902699ecfe8f49a4
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/260982
Commit-Queue: Niels Moller <nisse@webrtc.org>
Reviewed-by: Åsa Persson <asapersson@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36792}
2022-05-06 07:29:20 +00:00
09a92ff3de Update WebRTC code version (2022-05-06T04:02:20).
Bug: None
Change-Id: I78653dd5b5c88eb310635e315c08878f5c693a3d
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/261380
Commit-Queue: webrtc-version-updater@webrtc-ci.iam.gserviceaccount.com <webrtc-version-updater@webrtc-ci.iam.gserviceaccount.com>
Bot-Commit: webrtc-version-updater@webrtc-ci.iam.gserviceaccount.com <webrtc-version-updater@webrtc-ci.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/main@{#36791}
2022-05-06 05:42:30 +00:00
cf7beafe3b Roll chromium_revision 14466a6cea..5727c6ea30 (1000108:1000211)
Change log: 14466a6cea..5727c6ea30
Full diff: 14466a6cea..5727c6ea30

Changed dependencies
* src/base: 716aeb0bb1..2e965a3958
* src/build: 244112fb6b..a1147fb865
* src/buildtools/third_party/libc++abi/trunk: ce96725bdd..fb82ddb71c
* src/ios: 8f039a1cf7..a3cc6c672d
* src/testing: ceb84d9af4..c14c7c14ac
* src/third_party: bf08fd274f..58db3b7560
* src/third_party/androidx: zp3RnPK3_VmfYGulKhpKF2BDqASl8O2ytuTOj5AaRWIC..BD7Jn9dUNGfL-fZrWigOxcOUjvTM0VYHEwPUf9Y0LOsC
* src/tools: fbc926c8fc..33c512aee9
DEPS diff: 14466a6cea..5727c6ea30/DEPS

No update to Clang.

BUG=None

Change-Id: Idd67e62a2813e0067febab2c47aecb9c0611b2ce
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/261343
Commit-Queue: Autoroller <chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com>
Bot-Commit: Autoroller <chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/main@{#36790}
2022-05-06 02:42:30 +00:00
482e7ddc5c Roll chromium_revision 798c112e6f..14466a6cea (999977:1000108)
Change log: 798c112e6f..14466a6cea
Full diff: 798c112e6f..14466a6cea

Changed dependencies
* src/base: 35a1dcf300..716aeb0bb1
* src/build: d59764ea23..244112fb6b
* src/ios: 39c5797451..8f039a1cf7
* src/testing: 4ce8742a75..ceb84d9af4
* src/third_party: a07a20bc66..bf08fd274f
* src/third_party/androidx: nWvCs11JIQtG7q6R1Vb1ySaYovfUvDCJnkXNXEsu9-0C..zp3RnPK3_VmfYGulKhpKF2BDqASl8O2ytuTOj5AaRWIC
* src/third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/81c0ef0a06..7979ffe022
* src/third_party/perfetto: 2308bab3ae..4df14f2d7e
* src/tools: 13aa4beece..fbc926c8fc
DEPS diff: 798c112e6f..14466a6cea/DEPS

No update to Clang.

BUG=None

Change-Id: Ib8d9175fc466766d9cb68a1a7cf31ea28002a0f6
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/261361
Commit-Queue: Autoroller <chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com>
Bot-Commit: Autoroller <chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/main@{#36789}
2022-05-05 23:00:48 +00:00
762d0d0d4c Roll chromium_revision 008a85e4d5..798c112e6f (999873:999977)
Change log: 008a85e4d5..798c112e6f
Full diff: 008a85e4d5..798c112e6f

Changed dependencies
* src/base: cacad6ddfb..35a1dcf300
* src/build: 646c741add..d59764ea23
* src/ios: f9f2cdf80e..39c5797451
* src/testing: fe2c48dd06..4ce8742a75
* src/third_party: ff101bab45..a07a20bc66
* src/third_party/perfetto: 56b37e5983..2308bab3ae
* src/tools: d2061add29..13aa4beece
DEPS diff: 008a85e4d5..798c112e6f/DEPS

No update to Clang.

BUG=None

Change-Id: I2c4cd6d9232d2fa3778e411454b844a2681ae624
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/261360
Bot-Commit: 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/main@{#36788}
2022-05-05 18:51:38 +00:00
6d0d844d1f Add CFI-ICALL to avoid crash in PipeWire functions
We already use RTC_NO_SANITIZE("cfi-icall") for most of the code and
it looks this one can be triggered recently with pw_loop_signal_event()
call.

Bug: webrtc:13659
Change-Id: I4dbb88f32de861e05be18254640db90b0f58c5e5
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/261300
Reviewed-by: Mark Foltz <mfoltz@chromium.org>
Reviewed-by: Alexander Cooper <alcooper@chromium.org>
Commit-Queue: Mark Foltz <mfoltz@chromium.org>
Cr-Commit-Position: refs/heads/main@{#36787}
2022-05-05 18:15:08 +00:00
662d7f11d5 Fixes to support building in -std=c++20 mode.
* Structs with user-declared constructors are no longer considered
  aggregates, so remove the declarations when possible
* Types of both arguments to "==" must match to avoid "ambiguous
  function call" warning
* Various types of math involving enums are deprecated, so replace with
  constexprs where necessary
* ABSL_CONST_INIT must be used on definition as well as declaration
* volatile memory may no longer be read from and written to by the same
  operator, so replace e.g. "n++" with "n = n + 1"
* Replace an outdated check for no_unique_address support with
  __has_cpp_attribute
* std::result_of(f(x)) has been removed, replace with
  std::invoke_result(f, x)

Bug: chromium:1284275
Change-Id: I77b366ab1da7eb2c1e4c825b2714417c31ee5903
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/261221
Auto-Submit: Peter Kasting <pkasting@chromium.org>
Reviewed-by: Tomas Gunnarsson <tommi@google.com>
Reviewed-by: Tomas Gunnarsson <tommi@webrtc.org>
Commit-Queue: Tomas Gunnarsson <tommi@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36786}
2022-05-05 17:15:58 +00:00
95897aea2f Run peerconnection_unittests on multiple shards.
The shards were removed with https://webrtc-review.googlesource.com/c/src/+/261262 as an experiment.

It turns out the new test target slow_peer_connection_unittests doesn't take much time compared to peerconnection_unittests.
slow_peer_connection_unittests: 7min
peerconnection_unittests: 35min
https://chromium-swarm.appspot.com/tasklist?f=parent_task_id-tag%3A5aad344b2285be11&st=1651756987488

Bug: webrtc:14025
Change-Id: Iaaf2b476ea6fdc419c5b14beb8040c5a0d973952
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/261264
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Jeremy Leconte <jleconte@google.com>
Cr-Commit-Position: refs/heads/main@{#36785}
2022-05-05 15:10:29 +00:00
bbf5737706 Roll chromium_revision 7e42d4ed1d..008a85e4d5 (999761:999873)
Change log: 7e42d4ed1d..008a85e4d5
Full diff: 7e42d4ed1d..008a85e4d5

Changed dependencies
* src/base: ab1ba45f82..cacad6ddfb
* src/build: 0c83e78c82..646c741add
* src/buildtools/third_party/libunwind/trunk: f1108b6ba3..3d54d41c27
* src/ios: 8cb890dd90..f9f2cdf80e
* src/testing: 2b0d8033e6..fe2c48dd06
* src/third_party: b4f790e0d0..ff101bab45
* src/third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/58f3286ec2..81c0ef0a06
* src/third_party/perfetto: 4951933ec6..56b37e5983
* src/tools: 2245c4814d..d2061add29
DEPS diff: 7e42d4ed1d..008a85e4d5/DEPS

No update to Clang.

BUG=None

Change-Id: Ieb7032fe58faccaad9e4b572cee3330ed2772ebd
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/261281
Bot-Commit: 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/main@{#36784}
2022-05-05 14:57:28 +00:00
7bd3bc105d Revert "dcsctp: Reset send queue when recreating TCB"
This reverts commit 3180a5ad0663900a39adf4b9974052c356c835fe.

Reason for revert: Speculative revert due to failures in downstream tests.

Original change's description:
> dcsctp: Reset send queue when recreating TCB
>
> This is an issue found in fuzzer, and doesn't really happen in WebRTC
> as it never closes the connection and reconnects.
>
> The issue is that the send queue outlives any connection since you're
> allowed to send messages (well, enqueue them) before the association is
> fully connected. So the send queue is always present but the TCB
> (information about the connection) is torn down when the connection is
> closed for example. And the TCB holds the Stream Reset handler, which is
> responsible for e.g. keeping track of stream reset sequence numbers and
> such - which is tied to the connection.
>
> So to ensure that the Stream Reset Handler is in charge of deciding
> if a stream reset is taking place, make sure that the send queue is in
> a known good state when the Stream Reset handler is created.
>
> Bug: webrtc:13994, chromium:1320194
> Change-Id: I940e4690ac9237ac99dd69a9ffc060cdac61711d
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/261260
> Reviewed-by: Harald Alvestrand <hta@webrtc.org>
> Commit-Queue: Victor Boivie <boivie@webrtc.org>
> Cr-Commit-Position: refs/heads/main@{#36779}

Bug: webrtc:13994, chromium:1320194
Change-Id: I89bb9cae60adc53902c1304e79047d18e72594a5
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/261302
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Auto-Submit: Björn Terelius <terelius@webrtc.org>
Bot-Commit: rubber-stamper@appspot.gserviceaccount.com <rubber-stamper@appspot.gserviceaccount.com>
Owners-Override: Björn Terelius <terelius@webrtc.org>
Reviewed-by: Victor Boivie <boivie@google.com>
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36783}
2022-05-05 14:49:18 +00:00
f8f7b70050 Create a "slow peerconnection unittests" target
This CL moves all tests that take more than 5 seconds into the new target.

Bug: webrtc:14025
Change-Id: I760d1a270b399b581f41606647740466f6b87e7c
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/261262
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Jeremy Leconte <jleconte@google.com>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36782}
2022-05-05 14:40:38 +00:00
8615bf0582 Move FrameBuffer3 to api/
The webrtc::VideoStreamDecoderInterface was basically created as a public version of FrameBuffer2, but to hide the complexity of FrameBuffer2 it was also combined with decoding so that the public API could be reasonably simple to use. FrameBuffer3 has a simple API with a clear purpose, so its API can be exposed directly.

Bug: webrtc:14026
Change-Id: I81dc84b869e4d16c5e02feb5c876fbcede3d4a25
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/261181
Reviewed-by: Tomas Gunnarsson <tommi@webrtc.org>
Commit-Queue: Philip Eliasson <philipel@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36781}
2022-05-05 14:34:48 +00:00
d4d97eb04d DataChannel: Add open/close stress test
Repeatedly open and close data channels on a peer connection
to check that the channels are properly negotiated and SCTP
stream IDs properly recycled.

Bug: webrtc:13994, chromium:1320194
Change-Id: I244911abb5abaf0a290de07a0d790cd1edffe8cb
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/260984
Commit-Queue: Florent Castelli <orphis@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Auto-Submit: Florent Castelli <orphis@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36780}
2022-05-05 12:44:48 +00:00
3180a5ad06 dcsctp: Reset send queue when recreating TCB
This is an issue found in fuzzer, and doesn't really happen in WebRTC
as it never closes the connection and reconnects.

The issue is that the send queue outlives any connection since you're
allowed to send messages (well, enqueue them) before the association is
fully connected. So the send queue is always present but the TCB
(information about the connection) is torn down when the connection is
closed for example. And the TCB holds the Stream Reset handler, which is
responsible for e.g. keeping track of stream reset sequence numbers and
such - which is tied to the connection.

So to ensure that the Stream Reset Handler is in charge of deciding
if a stream reset is taking place, make sure that the send queue is in
a known good state when the Stream Reset handler is created.

Bug: webrtc:13994, chromium:1320194
Change-Id: I940e4690ac9237ac99dd69a9ffc060cdac61711d
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/261260
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Victor Boivie <boivie@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36779}
2022-05-05 12:06:48 +00:00
35ba0c5cd5 Check that PC is configured for media before doing media operations.
If media_engine is not passed in init parameters, the PC can't handle
media, but can be used for datachannels. This CL adds testing that
datachannels work without media engine, and adds failure returns
to PeerConnection APIs that manipulate media when media engine is
not present.

Bug: webrtc:13931
Change-Id: Iecdf17a0a0bb89e0ad39eb74d6ed077303b875c2
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/261246
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36778}
2022-05-05 11:54:48 +00:00
3c2359c663 Revert "RTP video stream receivers: By default consider frames decryptable."
This reverts commit 658dfb74e563295b7ed4961d06c68afbd566ef8d.

Reason for revert: Breaks downstream tests.

Original change's description:
> RTP video stream receivers: By default consider frames decryptable.
>
> Looks like the original code [0] that should limit the amount of keyframe requests behaves a bit strange in a situation when the first keyframe is missed. Effectively in the encrypted session the receiver can't enforce getting the keyframe until it receives at least one frame which is decryptable [1]. And with dependency descriptors it can't do that until it receives a keyframe which contains proper DD header [2]. This leads to unnecessary delays until the sender sends a keyframe itself.
>
> In this CL we "trust" that the stream is decryptable from the beginning unless proven the opposite [3].
>
> [0]: https://webrtc-review.googlesource.com/c/src/+/123414/
> [1]: https://webrtc.googlesource.com/src/+/9432768024b0397f2dccfec0cab30f33dde87b93/video/video_receive_stream2.cc#950
> [2]: https://webrtc.googlesource.com/src/+/9432768024b0397f2dccfec0cab30f33dde87b93/video/rtp_video_stream_receiver2.cc#415
> [3]: https://webrtc.googlesource.com/src/+/9432768024b0397f2dccfec0cab30f33dde87b93/video/rtp_video_stream_receiver2.cc#882
>
> Bug: webrtc:10330
> Change-Id: I167d728ddc7cde74a5c5e3327bce7364ed97b7ea
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/260326
> Reviewed-by: Philip Eliasson <philipel@webrtc.org>
> Reviewed-by: Erik Språng <sprang@webrtc.org>
> Commit-Queue: Artem Titarenko <artit@webrtc.org>
> Cr-Commit-Position: refs/heads/main@{#36775}

Bug: webrtc:10330
Change-Id: I1e390c938502048a678a9c3a9a88a44f08dc058f
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/261261
Reviewed-by: Artem Titarenko <artit@webrtc.org>
Auto-Submit: Artem Titarenko <artit@webrtc.org>
Bot-Commit: rubber-stamper@appspot.gserviceaccount.com <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Erik Språng <sprang@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36777}
2022-05-05 10:41:13 +00:00
45361f78ed Calculate video stream max bitrate using expression.
This replaces the ealier table-based caps.
Apart from the VGA cap (now 1600kbps instead of 1700kbps), or if using
"in between" resolutions, the caps are unchanged - but now cover high
resolutions better.

Bug: webrtc:14017
Change-Id: I8649b528495d6c917e38ea8cb1a272df6c464c03
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/260940
Commit-Queue: Erik Språng <sprang@webrtc.org>
Reviewed-by: Per Kjellander <perkj@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36776}
2022-05-05 10:10:20 +00:00
658dfb74e5 RTP video stream receivers: By default consider frames decryptable.
Looks like the original code [0] that should limit the amount of keyframe requests behaves a bit strange in a situation when the first keyframe is missed. Effectively in the encrypted session the receiver can't enforce getting the keyframe until it receives at least one frame which is decryptable [1]. And with dependency descriptors it can't do that until it receives a keyframe which contains proper DD header [2]. This leads to unnecessary delays until the sender sends a keyframe itself.

In this CL we "trust" that the stream is decryptable from the beginning unless proven the opposite [3].

[0]: https://webrtc-review.googlesource.com/c/src/+/123414/
[1]: https://webrtc.googlesource.com/src/+/9432768024b0397f2dccfec0cab30f33dde87b93/video/video_receive_stream2.cc#950
[2]: https://webrtc.googlesource.com/src/+/9432768024b0397f2dccfec0cab30f33dde87b93/video/rtp_video_stream_receiver2.cc#415
[3]: https://webrtc.googlesource.com/src/+/9432768024b0397f2dccfec0cab30f33dde87b93/video/rtp_video_stream_receiver2.cc#882

Bug: webrtc:10330
Change-Id: I167d728ddc7cde74a5c5e3327bce7364ed97b7ea
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/260326
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Artem Titarenko <artit@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36775}
2022-05-05 09:58:28 +00:00
26d12fcc71 Remove rtc_base:rtc_base_approved
It's now empty, let's remove it!

Bug: webrtc:9838
Change-Id: I4b3310e882ea95fdf47903f9ad31e2efb35703f2
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/261242
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Florent Castelli <orphis@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36774}
2022-05-05 09:43:31 +00:00
e3b74f8e61 sctp: Fix data channel closing sequence
When an SCTP stream is closing, a stream reset needs
to be sent from both ends.
The remote was not sending a stream reset and quickly
opening another stream with the same StreamID could
cause SCTP errors.

Bug: webrtc:13994
Change-Id: I3abc74ddc88b3fcf7e6495d76e7d77f52280b5d1
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/260922
Commit-Queue: Florent Castelli <orphis@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Victor Boivie <boivie@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36773}
2022-05-05 08:44:58 +00:00
95b1a3497c stats: implement iceLocalUsernameFragment
https://www.w3.org/TR/webrtc-stats/#dom-rtctransportstats-icelocalusernamefragment

BUG=webrtc:14022

Change-Id: If56ebe66d83f4e535c2245f2ca3848469914679f
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/261243
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Philipp Hancke <philipp.hancke@googlemail.com>
Cr-Commit-Position: refs/heads/main@{#36772}
2022-05-05 08:08:48 +00:00
d7fd0f9744 dcsctp: Handle rapid closing of streams
When streams were to be reset, but there was already an ongoing
stream reset command in-flight, those streams wouldn't be properly
reset. When multiple streams were reset close to each other (within
an RTT), some streams would not have their SSNs reset, which resulted
in the stream resuming the SSN sequence. This could result in ordered
streams not delivering all messages as the receiver wouldn't deliver any
messages with SSN different from the expected SSN=0.

In WebRTC data channels, this would be triggered if multiple channels
were closed at roughly the same time, then re-opened, and continued
to be used in ordered mode. Unordered messages would still be delivered,
but the stream state could be wrong as the DATA_CHANNEL_ACK message is
sent ordered, and possibly not delivered.

There were unit tests for this, but not on the socket level using
real components, but just on the stream reset handler using mocks,
where this issue wasn't found. Also, those mocks didn't validate that
the correct parameters were provided, so that's fixed now.

The root cause was the PrepareResetStreams was only called if there
wasn't an ongoing stream reset operation in progress. One may try to
solve it by always calling PrepareResetStreams also when there is an
ongoing request, or to call it when the request has finished. One would
then realize that when the response of the outgoing stream request is
received, and CommitResetStreams is called, it would reset all paused
and (prepared) to-be-reset streams - not just the ones in the outgoing
stream request.

One cause of this was the lack of a single source of truth of the stream
states. The SendQueue kept track of which streams that were paused, but
the stream reset handler kept track of which streams that were
resetting. As that's error prone, this CL moves the source of truth
completely to the SendQueue and defining explicit stream pause states. A
stream can be in one of these possible states:

  * Not paused. This is the default for an active stream.
  * Pending to be paused. This is when it's about to be reset, but
    there is a message that has been partly sent, with fragments
    remaining to be sent before it can be paused.
  * Paused, with no partly sent message. In this state, it's ready to
    be reset.
  * Resetting. A stream transitions into this state when it has been
    paused and has been included in an outgoing stream reset request.
    When this request has been responded to, the stream can really be
    reset (SSN=0, MID=0).

This CL also improves logging, and adds socket tests to catch this
issue.

Bug: webrtc:13994, chromium:1320194
Change-Id: I883570d1f277bc01e52b1afad62d6be2aca930a2
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/261180
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Victor Boivie <boivie@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36771}
2022-05-05 07:30:58 +00:00
4ef2de6290 Remove the iOS internal try bots.
Bug: b/230708129
Change-Id: Ic4315997af0c01c5f5d987d13d88ada7d76ab0ea
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/260191
Reviewed-by: Mirko Bonadei <mbonadei@google.com>
Commit-Queue: Jeremy Leconte <jleconte@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36770}
2022-05-05 07:20:49 +00:00
87088e79a3 Roll chromium_revision db1aa64adf..7e42d4ed1d (999661:999761)
Change log: db1aa64adf..7e42d4ed1d
Full diff: db1aa64adf..7e42d4ed1d

Changed dependencies
* src/base: 3a5974ffd9..ab1ba45f82
* src/build: e5f67a93f1..0c83e78c82
* src/ios: d2e1ba0157..8cb890dd90
* src/testing: d21684de84..2b0d8033e6
* src/third_party: 4b1d7ff497..b4f790e0d0
* src/third_party/androidx: Da4Gfq0cbANF8TBzxjWyFxNZLsHhNw0miO3ApOghW7YC..nWvCs11JIQtG7q6R1Vb1ySaYovfUvDCJnkXNXEsu9-0C
* src/third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/67079d94e0..58f3286ec2
* src/third_party/depot_tools: 08a30b20f2..b9dca865af
* src/third_party/perfetto: 268fb40af7..4951933ec6
* src/tools: a46e43eab2..2245c4814d
DEPS diff: db1aa64adf..7e42d4ed1d/DEPS

No update to Clang.

BUG=None

Change-Id: I7ea4436acaae4ded25e16cd58033b190b0bdb794
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/261146
Commit-Queue: Autoroller <chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com>
Bot-Commit: Autoroller <chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/main@{#36769}
2022-05-05 07:07:48 +00:00
15a3c3fdca Split Windows code from rtc_base_approved to smaller targets
Bug: webrtc:9838
Change-Id: Ic463284fd68715fd9b8eadd50e1d25841cb60020
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/261241
Auto-Submit: Florent Castelli <orphis@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36768}
2022-05-05 06:47:49 +00:00
d852d9c536 Update WebRTC code version (2022-05-05T04:02:39).
Bug: None
Change-Id: I3da3e7eb522fddf512ecc751f48223a30871f536
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/261145
Bot-Commit: 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/main@{#36767}
2022-05-05 05:54:08 +00:00
cc1b9b060d stats: implement iceRole
https://www.w3.org/TR/webrtc-stats/#dom-rtctransportstats-icerole

BUG=webrtc:14022

Change-Id: I88de2c843a2042ce99076d55ce41be22589e2d92
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/261201
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Philipp Hancke <philipp.hancke@googlemail.com>
Cr-Commit-Position: refs/heads/main@{#36766}
2022-05-05 05:05:40 +00:00
eced0a1bb6 Roll chromium_revision 417b7ce146..db1aa64adf (999552:999661)
Change log: 417b7ce146..db1aa64adf
Full diff: 417b7ce146..db1aa64adf

Changed dependencies
* src/base: 0b272249b6..3a5974ffd9
* src/build: 01e3d9104d..e5f67a93f1
* src/ios: e248592443..d2e1ba0157
* src/testing: bad52baf02..d21684de84
* src/third_party: aa14c9b817..4b1d7ff497
* src/third_party/androidx: gA0vvkGrsh9eQymdSOfRTYnYJpY-Wq7wonB0rx2eiMcC..Da4Gfq0cbANF8TBzxjWyFxNZLsHhNw0miO3ApOghW7YC
* src/third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/05b7cd33df..67079d94e0
* src/third_party/depot_tools: 23ddab2235..08a30b20f2
* src/third_party/perfetto: 69bc804a18..268fb40af7
* src/tools: fd5689b73c..a46e43eab2
DEPS diff: 417b7ce146..db1aa64adf/DEPS

No update to Clang.

BUG=None

Change-Id: I23729b9be1a247555b52e8e3a0268d4ad955c8f6
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/261222
Bot-Commit: 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/main@{#36765}
2022-05-05 00:58:47 +00:00
2ea1502a2a Roll chromium_revision 45304a5b38..417b7ce146 (999433:999552)
Change log: 45304a5b38..417b7ce146
Full diff: 45304a5b38..417b7ce146

Changed dependencies
* src/build: c5ff734ecb..01e3d9104d
* src/buildtools: 113378f9b3..7208eddba1
* src/ios: 3170f27462..e248592443
* src/testing: fa918eb7ae..bad52baf02
* src/third_party: e3744eedbc..aa14c9b817
* src/third_party/android_deps/libs/org_jetbrains_kotlin_kotlin_stdlib: version:2@1.6.20.cr1..version:2@1.6.21.cr1
* src/third_party/android_deps/libs/org_jetbrains_kotlin_kotlin_stdlib_common: version:2@1.6.20.cr1..version:2@1.6.21.cr1
* src/third_party/depot_tools: 13acea3645..23ddab2235
* src/tools: ded0ab1e86..fd5689b73c
Added dependencies
* src/third_party/android_deps/libs/org_jsoup_jsoup
* src/third_party/android_deps/libs/com_google_android_apps_common_testing_accessibility_framework_accessibility_test_framework
* src/third_party/android_deps/libs/com_google_protobuf_protobuf_lite
* src/third_party/android_deps/libs/org_hamcrest_hamcrest
DEPS diff: 45304a5b38..417b7ce146/DEPS

No update to Clang.

BUG=None

Change-Id: I64b46dcefe03bceca69ee6f3ed1de85d01881340
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/261142
Commit-Queue: Autoroller <chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com>
Bot-Commit: Autoroller <chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/main@{#36764}
2022-05-04 21:00:38 +00:00
69e7348dc6 Roll chromium_revision 6effd442e8..45304a5b38 (999303:999433)
Change log: 6effd442e8..45304a5b38
Full diff: 6effd442e8..45304a5b38

Changed dependencies
* src/base: 1eefedb688..0b272249b6
* src/build: d7c4eab611..c5ff734ecb
* src/buildtools/third_party/libunwind/trunk: 393e3eee99..f1108b6ba3
* src/ios: e0fba2731c..3170f27462
* src/testing: 3ac36968b2..fa918eb7ae
* src/third_party: dea6018eca..e3744eedbc
* src/third_party/perfetto: f8b405298b..69bc804a18
* src/tools: 42973cc977..ded0ab1e86
DEPS diff: 6effd442e8..45304a5b38/DEPS

No update to Clang.

BUG=None

Change-Id: I03f0b22baffe72169594e971adefc0401608079d
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/261141
Bot-Commit: 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/main@{#36763}
2022-05-04 16:57:37 +00:00
9e334b7d99 Remove channel_manager.h from most .h files
This ensures that only the compilation units that actually need
ChannelManager details can see it.

Bug: webrtc:13931
Change-Id: Iddd37580c0ceceba5b7095e84b981e6a525b2800
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/261200
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36762}
2022-05-04 16:35:17 +00:00
31e31c8c0a Adding jleconte to the tools_webrtc OWNERS file.
Bug: b/230708129
Change-Id: Id005a9a1bd88530ef92fed3f31a29d951405c168
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/261182
Commit-Queue: Jeremy Leconte <jleconte@google.com>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36761}
2022-05-04 14:26:07 +00:00
e487e440a7 Enable FrameBuffer3 by default
The field trial will remain as a kill-switch for a few weeks while
decisions about sync decoding are being made.

Change-Id: I6034d25a129404e94ab8830f51e83667e285c785
Bug: webrtc:14003
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/260327
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Commit-Queue: Evan Shrubsole <eshr@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36760}
2022-05-04 13:40:37 +00:00
6566bd5484 Add some more frame stats to PCLF
Metrics for calculating sent/recv key frame rate:
num_encoded_frames -- number of encoded frames
num_decoded_frames -- number of decoded frames
num_send_key_frames -- number of sent keyframes
num_recv_key_frames -- number of received keyframes

Metrics for frame size (in bytes) distribution:
recv_key_frame_size_bytes -- key frame size
recv_delta_frame_size_bytes -- delta frame size

The stats are only reported if the user so requests. This is
because the stats may not be useful for regression tracking,
but mainly for adhoc analysis.

Tested:
```
~/s/w/src (frame_stats↑1|✚1) $ autoninja -C out/Debug && out/Debug/test_support_unittests --gtest_filter="PeerConnectionE2EQualityTestSmokeTest.Smoke" 2>/dev/null
Note: Google Test filter = PeerConnectionE2EQualityTestSmokeTest.Smoke
[==========] Running 1 test from 1 test suite.
[----------] Global test environment set-up.
[----------] 1 test from PeerConnectionE2EQualityTestSmokeTest
[ RUN      ] PeerConnectionE2EQualityTestSmokeTest.Smoke
...
RESULT num_encoded_frames: Smoke/alice-video= 31 count_biggerIsBetter
RESULT num_decoded_frames: Smoke/alice-video= 31 count_biggerIsBetter
RESULT num_send_key_frames: Smoke/alice-video= 2 count_biggerIsBetter
RESULT num_recv_key_frames: Smoke/alice-video= 2 count_biggerIsBetter
RESULT recv_key_frame_size_bytes: Smoke/alice-video= {1847,126} count_biggerIsBetter
RESULT recv_delta_frame_size_bytes: Smoke/alice-video= {1150.1034,393.66329} count_biggerIsBetter
...
RESULT num_encoded_frames: Smoke/charlie-video= 31 count_biggerIsBetter
RESULT num_decoded_frames: Smoke/charlie-video= 31 count_biggerIsBetter
RESULT num_send_key_frames: Smoke/charlie-video= 2 count_biggerIsBetter
RESULT num_recv_key_frames: Smoke/charlie-video= 2 count_biggerIsBetter
RESULT recv_key_frame_size_bytes: Smoke/charlie-video= {1847,126} count_biggerIsBetter
RESULT recv_delta_frame_size_bytes: Smoke/charlie-video= {1150.1034,393.66329} count_biggerIsBetter
...
[----------] 1 test from PeerConnectionE2EQualityTestSmokeTest (2196 ms total)

[----------] Global test environment tear-down
[==========] 1 test from 1 test suite ran. (2196 ms total)
[  PASSED  ] 1 test.
```

Bug: webrtc:14019
Change-Id: I3d5ea0cf659a6299c6d94f5004cbf0c763b267e5
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/260924
Reviewed-by: Artem Titov <titovartem@webrtc.org>
Commit-Queue: Rasmus Brandt <brandtr@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36759}
2022-05-04 12:23:27 +00:00
30ec725b6e Auxiliary liboam AV1 encoder settings.
Bug: none
Change-Id: I03e01ffbed2ec98953650847600016e4f80fdb50
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/260861
Reviewed-by: Sergey Silkin <ssilkin@webrtc.org>
Commit-Queue: Philip Eliasson <philipel@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36758}
2022-05-04 11:59:29 +00:00
8f42992787 Move channel creation functions into RtpTransceiver
This breaks the link from sdp_offer_answer.cc to channel.h.

Bug: webrtc:13931
Change-Id: I75608f75713bf4e69013ac5f5b17c19e53d07519
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/261060
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Tomas Gunnarsson <tommi@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36757}
2022-05-04 11:57:50 +00:00