Commit Graph

35208 Commits

Author SHA1 Message Date
27e8a095bf Add ability to specify delayed task precision in RepeatingTaskHandle.
See go/postdelayedtask-precision-in-webrtc for context of which use
cases are considered "high" or "low". Most use cases are "low" which
is the default, but this CL allows opting in to "high".

Will be used by FrameBuffer2.

Bug: webrtc:13604
Change-Id: Iebf6eea44779873e78746da749a39e1101b92819
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/248861
Reviewed-by: Tomas Gunnarsson <tommi@webrtc.org>
Commit-Queue: Henrik Boström <hbos@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#35776}
2022-01-24 17:56:50 +00:00
6f542d5e92 Move call to TransportFeedbackDemuxer::AddPacket to transport queue.
Before, this call was being made from the SendPacket path of the
pacer. The transport will post a task to the transport queue regardless
so this change moves the lock inside of the demuxer away from the
pacer and over to the transport queue.

Moving forward, the calls to register/unregister with the feedback
demuxer, will occur on the transport queue as well and we can change
the transport OnTransportFeedback() implementation to forward the
calls to the demuxer on the transport queue as well. That will bring
all calls into the same execution context and we won't need a lock.

Bug: webrtc:13517, webrtc:11993
Change-Id: If714ca6d2b164a1a2b6bcb8c99787372064a31a0
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/248164
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Tomas Gunnarsson <tommi@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#35775}
2022-01-24 16:50:00 +00:00
3088941a5e Minor order change to Call::DestroyVideoSendStream.
Move StopPermanentlyAndGetRtpStates closer to being the last step of
the destruction process.

Bug: webrtc:11993
Change-Id: I83d86c505b05f5c10d0ce802494baba9aa645027
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/239182
Auto-Submit: Tomas Gunnarsson <tommi@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#35774}
2022-01-24 14:33:40 +00:00
29159ca979 dcsctp: Use c++17 structured bindings
As WebRTC now supports C++17, simplify the code of dcSCTP by binding
return values from std::pair or std::tuple to separate names.

