Commit Graph

35183 Commits

Author SHA1 Message Date
c98687a2ef Replace "(const override)" with "(const, override)" in GMOCKs
Just applied a short sed script. See bug description for
the motiviation for this change.

This is the command that was used to generate the changes:
$ find . -type f \( -iname '*.cc' -o -iname '*.h' \) -print0 | \
      xargs -0 sed -i -e 's/(const override)/(const, override)/'

Bug: webrtc:13090
Change-Id: Iec7d280f9d55263a972dbb3bd644ebfcd2eb38cf
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/249088
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Ali Tofigh <alito@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#35801}
2022-01-26 10:59:40 +00:00
236d7e7e46 Factor out access to Call::receive_rtp_config_
This CL adds a SequenceChecker, receive_11993_checker_, specifically for
variables that need to move to the network thread. Once migrated,
the checker will be replaced with a check for the network thread.

In the meantime, the checker will match with one of worker [x]or
network threads.

As a first step, this checker is used to isolate access to
`receive_rtp_config_` which is used from object factory paths (Create/
Destroy routines) as well as paths that handle network packets.

Bug: webrtc:11993
Change-Id: Ia58423583cf99492018f218eb1640535e3919193
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/249080
Reviewed-by: Niels Moller <nisse@webrtc.org>
Commit-Queue: Tomas Gunnarsson <tommi@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#35800}
2022-01-26 10:54:40 +00:00
e20865b3ef Roll chromium_revision a255778ed0..caf5554d86 (963344:963450)
Change log: a255778ed0..caf5554d86
Full diff: a255778ed0..caf5554d86

Changed dependencies
* src/base: f012b10ec7..69c24cddaf
* src/build: 1c8bf9081f..6b8cad1136
* src/ios: fa76094d85..0b81366bae
* src/testing: e57e877ab9..6e40a6d5bf
* src/third_party: d3ab616349..a9734ea843
* src/third_party/googletest/src: 3d81736c97..f45d5865ed
* src/tools: d859e7e2c6..5a8b2bda0b
DEPS diff: a255778ed0..caf5554d86/DEPS

No update to Clang.

BUG=None