Bug: webrtc:13220
Change-Id: Ie49154ff4c823e1528deaef7e372cbc550923bc2
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/246442
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Commit-Queue: Victor Boivie <boivie@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#35773}
2022-01-24 13:57:30 +00:00
cabd374cbb Replace lock with checker in TransportFeedbackDemuxer
Bug: webrtc:13517, webrtc:11993
Change-Id: If44c7a7428454c0bf5a6fee6d12d816e3dc8e27c
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/248163
Reviewed-by: Niels Moller <nisse@webrtc.org>
Commit-Queue: Tomas Gunnarsson <tommi@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#35772}
2022-01-24 11:51:50 +00:00
604fd2f1ab Remove RTC_DISALLOW_COPY_AND_ASSIGN from modules/
Bug: webrtc:13555, webrtc:13082
Change-Id: I2c2cbcbd918f0cfa970c1a964893220ba11d4b41
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/247960
Reviewed-by: Artem Titov <titovartem@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: (Daniel.L) Byoungchan Lee <daniel.l@hpcnt.com>
Cr-Commit-Position: refs/heads/main@{#35771}
2022-01-24 11:50:20 +00:00
ce6170fcdf Refactor GoogCC unittests
After the refactoring, the test fixture is only used for creating the
object under test and dependencies. This leads to more readable code and
allows more flexibility when creating the object under test.

Bug: none
Change-Id: I643330290da17efe0a02fe5dc6b884136705de0b
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/248140
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Commit-Queue: Per Kjellander <perkj@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#35770}
2022-01-24 11:45:08 +00:00
d5f414cee1 Add class comments to Call and ChannelInterface
These class comments can help people to keep the relationship between
various classes / levels of abstraction straight.

Bug: None
Change-Id: I9fc899ac9c1080a406b06e88a38883cc3f00093d
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/248169
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Reviewed-by: Tomas Gunnarsson <tommi@webrtc.org>
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#35769}
2022-01-24 11:30:28 +00:00
49a1d621be Fix possible compile issue with PeerConnectionInterface::AsString.
AsString is constexpr, but RTC_CHECK_NOTREACHED is not. Using some gcc
compile rules, having a constexpr make use of RTC_CHECK_NOTREACHED does
not compile.

See internal issue number 215785261. We could either remove constexpr
or remove the RTC_CHECK_NOTREACHED. This CL does the latter.

Bug: None
Change-Id: I7ea84b345e9abdba60a7620e1d92c3159c0d7974
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/248167
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Henrik Boström <hbos@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#35768}
2022-01-24 10:19:59 +00:00
347488e450 Make AddIceCandidate's error type match the spec.
See https://crbug.com/webrtc/4409.

Bug: webrtc:4409
Change-Id: I4249444a385ac7c4b3da88125a0d7c88a88bceeb
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/248143
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Henrik Boström <hbos@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#35767}
2022-01-24 09:04:10 +00:00
5411b174c8 Add a channel factory interface.
The interface is implemented by the ChannelManager and contains methods
to create and destroy media channel objects as used by a transceiver.

This will subsequently allow us to delete the channel objects from
the transceiver class where ownership really lies rather than from
the outside - which is currently required by some tests that keep
channel objects on the stack. We'll furthermore be able to do the
destruction asynchronously without additional Invoke()s as we do now
which will remove an Invoke when making sdp changes.

With introducing the interface, the following simplifications were made:
* ChannelManager constructed on the signaling thread.
  Before, there was an Invoke in the context class, which existed
  for the purposes of calling MediaEngine::Init() (which in turn is
  only needed for the VoiceEngine). This Invoke has now been moved
  into the CM (more tbd).
* The CM now has a pointer to the signaling thread (since that's the
  construction thread). That allows us to remove the signaling thread
  parameter from the CreateFooChannel methods.
* The ssrc_generator (UniqueRandomIdGenerator) instance for SSRCs moved
  from SdpOfferAnswerHandler to the CM, as it's always used in
  combination with the CM. This simplifies the CreateFooChannel methods
  as well as a couple of other classes that have a CM dependency.
* Removed DestroyFooChannel related code from SdpOfferAnswerHandler since
  the channel type detail can be taken care of by the CM.

Bug: webrtc:11992, webrtc:13540
Change-Id: I04938a803734de8489ba31e6212d9eaecc244126
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/247904
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Tomas Gunnarsson <tommi@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#35766}
2022-01-24 08:50:30 +00:00
c0a4316825 PipeWire capturer: split xdg-desktop-portal and PipeWire implementations
Make PipeWire stream shared through DesktopCaptureOptions (similar to
X11 implementation sharing XDisplay) so we can implement better cursor
support with our own MouseCursorMonitor implementation.

Bug: webrtc:13429
Change-Id: I781482aa29cee0c105c42e5109f28e95dde9881b
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/238174
Reviewed-by: Mark Foltz <mfoltz@chromium.org>
Commit-Queue: Mark Foltz <mfoltz@chromium.org>
Cr-Commit-Position: refs/heads/main@{#35765}
2022-01-21 19:14:37 +00:00
b39fce858f [frame-buffer3] Enable WebRTC-LegacyFrameIdJumpBehavior by default
When disabled, the test ResolutionAdaptsToAvailableBandwidth fails when
using frame buffer3. It is not clear if that is a problem with the test
or if that behaviour is required, and thus it is safer to have this
enabled by default and experiment with turning it off in the future.

Change-Id: I7a6ae14c37a0cdc3e203f39f6cc0c3ad87038a60
Bug: webrtc:13343
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/247700
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Commit-Queue: Evan Shrubsole <eshr@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#35764}
2022-01-21 15:07:19 +00:00
95701503f2 Make libaom_av1_encoder always build the libaom encoder.
Currently `CreateLibaomAv1Encoder` will either return an actual libaom AV1 encoder or a nullptr depening on whether the build flag `enable_libaom` was configured to true or not. This CL updates the `libaom_av1_encoder` build target to no longer depend on `enable_libaom` so that `CreateLibaomAv1Encoder` will always return an encoder instance.

Added `CreateLibaomAv1EncoderIfSupported` as a replacement to the old `CreateLibaomAv1Encoder`.

Bug: webrtc:13573
Change-Id: Ibdcd52c609acd79feefa2b86f19d1b4ca3e91d0a
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/242360
Reviewed-by: Erik Språng <sprang@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Peter Hanspers <peterhanspers@webrtc.org>
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Commit-Queue: Philip Eliasson <philipel@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#35763}
2022-01-21 13:45:47 +00:00
01ef37c08e Reland "Wire up proto-free event log format in encoder and parser."
This is a reland of 46333dbf6211ea197965c30fdbecbeb62bc81e5b

Original change's description:
> Wire up proto-free event log format in encoder and parser.
>
> Encode ALR state events as an example. The ALR state unit tests pass with the new format, but the tests are not enabled in this CL since the other event types aren't encoded yet.
>
> Bug: webrtc:11933
> Change-Id: I3ba22778b55f24e2e2bd7d95bb9b17de29ef899f
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/234520
> Reviewed-by: Sebastian Jansson <srte@webrtc.org>
> Commit-Queue: Björn Terelius <terelius@webrtc.org>
> Cr-Commit-Position: refs/heads/main@{#35752}

Bug: webrtc:11933
Change-Id: Ia8b23cfb134b61c9ef02aa21189ecbd239783c40
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/248141
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Commit-Queue: Björn Terelius <terelius@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#35762}
2022-01-21 13:14:27 +00:00
e1cd3ad4f5 Switch encoder on init failure
Currently if encoder initialization fails WebRTC doesn't send any video.
This CL adds functionality that changes encoder type in such case and
restores the video. If encoder selector is available we switch to
encoder it recommends. Otherwise, VP8 is used as the default fallback
encoder.

Bug: webrtc:13572
Change-Id: Ifcdf707a575711f5ff81f9451caf30140c9171dc
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/246960
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
Commit-Queue: Sergey Silkin <ssilkin@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#35761}
2022-01-21 12:05:17 +00:00
6d2fe89b7e [C++] Change default sdp_semantics to kUnifiedPlan.
This CL also removed the temporary enum value kNotSpecified.
See PSA https://groups.google.com/u/1/g/discuss-webrtc/c/SdoVP02eUIk
for more information.

With this CL we can close https://crbug.com/webrtc/11121 as fixed.

Bug: webrtc:11121
Change-Id: I1340b9be8e1d7a45e6327a5f550402bc542325ae
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/246209
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Henrik Boström <hbos@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#35760}
2022-01-21 10:44:56 +00:00
2832bbfeeb [ObjC] Change default sdpSemantics to UnifiedPlan.
This CL also removed the temporary enum value NotSpecified.
See PSA https://groups.google.com/u/1/g/discuss-webrtc/c/SdoVP02eUIk
for more information.

Bug: webrtc:11121
Change-Id: Ib19e1f5911ffad001fc61ac28174eb8e823fc803
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/246208
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Peter Hanspers <peterhanspers@webrtc.org>
Commit-Queue: Henrik Boström <hbos@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#35759}
2022-01-21 09:43:11 +00:00
0431d2a94a [Java] Change default sdpSemantics to UNIFIED_PLAN.
This CL also removed the temporary enum value NOT_SPECIFIED.
See PSA https://groups.google.com/u/1/g/discuss-webrtc/c/SdoVP02eUIk
for more information.

Bug: webrtc:11121
Change-Id: I46b7902354e588c3197a500c5ee1315b5a3ed0a3
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/246207
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Henrik Boström <hbos@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#35758}
2022-01-21 09:17:25 +00:00
265f22b735 Roll chromium_revision 73dab048d0..2962054fb0 (961686:961809)
Change log: 73dab048d0..2962054fb0
Full diff: 73dab048d0..2962054fb0

Changed dependencies
* src/base: 33b6d893c0..e622bde14a
* src/build: 7095aec865..906b90c327
* src/buildtools/third_party/libc++abi/trunk: 7d7912617f..fd0ef6db30
* src/ios: 5e48aa6760..015f2c06aa
* src/testing: 62ca8f0891..9ef62302b2
* src/third_party: 67f270b584..b4a203e0e4
* src/third_party/depot_tools: ac54b8de82..b8f1ca3058
* src/third_party/perfetto: 585716d40f..bda2a707d5
* src/tools: 5bd0c37640..7f40597977
DEPS diff: 73dab048d0..2962054fb0/DEPS

No update to Clang.

BUG=None

Change-Id: Idc5fe50f679abc5d7127f26638c7bd24def870e6
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/248121
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@{#35757}
2022-01-21 07:05:07 +00:00
10d4ec46f0 Update WebRTC code version (2022-01-21T04:03:17).
Bug: None
Change-Id: I8f533101f5f281d64e76e866d61f8a2225abe8b5
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/248120
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@{#35756}
2022-01-21 05:35:07 +00:00
45b3536a43 Roll chromium_revision c1a9a95784..73dab048d0 (961552:961686)
Change log: c1a9a95784..73dab048d0
Full diff: c1a9a95784..73dab048d0

Changed dependencies
* src/base: 466bb59e27..33b6d893c0
* src/build: 95b79dc567..7095aec865
* src/ios: 8704fe3fbf..5e48aa6760
* src/testing: 699ada065d..62ca8f0891
* src/third_party: d4530f76fc..67f270b584
* src/third_party/perfetto: 7cb76b7bef..585716d40f
* src/tools: d9080d57d2..5bd0c37640
DEPS diff: c1a9a95784..73dab048d0/DEPS

No update to Clang.

BUG=None

Change-Id: I714a9d6ff7ed6d3cab1e8c15f2eb0a7c2fa93ebc
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/248080
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@{#35755}
2022-01-21 00:31:41 +00:00
00ecf48117 Roll chromium_revision ddc84409e8..c1a9a95784 (961419:961552)
Change log: ddc84409e8..c1a9a95784
Full diff: ddc84409e8..c1a9a95784

Changed dependencies
* src/base: 878376b19e..466bb59e27
* src/build: 23933803a5..95b79dc567
* src/buildtools/third_party/libunwind/trunk: efb2cbd374..295f84c04f
* src/ios: e9f90e0602..8704fe3fbf
* src/testing: 60542625f2..699ada065d
* src/third_party: a87ca4eecc..d4530f76fc
* src/third_party/depot_tools: a657331e90..ac54b8de82
* src/third_party/freetype/src: 773e31c783..0b635b1eb2
* src/third_party/googletest/src: 100f6fbf5f..2ddfdf819d
* src/third_party/perfetto: 264b143984..7cb76b7bef
* src/tools: 7796d83d8e..d9080d57d2
DEPS diff: ddc84409e8..c1a9a95784/DEPS

No update to Clang.

BUG=None

Change-Id: Ifbc1564452694c7994576896be7a02925e7d577c
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/248040
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@{#35754}
2022-01-20 20:55:58 +00:00
6053903ab9 Revert "Wire up proto-free event log format in encoder and parser."
This reverts commit 46333dbf6211ea197965c30fdbecbeb62bc81e5b.

Reason for revert: Downstream test broken by changed error message.

Original change's description:
> Wire up proto-free event log format in encoder and parser.
>
> Encode ALR state events as an example. The ALR state unit tests pass with the new format, but the tests are not enabled in this CL since the other event types aren't encoded yet.
>
> Bug: webrtc:11933
> Change-Id: I3ba22778b55f24e2e2bd7d95bb9b17de29ef899f
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/234520
> Reviewed-by: Sebastian Jansson <srte@webrtc.org>
> Commit-Queue: Björn Terelius <terelius@webrtc.org>
> Cr-Commit-Position: refs/heads/main@{#35752}

TBR=terelius@webrtc.org,srte@webrtc.org,webrtc-scoped@luci-project-accounts.iam.gserviceaccount.com

Change-Id: I9a21ec3c4f876102da146898b840c740f575e03c
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:11933
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/247901
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Commit-Queue: Björn Terelius <terelius@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#35753}
2022-01-20 16:15:28 +00:00
46333dbf62 Wire up proto-free event log format in encoder and parser.
Encode ALR state events as an example. The ALR state unit tests pass with the new format, but the tests are not enabled in this CL since the other event types aren't encoded yet.

Bug: webrtc:11933
Change-Id: I3ba22778b55f24e2e2bd7d95bb9b17de29ef899f
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/234520
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Commit-Queue: Björn Terelius <terelius@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#35752}
2022-01-20 15:22:28 +00:00
ec3862ba86 Roll chromium_revision 75b5f4522f..ddc84409e8 (961310:961419)
Change log: 75b5f4522f..ddc84409e8
Full diff: 75b5f4522f..ddc84409e8

Changed dependencies
* src/base: 890d81a09c..878376b19e
* src/build: 841e388a14..23933803a5
* src/ios: d2b4acaa69..e9f90e0602
* src/testing: eca0dae75b..60542625f2
* src/third_party: ffd6acf3ba..a87ca4eecc
* src/tools: 9a85b547d4..7796d83d8e
DEPS diff: 75b5f4522f..ddc84409e8/DEPS

No update to Clang.

BUG=None

Change-Id: I109712277ac21574c7166e5cdc576389483386ba
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/247980
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@{#35751}
2022-01-20 14:53:58 +00:00
2deee4bbb2 Mark rtc::Thread's versions of PostTask/PostDelayedTask deprecated.
Because rtc::Thread inherits from TaskQueueBase, it already implements
a pair of PostTask/PostDelayedTask methods that we want to keep. But in
addition to those, rtc::Thread defines its own PostTask/PostDelayedTask
using templates. These are the versions that we want to deprecate.

They were originally implemented prior to rtc::Thread inheriting from
TaskQueueBase. We want to deprecate them because...
- We don't want to have multiple code paths that do the same thing.
- We want to move away from rtc::Thread to TaskQueueBase long-term.
- These versions are not overridable in Chromium.
- These versions don't have high/low precision versions of PDT.

Helper methods are added to rtc::Thread so that callers don't have to
wrap every lambda in webrtc::ToQueuedTask() and update dependencies.

Bug: webrtc:13582
Change-Id: I58702c53f4cb3705681bd9f1ea16b7aaa5052c18
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/247660
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Tomas Gunnarsson <tommi@webrtc.org>
Reviewed-by: Markus Handell <handellm@google.com>
Commit-Queue: Henrik Boström <hbos@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#35750}
2022-01-20 12:59:27 +00:00
c065e739e2 Remove RTC_DISALLOW_COPY_AND_ASSIGN more.
Bug: webrtc:13555, webrtc:13082
Change-Id: I9c07708108da0a26f5e228384fd56cef4d1540b3
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/247300
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Tomas Gunnarsson <tommi@webrtc.org>
Reviewed-by: Artem Titov <titovartem@webrtc.org>
Commit-Queue: (Daniel.L) Byoungchan Lee <daniel.l@hpcnt.com>
Cr-Commit-Position: refs/heads/main@{#35749}
2022-01-20 11:00:18 +00:00
cf9899c518 TaskQueueBase: Add PostDelayedHighPrecisionTask().
As per go/postdelayedtask-precision-in-webrtc we want to reduce the
precision of PostDelayedTask() in order to schedule work on the CPU
more efficiently. In order not to break "high precision" use cases, a
new API is added to allow opting in to high precision.

PostDelayedHighPrecisionTask() has the same precision that
PostDelayedTask() has today, but by changing the interface's
requirements on PostDelayedTask(), adding the high precision version
of it will unblock making the old PostDelayedTask() API lower
precision.

This CL does not update implementations to support low precision so
until those are updated, both PostDelayedTask() and
PostDelayedHighPrecisionTask() have the same precision (=high).

This CL also adds TODOs to make some rtc::Thread-specific versions
of PostTask/PostDelayedTask obsolete, see
https://crbug.com/webrtc/13582 for more info.

Bug: webrtc:13583, webrtc:13582
Change-Id: I4c6d53d22bb299c49893ce9f3ef73a40d8c75de1
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/247367
Reviewed-by: Markus Handell <handellm@webrtc.org>
Reviewed-by: Tomas Gunnarsson <tommi@webrtc.org>
Commit-Queue: Henrik Boström <hbos@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#35748}
2022-01-20 10:45:10 +00:00
c1ccc821bb remove loopback test
which relies on no-longer existing apprtc infrastructure

BUG=None

Change-Id: I1cecc039c69dff5923b5f57c872e74155c46ed05
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/247662
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Philipp Hancke <philipp.hancke@googlemail.com>
Cr-Commit-Position: refs/heads/main@{#35747}
2022-01-20 08:18:39 +00:00
09698b29dc Roll chromium_revision 8b13984d34..75b5f4522f (961195:961310)
Change log: 8b13984d34..75b5f4522f
Full diff: 8b13984d34..75b5f4522f

Changed dependencies
* src/base: 4a67a0b070..890d81a09c
* src/build: 635ab5f4cc..841e388a14
* src/ios: f754f5f51c..d2b4acaa69
* src/testing: fbc641aac9..eca0dae75b
* src/third_party: ca8410f38c..ffd6acf3ba
* src/third_party/depot_tools: b674278ce7..a657331e90
* src/third_party/ffmpeg: 53de560ab9..1edb3eb491
* src/third_party/perfetto: 645a5c0de6..264b143984
* src/tools: 3382825b93..9a85b547d4
* src/tools/luci-go: git_revision:d1e877e2b3e5a05a5cd34c4a340fedba14a16c2b..git_revision:5b02a4aaeb5fd78d6fe41d6d54d1cb58da17f192
* src/tools/luci-go: git_revision:d1e877e2b3e5a05a5cd34c4a340fedba14a16c2b..git_revision:5b02a4aaeb5fd78d6fe41d6d54d1cb58da17f192
DEPS diff: 8b13984d34..75b5f4522f/DEPS

No update to Clang.

BUG=None

Change-Id: I244699d2bd6d8377206c70510891f91120fe28cf
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/247820
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@{#35746}
2022-01-20 05:00:51 +00:00
6d56a8cdc7 Roll chromium_revision d3a2776850..8b13984d34 (961086:961195)
Change log: d3a2776850..8b13984d34
Full diff: d3a2776850..8b13984d34

Changed dependencies
* src/base: 88165acd18..4a67a0b070
* src/buildtools/third_party/libc++abi/trunk: 94855f7b7c..7d7912617f
* src/ios: 851ebf19f3..f754f5f51c
* src/testing: 3ce6541d98..fbc641aac9
* src/third_party: 27a82fd1db..ca8410f38c
* src/third_party/depot_tools: cb340f5b7b..b674278ce7
* src/third_party/perfetto: c581dd4f59..645a5c0de6
* src/tools: 2ddc26c0a0..3382825b93
DEPS diff: d3a2776850..8b13984d34/DEPS

No update to Clang.

BUG=None

Change-Id: I8b48e50167d917b36458f8e77d16e88cdf75e3d3
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/247780
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@{#35745}
2022-01-20 00:26:58 +00:00
63c4585865 Roll chromium_revision c68a34c4bf..d3a2776850 (960970:961086)
Change log: c68a34c4bf..d3a2776850
Full diff: c68a34c4bf..d3a2776850

Changed dependencies
* src/base: 7eb3c62083..88165acd18
* src/build: 8460fe0529..635ab5f4cc
* src/ios: 0ee5dfebd9..851ebf19f3
* src/testing: a986612739..3ce6541d98
* src/third_party: 51ab711f71..27a82fd1db
* src/third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/f92a0a2305..8bc3659ded
* src/tools: 3434dd87e0..2ddc26c0a0
DEPS diff: c68a34c4bf..d3a2776850/DEPS

No update to Clang.

BUG=None

Change-Id: Icc37eabe10203610d7e3205672fb0bb6873f2c59
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/247740
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@{#35744}
2022-01-19 20:36:47 +00:00
f83d4265b5 Add frame_helpers
A number of utility functions to be shared between frame buffer 2
and the new frame scheduling implementation based on frame buffer 3.

Change-Id: Icc932c6c76fddeeedc8aa64ec27c7e0c955abfd0
Bug: webrtc:13343
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/241604
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Commit-Queue: Evan Shrubsole <eshr@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#35743}
2022-01-19 17:19:57 +00:00
8e8b966d54 Roll chromium_revision dbfaeed330..c68a34c4bf (960866:960970)
Change log: dbfaeed330..c68a34c4bf
Full diff: dbfaeed330..c68a34c4bf

Changed dependencies
* src/base: d37282a1d2..7eb3c62083
* src/build: 21fa0a4b70..8460fe0529
* src/buildtools/third_party/libunwind/trunk: 57e4aff4a1..efb2cbd374
* src/ios: 21baa4881e..0ee5dfebd9
* src/testing: 8658b9fe34..a986612739
* src/third_party: 46fbd90659..51ab711f71
* src/third_party/perfetto: 5a202e1c1c..c581dd4f59
* src/tools: 8cac5b8c3c..3434dd87e0
DEPS diff: dbfaeed330..c68a34c4bf/DEPS

No update to Clang.

BUG=None

Change-Id: I95442925da5f2d43f72786e7ff58f7f9cfcc97c7
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/247680
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@{#35742}
2022-01-19 16:35:08 +00:00
16cbed4782 Update how VP9 temporal up switch is populated
This CL updates both the static GOF pattern with the correct flags for
temporal_up_switch, as well the flexible mode logic to base the flag
on dependency descriptors instead use reference buffers.

Bug: webrtc:13576
Change-Id: I578f744bec51d1f3531da5f4a89d12f05a16a6c0
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/247187
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Commit-Queue: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#35741}
2022-01-19 15:42:21 +00:00
1ca57b9015 Add support for lost packets to FeedbackGenerator
Feedback can include lost packets. Ensure FeedbackGenerator support lost packets to be able to use this class properly when testing with loss.

Bug: none
Change-Id: Ibd740dfae358c0543fbee62cd40ef13a7ac1123f
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/247372
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Per Kjellander <perkj@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#35740}
2022-01-19 15:13:51 +00:00
a62dcd815d Export rtc::tracing symbols for use in Chrome Remote Desktop.
Bug: webrtc:13585
Change-Id: I12d88ae59c59bd3bc81b823e7e5a5b56e5e9fb6d
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/247440
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Tomas Gunnarsson <tommi@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#35739}
2022-01-19 12:23:14 +00:00
4f8a58c3d2 Remove 2 Invokes to the network thread when creating a channel.
...and one when destroying a channel object.

This CL removes Init_n() and Deinit_n() from the BaseChannel class.
Channel classes now use SetRtpTransport to do initialization and
uninitialization on the network thread.

Notably if an implementation has called SetRtpTransport() with a valid
transport pointer, it is required that SetRtpTransport be called again
with a nullptr before the channel object can be deleted.

In situations where multiple channels are created, this can mean
a substantial reduction in thread hops. We still hop to the worker
in order to construct the objects - this can probably be avoided
and SetChannel() is still a synchronous operation for the transceivers.
Furthermore, teardown of channel objects also still happens
synchronously and across network/worker/signaling threads.

Bug: webrtc:11992
Change-Id: I68ca7596e181fc82996e3e290733d97381aa5e78
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/246740
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Tomas Gunnarsson <tommi@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#35738}
2022-01-19 12:17:47 +00:00
4f19950660 Reland "Remove some default implementations in api/rtp_transcever_interface"
This reverts commit 226a2e32d03df3a2cf4bf3c616ac00dcd91ed3d2.

Reason for revert: Downstream fixed (will submit when true)

Original change's description:
> Revert "Remove some default implementations in api/rtp_transcever_interface"
>
> This reverts commit 40941ee72d30676296f3545004e7a6e30b959612.
>
> Reason for revert: breaks downstream project
>
> Original change's description:
> > Remove some default implementations in api/rtp_transcever_interface
> >
> > Bug: webrtc:11839
> > Change-Id: I6ddc0468e75bc346e12fc3dc64236ca2ab52e708
> > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/244504
> > Reviewed-by: Henrik Boström <hbos@webrtc.org>
> > Commit-Queue: Harald Alvestrand <hta@webrtc.org>
> > Cr-Commit-Position: refs/heads/main@{#35701}
>
> # Not skipping CQ checks because original CL landed > 1 day ago.
>
> Bug: webrtc:11839
> Change-Id: I8a3eb0a279b28ed8b55745af97596c4a853669be
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/247186
> Reviewed-by: Björn Terelius <terelius@webrtc.org>
> Owners-Override: Artem Titov <titovartem@webrtc.org>
> Commit-Queue: Artem Titov <titovartem@webrtc.org>
> Cr-Commit-Position: refs/heads/main@{#35713}

# Not skipping CQ checks because this is a reland.

Bug: webrtc:11839
Change-Id: Ie25f1a5fdb4ef8ebf200780755a69dc09dd28ccb
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/247189
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Reviewed-by: Artem Titov <titovartem@webrtc.org>
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#35737}
2022-01-19 11:32:24 +00:00
4b5caee6b1 VP9 encoder: mark only base spatial layer as keyframe
Bug: webrtc:13576
Change-Id: Ia4173d3aa2c8e546a818eccc5d6c09d1150dcaf4
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/247188
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Commit-Queue: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#35736}
2022-01-19 11:09:34 +00:00
376bd6da72 Add nogncheck to InternalDecoderFactory conditionally included header file.
Bug: none
Change-Id: I8306d3ee538d715d5adb72b0097d8f7517d456e6
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/247368
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Commit-Queue: Philip Eliasson <philipel@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#35735}
2022-01-19 10:50:37 +00:00
ff2613a408 Roll chromium_revision 717647da6a..dbfaeed330 (960752:960866)
Change log: 717647da6a..dbfaeed330
Full diff: 717647da6a..dbfaeed330

Changed dependencies
* src/base: 2acb4e01f6..d37282a1d2
* src/build: f3be6e847f..21fa0a4b70
* src/ios: 0327b12c14..21baa4881e
* src/testing: 4172ce6866..8658b9fe34
* src/third_party: 20d4b41aba..46fbd90659
* src/third_party/googletest/src: c9643a2e45..100f6fbf5f
* src/third_party/perfetto: 56f2ccce05..5a202e1c1c
* src/tools: f0459c3331..8cac5b8c3c
DEPS diff: 717647da6a..dbfaeed330/DEPS

No update to Clang.

BUG=None

Change-Id: Idb3a5831646eb85a93c9ec618d7d6620c5000350
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/247620
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@{#35734}
2022-01-19 10:40:04 +00:00
408a46c36c Don't disable frame dropping in screenshare tests
Sync test settings with changes made in prod in
https://webrtc-review.googlesource.com/c/src/+/242965

Bug: webrtc:9734
Change-Id: Id2055b125802d47d7df4fb10aa99b565d47dba8f
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/247369
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Sergey Silkin <ssilkin@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#35733}
2022-01-19 10:06:05 +00:00
91d39752ba Follow-up of 'Get WebRTC building for Mac Catalyst'
This CL adds a missing "else" branch to add :metal_objc if the
target is iOS/Catalist.

Originally suggested https://webrtc-review.googlesource.com/c/src/+/224200/5#message-b43a38aa326df0133ae8f8af71c443d0c05098a8.

Bug: webrtc:11516
Change-Id: I27746926a853cad9c2c7079f155dd858f04f1792
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/245400
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Kári Helgason <kthelgason@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#35732}
2022-01-19 09:33:06 +00:00
3ea5f714a9 Update WebRTC code version (2022-01-19T04:05:25).
Bug: None
Change-Id: Id88a3636893ec42df8b288673a083073e5d904b4
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/247560
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@{#35731}
2022-01-19 05:03:21 +00:00
f495dc978c Roll chromium_revision b778ca16ad..717647da6a (960554:960752)
Change log: b778ca16ad..717647da6a
Full diff: b778ca16ad..717647da6a

Changed dependencies
* src/base: 5a79307ad0..2acb4e01f6
* src/build: 0c2f19b92f..f3be6e847f
* src/ios: bb59c45456..0327b12c14
* src/testing: 8870c3790e..4172ce6866
* src/third_party: 591213e212..20d4b41aba
* src/third_party/depot_tools: fd7427ccf6..cb340f5b7b
* src/third_party/freetype/src: d118bf8e35..773e31c783
* src/third_party/perfetto: 80ed61adcb..56f2ccce05
* src/tools: 42c0c7230c..f0459c3331
DEPS diff: b778ca16ad..717647da6a/DEPS

No update to Clang.

BUG=None

Change-Id: I1fc19ea71c56edb1ed28c72f4363069e10655c19
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/247501
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@{#35730}
2022-01-19 02:43:45 +00:00
ed0c7256be Optimize MatchedFilter.
Changing to an index for-loop (instead of using std::max_element & std::distance) tracking even & odd elements separately allows the compiler to produce code with less pipeline stall.

Bug: None
Change-Id: Iaa3e820a3a3b61e2eb276f0dac9106c848db1891
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/240061
Reviewed-by: Per Åhgren <peah@webrtc.org>
Commit-Queue: Christian Schuldt <cschuldt@google.com>
Cr-Commit-Position: refs/heads/main@{#35729}
2022-01-19 00:08:24 +00:00
ac506bddcf PipeWire capturer: disconnect receiving stream on Xdp::Session::Closed signal
When screencast session is closed, there won't be any other stream we
can reconnect to and in that case we are supposed to disconnect our
stream to prevent accidentally connecting to any other stream in case it
gets assigned same node ID from PipeWire

Bug: webrtc:13429
Change-Id: Iec8e93a108c789c32cb93e1460e693fabc247491
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/241086
Reviewed-by: Alexander Cooper <alcooper@chromium.org>
Commit-Queue: Alexander Cooper <alcooper@chromium.org>
Cr-Commit-Position: refs/heads/main@{#35728}
2022-01-18 22:24:06 +00:00
3376f974af Roll chromium_revision d7553eaf04..b778ca16ad (960405:960554)
Change log: d7553eaf04..b778ca16ad
Full diff: d7553eaf04..b778ca16ad

Changed dependencies
* src/base: fb0a533483..5a79307ad0
* src/build: cd950ebebf..0c2f19b92f
* src/ios: b890bd865f..bb59c45456
* src/testing: 1b45dcd24a..8870c3790e
* src/third_party: d3e80ef189..591213e212
* src/third_party/perfetto: d7dfde628c..80ed61adcb
* src/tools: 995cd2769f..42c0c7230c
DEPS diff: d7553eaf04..b778ca16ad/DEPS

No update to Clang.

BUG=None

Change-Id: Iaf14c3a9e2f6cbe93d9140f6d5dc917cee273ba9
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/247460
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@{#35727}
2022-01-18 20:26:23 +00:00