Change-Id: Ic9cf0d9f80ce3af90ef78ad59d2502445ac035b2
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/249342
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@{#35799}
2022-01-26 10:50:01 +00:00
16de21696a Delete channel objects asynchronously from the transceiver.
Move deletion of channel objects over to the RtpTransceiver instead
of having it done by SdpOfferAnswer.

The deletion is now also done via PostTask rather than Invoke.

Bug: webrtc:11992, webrtc:13540
Change-Id: I5aff14956d5e572ca8816bbfef8739bb609b4484
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/248170
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Tomas Gunnarsson <tommi@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#35798}
2022-01-26 10:39:00 +00:00
62b01db428 VideoStreamEncoder - wait less.
Some of the state that's managed in VideoStreamEncoder, is updated
and accessed on the encoder queue, but a method that's used for testing
only (GetAdaptationResources()), represents a race between PostTask
operations that update state and checking for said state on the worker
thread.

This CL removes Wait() operations related to adaptation resources from
the common path and puts one in the test path instead.

Bug: webrtc:13612
Change-Id: Ie3e018e815e24951bc0634ed70de17eaf336a508
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/249220
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Commit-Queue: Tomas Gunnarsson <tommi@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#35797}
2022-01-26 09:53:33 +00:00
ec803b3ef0 Remove gradle_project_test because it's not maintained.
This test was failing in 2017 and was disabled then.
https://crbug.com/webrtc/8642
It being removed because it doesn't really help to have failing tests as examples.

Bug: webrtc:13595
Change-Id: Ifa5d9b1068a65e699e0db1f59b2b227654c67637
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/247903
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Christoffer Jansson <jansson@google.com>
Reviewed-by: Xavier Lepaul‎ <xalep@webrtc.org>
Commit-Queue: Xavier Lepaul‎ <xalep@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#35796}
2022-01-26 09:24:41 +00:00
5f133dbc29 Field trial for pacing relative lower link capacity
This adds a field trial to change the pacing rate to pace
at a rate relative to max(bwe ,lower link capacity)





Bug: none
Change-Id: Ibe9ef3e08eb422e9abff6488780e82188958eeeb
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/248865
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Commit-Queue: Per Kjellander <perkj@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#35795}
2022-01-26 09:03:13 +00:00
7f761573b3 Cleanup of pc/proxy.h
Avoid implicit conversion from rtc::scoped_refptr to raw pointer, when
calling the MethodCall and ConstMethodCall constructors. Fixed by
defining a private accessor T* c() which always returns a raw pointer,
with different implementation for BEGIN_PROXY_MAP and
BEGIN_OWNED_PROXY_MAP.

Avoid using the same name for macro argument and function argument
within the macro definition, like `c` in:

```
#define PRIMARY_PROXY_MAP_BOILERPLATE(c) \
 protected: \
  c##ProxyWithInternal(rtc::Thread* primary_thread, INTERNAL_CLASS* c) \
      : primary_thread_(primary_thread), c_(c) {} \
```

Fixed by using `class_name` as the macro argument throughout.

Bug: webrtc:13464
Change-Id: I9faf095b004afd5225f5ec09fb782ef4b5c9dc5d
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/249089
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#35794}
2022-01-26 09:02:11 +00:00
a36f10bd73 Add a way to set keyframe request method on VideoReceiveStream
This patch adds a method for setting the keyframe request method
to VideoReceiveStream.

This code exists in the version that Mozilla is shipping, with a review
https://phabricator.services.mozilla.com/D105773 .

Bug: webrtc:13486
Change-Id: I7cc19dec95d6523368d73395319854bd8c2166f7
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/240140
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Commit-Queue: Stefan Holmer <stefan@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#35793}
2022-01-26 08:09:40 +00:00
8a09610219 Update WebRTC code version (2022-01-26T04:06:28).
Bug: None
Change-Id: Ifcb2618ad33f459b85bc732b043965b1ddbd3289
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/249321
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@{#35792}
2022-01-26 05:04:41 +00:00
6a3c2bcfa5 Roll chromium_revision 5505a6af21..a255778ed0 (963228:963344)
Change log: 5505a6af21..a255778ed0
Full diff: 5505a6af21..a255778ed0

Changed dependencies
* src/base: 3511067ea4..f012b10ec7
* src/build: 4ccf6f6d1e..1c8bf9081f
* src/ios: cda1dc6525..fa76094d85
* src/testing: af27e9f310..e57e877ab9
* src/third_party: c24260336c..d3ab616349
* src/third_party/depot_tools: c5f0cbb865..d05a2e0395
* src/tools: b7d497dbfa..d859e7e2c6
DEPS diff: 5505a6af21..a255778ed0/DEPS

No update to Clang.

BUG=None

Change-Id: I514066302bce0901a1d454c211d0ac538f3d2860
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/249300
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@{#35791}
2022-01-26 02:17:00 +00:00
e33f5cf868 Roll chromium_revision e8048e7096..5505a6af21 (963073:963228)
Change log: e8048e7096..5505a6af21
Full diff: e8048e7096..5505a6af21

Changed dependencies
* src/base: 2004dc31c9..3511067ea4
* src/build: 04e66c68e0..4ccf6f6d1e
* src/ios: d4669e01df..cda1dc6525
* src/testing: 74d5680b7f..af27e9f310
* src/third_party: 5985519581..c24260336c
* src/third_party/freetype/src: 02fa26f4cd..267c6918d1
* src/tools: 9651542343..b7d497dbfa
DEPS diff: e8048e7096..5505a6af21/DEPS

No update to Clang.

BUG=None

Change-Id: I84441b4c606f4c5c0a1a8eff6671d42ed643e55e
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/249240
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@{#35790}
2022-01-25 22:24:29 +00:00
3f06d23d2f Roll chromium_revision 2d23298755..e8048e7096 (962971:963073)
Change log: 2d23298755..e8048e7096
Full diff: 2d23298755..e8048e7096

Changed dependencies
* src/base: e43e377270..2004dc31c9
* src/build: 949b669bd9..04e66c68e0
* src/buildtools/third_party/libc++abi/trunk: 579d5e5496..e4cc353cbf
* src/ios: 12759562b3..d4669e01df
* src/testing: 427e716890..74d5680b7f
* src/third_party: 0faf387dbb..5985519581
* src/tools: cf9c29a689..9651542343
DEPS diff: 2d23298755..e8048e7096/DEPS

No update to Clang.

BUG=None

Change-Id: Ia6fc66ddabba91ba4279b3eb583d6a302dbe966c
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/249180
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@{#35789}
2022-01-25 19:31:29 +00:00
f602a389ea Roll chromium_revision 2962054fb0..2d23298755 (961809:962971)
Change log: 2962054fb0..2d23298755
Full diff: 2962054fb0..2d23298755

Changed dependencies
* src/base: e622bde14a..e43e377270
* src/build: 906b90c327..949b669bd9
* src/buildtools/linux64: git_revision:80a40b07305373617eba2d5878d353532af77da3..git_revision:0725d7827575b239594fbc8fd5192873a1d62f44
* src/buildtools/mac: git_revision:80a40b07305373617eba2d5878d353532af77da3..git_revision:0725d7827575b239594fbc8fd5192873a1d62f44
* src/buildtools/third_party/libc++abi/trunk: fd0ef6db30..579d5e5496
* src/buildtools/third_party/libunwind/trunk: 295f84c04f..c8a5d430f2
* src/buildtools/win: git_revision:80a40b07305373617eba2d5878d353532af77da3..git_revision:0725d7827575b239594fbc8fd5192873a1d62f44
* src/ios: 015f2c06aa..12759562b3
* src/testing: 9ef62302b2..427e716890
* src/third_party: b4a203e0e4..0faf387dbb
* src/third_party/androidx: cvnN-qE6n5AuBxEsTtzpda1KG8oF_QAjRf62bBkmqhkC..tD6afWCDy8ThEQz5eRDILYCo5Oa0bZ0-daMLVxkS_7QC
* src/third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/8bc3659ded..d90eeee993
* src/third_party/depot_tools: b8f1ca3058..c5f0cbb865
* src/third_party/freetype/src: 0b635b1eb2..02fa26f4cd
* src/third_party/googletest/src: 2ddfdf819d..3d81736c97
* src/third_party/perfetto: bda2a707d5..d7b55ea623
* src/third_party/turbine: 8Wzi8_CpwqQkJeczCQavMiPI6wJMCSLh_4jpRwUIlSkC..RkSl7-UvBXltU55m5zi387oPTAJqTj3Oz6nIpQkOI4wC
* src/tools: 7f40597977..cf9c29a689
* src/tools/luci-go: git_revision:5b02a4aaeb5fd78d6fe41d6d54d1cb58da17f192..git_revision:09f8b3edbbf18dc63d0d5aa7722ae7acc20b11b4
* src/tools/luci-go: git_revision:5b02a4aaeb5fd78d6fe41d6d54d1cb58da17f192..git_revision:09f8b3edbbf18dc63d0d5aa7722ae7acc20b11b4
DEPS diff: 2962054fb0..2d23298755/DEPS

No update to Clang.

BUG=None

Change-Id: Ibe65423698c7314d33fb6f239b2fba45882bab3f
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/249160
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@{#35788}
2022-01-25 16:23:28 +00:00
7eac6caeee Don't use wall clock for stats
This uses the local NTP clock for RTCP report block stats.

This code exists in the version that Mozilla is shipping, with a review
here https://phabricator.services.mozilla.com/D127709 .

Bug: webrtc:13484
Change-Id: I2f46ec02acab0bbb09040778b05b248c2d815bd1
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/240142
Reviewed-by: Artem Titov <titovartem@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#35787}
2022-01-25 15:39:53 +00:00
027c793c57 Replace most explicit new RefCountedObject... with make_ref_counted
Bug: webrtc:12701
Change-Id: Iab91f1e96715eed7f9ddcfe1ca55510a18c817eb
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/224544
Reviewed-by: Artem Titov <titovartem@webrtc.org>
Reviewed-by: Tomas Gunnarsson <tommi@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#35786}
2022-01-25 14:28:12 +00:00
b428d6bad4 Add perkj@ as owner of congestion_controller
And remove srte and crodbro since they are no longer active.

Bug: none
Change-Id: I218e078c2803770cce93e3acb53cebd4eb771171
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/249082
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Commit-Queue: Per Kjellander <perkj@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#35785}
2022-01-25 11:21:23 +00:00
d2a370f1c9 Refactor RtcEvent log events.
Bug: webrtc:11933
Change-Id: I1700f4b75c3608985c9027f7d6a866fef97ec38f
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/246203
Reviewed-by: Per Kjellander <perkj@webrtc.org>
Commit-Queue: Björn Terelius <terelius@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#35784}
2022-01-25 11:14:40 +00:00
8ad0be0ab1 Update link to chromium modern c++ page
The page was renamed in
https://chromium-review.googlesource.com/c/chromium/src/+/3399246

Bug: None
No-Try: true
Change-Id: I7ddfb6c91b61ec071fbac95a30c56161119cc683
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/248863
Auto-Submit: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Artem Titov <titovartem@webrtc.org>
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#35783}
2022-01-25 11:07:43 +00:00
4c72f99d67 FrameBuffer2: Specify high precision repeated tasks.
This unblocks lowering the precision of low precision tasks which are
the default.

Bug: webrtc:13604
Change-Id: Icd663cbbf5b0bf87ac83a4a0abd58699e6e27e8f
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/248862
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Commit-Queue: Henrik Boström <hbos@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#35782}
2022-01-25 10:46:53 +00:00
2dd3915284 Make use of TaskQueue/TaskQueueBase's PostDelayedHighPrecisionTask.
Use cases of TaskQueue or TaskQueueBase that are considered high
precision are updated to make use of PostDelayedHighPrecisionTask
(see go/postdelayedtask-precision-in-webrtc) instead of PostDelayedTask.

The cases here are the ones covered by that document, plus some
testing-only uses. The FrameBuffer2 and DataTracker use cases will
be covered by separate CLs because FrameBuffer2 uses
RepeatingTaskHandle and DataTracker uses dcsctp::Timer.

This protects these use cases against regressions when PostDelayedTask
gets its precision lowered.

This CL also adds TaskQueue::PostDelayedHighPrecisionTask which calls
TaskQueueBase::PostDelayedHighPrecisionTask (same pattern as for
PostDelayedTask).

Bug: webrtc:13604
Change-Id: I7dcab59cbe4d274d27b734ceb4fc06daa12ffd0f
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/248864
Reviewed-by: Erik Språng <sprang@webrtc.org>
Reviewed-by: Tomas Gunnarsson <tommi@webrtc.org>
Commit-Queue: Henrik Boström <hbos@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#35781}
2022-01-25 08:57:36 +00:00
2d3186e001 Introduce a variant of rtc::split that returns a vector of string_view
Intended to be compatible with absl::StrSplit, but without the binary
cost of that dependency.

Bug: webrtc:13579
Change-Id: I167726903d74b8d5f299886cfb3e5d60610ddb93
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/247185
Reviewed-by: Ali Tofigh <alito@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#35780}
2022-01-25 08:25:50 +00:00
3a88dd99c7 Update WebRTC code version (2022-01-25T04:05:44).
Bug: None
Change-Id: I9967224a6bf188e3224ee7fc1002667975ecd2b1
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/249040
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@{#35779}
2022-01-25 06:32:56 +00:00
7abf45fe2c LSC: Apply clang-tidy's modernize-use-bool-literals
The check finds implicit conversions of integer literals to bools:
  bool b1 = 1;
  bool b2 = static_cast<bool>(1);
and transforms them to:
  bool b1 = true;
  bool b2 = true;

Bug: chromium:1290142
Change-Id: I6819a0bd2ca84ecadae08ed9389c17d2652589f4
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/248166
Auto-Submit: Anton Bikineev <bikineev@chromium.org>
Reviewed-by: Magnus Flodman <mflodman@webrtc.org>
Commit-Queue: Anton Bikineev <bikineev@chromium.org>
Cr-Commit-Position: refs/heads/main@{#35778}
2022-01-24 20:42:01 +00:00
9d230d54c7 (Un/)Subscribe RtpVideoSender for feedback on the transport queue.
* RtpVideoSender now registers/unregisters for feedback callback
  inside of SetActive(), which runs on the transport queue.
* Transport feedback is given on the transport queue
* Registration/unregistration for feedback is done on the same
* Removed the last mutex from TransportFeedbackDemuxer.

Ultimately, this work is related to moving state from the Call
class, that's related to network configuration, but due to the code
is currently written is attached to the worker thread, over to the
Transport, where it's used (e.g. suspended_video_send_ssrcs_).

Bug: webrtc:13517, webrtc:11993
Change-Id: I057d0e2597e6cb746b335e0308599cd547350e56
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/248165
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Tomas Gunnarsson <tommi@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#35777}
2022-01-24 19:50:03 +00:00
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