Commit Graph

31661 Commits

Author SHA1 Message Date
7165f48e46 Break out more targets from pc/peerconnection
Bug: webrtc:11967
Change-Id: Id66556186cb76de231bb26433e5ff64fddb55d79
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/187486
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#32379}
2020-10-12 08:55:25 +00:00
9cb42c8690 Move pc/media_stream_track.h to the api/ directory
This file is being accessed from Chrome. Moving it lessens the
dependency of Chrome on files in the pc/ directory, and allows
easier refactoring of pc/.

Bug: webrtc:11967
Change-Id: Iccd568f84e9cf4086e37c58db1b4cba6c376f413
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/187489
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#32378}
2020-10-12 07:28:01 +00:00
72cc54c5b8 Roll chromium_revision 9ef87d9468..c67306a21f (815958:816064)
Change log: 9ef87d9468..c67306a21f
Full diff: 9ef87d9468..c67306a21f

Changed dependencies
* src/base: 4bccf933d9..a9630f28b3
* src/build: e90f69c0ec..8dae5d8e04
* src/ios: 6fbc4decc8..8d2cd40335
* src/testing: 722aa2eb8a..b4cc6eb191
* src/third_party: ee9a0d900e..784e293a5d
* src/tools: 0feb074fd1..a7b322da52
DEPS diff: 9ef87d9468..c67306a21f/DEPS

No update to Clang.

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

Change-Id: Ie3173db4079a68852a9723525b87a4ba30128c82
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/187804
Reviewed-by: Autoroller <chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com>
Commit-Queue: Autoroller <chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#32377}
2020-10-12 06:33:04 +00:00
ae93edf243 Roll chromium_revision d97ea1b0a4..9ef87d9468 (815854:815958)
Change log: d97ea1b0a4..9ef87d9468
Full diff: d97ea1b0a4..9ef87d9468

Changed dependencies
* src/base: 7e67ba54ee..4bccf933d9
* src/build: b66c6b93eb..e90f69c0ec
* src/ios: bf107d0f23..6fbc4decc8
* src/third_party: e679fd5cb6..ee9a0d900e
* src/third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/e9879d106b..cd2eebd327
* src/third_party/depot_tools: 80d095c4dc..b073999c6f
* src/tools: b8e480876f..0feb074fd1
DEPS diff: d97ea1b0a4..9ef87d9468/DEPS

No update to Clang.

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

Change-Id: I9d708606f0b9dec2791bd25e90009d6e3e7e1bf9
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/187640
Reviewed-by: Autoroller <chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com>
Commit-Queue: Autoroller <chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#32376}
2020-10-10 18:37:24 +00:00
3326535126 Roll chromium_revision 9186bb4a7d..d97ea1b0a4 (815743:815854)
Change log: 9186bb4a7d..d97ea1b0a4
Full diff: 9186bb4a7d..d97ea1b0a4

Changed dependencies
* src/base: d441bdffca..7e67ba54ee
* src/build: 5c8d3edbf1..b66c6b93eb
* src/ios: 986fe9192b..bf107d0f23
* src/testing: 5aa697f4d8..722aa2eb8a
* src/third_party: b26d5dabbd..e679fd5cb6
* src/third_party/perfetto: 815983783a..109c355900
* src/tools: 5c6fc72a4a..b8e480876f
DEPS diff: 9186bb4a7d..d97ea1b0a4/DEPS

No update to Clang.

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

Change-Id: Ibf0d428e096fe48684c506482c28e6cca94286dc
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/187540
Reviewed-by: Autoroller <chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com>
Commit-Queue: Autoroller <chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#32375}
2020-10-10 01:03:56 +00:00
55169d89c6 Roll chromium_revision 15eae87dde..9186bb4a7d (815630:815743)
Change log: 15eae87dde..9186bb4a7d
Full diff: 15eae87dde..9186bb4a7d

Changed dependencies
* src/base: e5a46ee795..d441bdffca
* src/build: 2f6a131cc7..5c8d3edbf1
* src/ios: c41a4d93e9..986fe9192b
* src/testing: 5fccab2fe3..5aa697f4d8
* src/third_party: a69f4e6d34..b26d5dabbd
* src/third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/e611beb183..e9879d106b
* src/third_party/perfetto: c251d370b6..815983783a
* src/tools: 548cdef70c..5c6fc72a4a
DEPS diff: 15eae87dde..9186bb4a7d/DEPS

No update to Clang.

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

Change-Id: I5d9a3ce6d24ecc0f1430d7a55fbb26e9f48d8565
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/187502
Reviewed-by: Autoroller <chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com>
Commit-Queue: Autoroller <chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#32374}
2020-10-09 20:49:03 +00:00
294729f33c Support layer skipping in full svc structures with 3 temporal layers
Bug: webrtc:11999
Change-Id: I09d9e9e83f43dc9e552f0dd72ba3e7e588fbab48
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/187346
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#32373}
2020-10-09 18:19:43 +00:00
ff7913204c Revert "Reland "Replace sigslot usages with robocaller library.""
This reverts commit c5f71087589b18bb4df1b78f2c452c4083edf2d9.

Reason for revert: Causes Chromium WPT Tests to fail, preventing rolls.

Sample failed run:
https://ci.chromium.org/p/chromium/builders/try/linux-rel/511995?

Sample logs:

STDERR: # Fatal error in: ../../third_party/webrtc/pc/peer_connection.cc, line 575
STDERR: # last system error: 0
STDERR: # Check failed: (signaling_thread())->IsCurrent()
STDERR: # Received signal 6
STDERR: #0 0x7f81d39e3de9 base::debug::CollectStackTrace()
STDERR: #1 0x7f81d38f9ca3 base::debug::StackTrace::StackTrace()
STDERR: #2 0x7f81d39e393b base::debug::(anonymous namespace)::StackDumpSignalHandler()
STDERR: #3 0x7f81c9054140 (/lib/x86_64-linux-gnu/libpthread-2.31.so+0x1413f)
STDERR: #4 0x7f81c8d72db1 gsignal
STDERR: #5 0x7f81c8d5c537 abort
STDERR: #6 0x7f81c7344032 rtc::webrtc_checks_impl::FatalLog()
STDERR: #7 0x7f81c722e5c0 webrtc::webrtc_function_impl::CallHelpers<>::CallInlineStorage<>()
STDERR: #8 0x7f81c7348d99 webrtc::robo_caller_impl::RoboCallerReceivers::Foreach()
STDERR: #9 0x7f81c72d6e8e webrtc::webrtc_function_impl::CallHelpers<>::CallInlineStorage<>()
STDERR: #10 0x7f81c7348d99 webrtc::robo_caller_impl::RoboCallerReceivers::Foreach()
STDERR: #11 0x7f81c71c6df3 webrtc::webrtc_function_impl::CallHelpers<>::CallInlineStorage<>()
STDERR: #12 0x7f81c7348d99 webrtc::robo_caller_impl::RoboCallerReceivers::Foreach()
STDERR: #13 0x7f81c73135bc rtc::OpenSSLStreamAdapter::ContinueSSL()
STDERR: #14 0x7f81c7312fd4 rtc::OpenSSLStreamAdapter::OnEvent()
STDERR: #15 0x7f81c71c30d9 cricket::StreamInterfaceChannel::OnPacketReceived()
STDERR: #16 0x7f81c71c640a cricket::DtlsTransport::OnReadPacket()
STDERR: #17 0x7f81c71cad61 cricket::P2PTransportChannel::OnReadPacket()
STDERR: #18 0x7f81c71bc90f cricket::Connection::OnReadPacket()
STDERR: #19 0x7f81c71e6255 cricket::UDPPort::HandleIncomingPacket()
STDERR: #20 0x7f81cd1f1bff blink::(anonymous namespace)::IpcPacketSocket::OnDataReceived()
STDERR: #21 0x7f81cd1f645d blink::P2PSocketClientImpl::DataReceived()
STDERR: #22 0x7f81cd50a16b network::mojom::blink::P2PSocketClientStubDispatch::Accept()
STDERR: #23 0x7f81d2b4f642 mojo::InterfaceEndpointClient::HandleValidatedMessage()
STDERR: #24 0x7f81d2b5304b mojo::MessageDispatcher::Accept()
STDERR: #25 0x7f81d2b50bb1 mojo::InterfaceEndpointClient::HandleIncomingMessage()
STDERR: #26 0x7f81d2b58a3a mojo::internal::MultiplexRouter::ProcessIncomingMessage()
STDERR: #27 0x7f81d2b57f7f mojo::internal::MultiplexRouter::Accept()
STDERR: #28 0x7f81d2b5304b mojo::MessageDispatcher::Accept()
STDERR: #29 0x7f81d2b48851 mojo::Connector::DispatchMessage()
STDERR: #30 0x7f81d2b492e7 mojo::Connector::ReadAllAvailableMessages()
STDERR: #31 0x7f81d2b490a3 mojo::Connector::OnHandleReadyInternal()
STDERR: #32 0x7f81d2b498f0 mojo::SimpleWatcher::DiscardReadyState()
STDERR: #33 0x7f81d2d0e67a mojo::SimpleWatcher::OnHandleReady()
STDERR: #34 0x7f81d2d0eb2b base::internal::Invoker<>::RunOnce()
STDERR: #35 0x7f81d397f85b base::TaskAnnotator::RunTask()
STDERR: #36 0x7f81d399a04c base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::DoWorkImpl()
STDERR: #37 0x7f81d3999c78 base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::DoWork()
STDERR: #38 0x7f81d391fe64 base::MessagePumpDefault::Run()
STDERR: #39 0x7f81d399a8dc base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::Run()
STDERR: #40 0x7f81d395ae55 base::RunLoop::Run()
STDERR: #41 0x7f81d39c87f2 base::Thread::Run()




Original change's description:
> Reland "Replace sigslot usages with robocaller library."
>
> This is a reland of 40261c3663fe316cfe40262c59cee993165ccf63
>
> Note: Instead of changing the type of JsepTransportController->SignalSSLHandshakeError
> added a new member with a different name and used it in webrtc code.
> After this change do two more follow up CLs to completely remove the old code
> from google3.
>
> Original change's description:
> > Replace sigslot usages with robocaller library.
> >
> > - Replace all the top level signals from jsep_transport_controller.
> > - There are still sigslot usages in this file so keep the inheritance
> >   and that is the reason for not having a binary size gain in this CL.
> >
> > Bug: webrtc:11943
> > Change-Id: I249d3b9710783aef70ba273e082ceeafe3056898
> > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/185540
> > Commit-Queue: Lahiru Ginnaliya Gamathige <glahiru@webrtc.org>
> > Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
> > Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
> > Cr-Commit-Position: refs/heads/master@{#32321}
>
> Bug: webrtc:11943
> Change-Id: Ia07394ee395f94836f6b576c3a97d119a7678e1a
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/186946
> Commit-Queue: Lahiru Ginnaliya Gamathige <glahiru@webrtc.org>
> Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#32359}

TBR=mbonadei@webrtc.org,kwiberg@webrtc.org,glahiru@webrtc.org

Change-Id: I6bce1775d10758ac4a9d05b855f473dd70bd9815
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:11943
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/187487
Reviewed-by: Guido Urdaneta <guidou@webrtc.org>
Commit-Queue: Guido Urdaneta <guidou@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#32372}
2020-10-09 18:07:56 +00:00
c05e9a0f89 Roll chromium_revision eb498e0972..15eae87dde (815502:815630)
Change log: eb498e0972..15eae87dde
Full diff: eb498e0972..15eae87dde

Changed dependencies
* src/base: 56bf79cfe2..e5a46ee795
* src/build: f12b0ac8bf..2f6a131cc7
* src/ios: 7ac99997b3..c41a4d93e9
* src/testing: 26fd14f32d..5fccab2fe3
* src/third_party: beb2078b3a..a69f4e6d34
* src/third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/56df381f78..e611beb183
* src/third_party/perfetto: 7c2d888fdf..c251d370b6
* src/tools: 75b865bc9f..548cdef70c
DEPS diff: eb498e0972..15eae87dde/DEPS

No update to Clang.

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

Change-Id: I5e3a64f9aced3cad25685daca2a2c705b8c924cd
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/187445
Reviewed-by: Autoroller <chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com>
Commit-Queue: Autoroller <chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#32371}
2020-10-09 16:42:13 +00:00
cdebea0f48 stats: s/victim/other
BUG=webrtc:11680

Change-Id: I3bcfdd71647ccf923a19777059dc48ec93581143
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/187358
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Commit-Queue: Philipp Hancke <philipp.hancke@googlemail.com>
Cr-Commit-Position: refs/heads/master@{#32370}
2020-10-09 15:40:13 +00:00
7ef8093f2e Revert "NV12 support for VP8 simulcast"
This reverts commit 76d3e7a8d1539483a8465d6502cc8259e74ccebf.

Reason for revert: Causes multiple Chromium WPT tests to crash, preventing rolls.

Sample failed run:
https://ci.chromium.org/p/chromium/builders/try/win10_chromium_x64_rel_ng/685757?

Sample stack trace:
#0 0x7ff8623fbde9 base::debug::CollectStackTrace()
STDERR: #1 0x7ff862311ca3 [2665012:17:1009/162250.249660:WARNING:timestamp_aligner.cc(131)] too short translated timestamp interval: system time (us) = 3042652370324, interval (us) = 834
STDERR: base::debug::StackTrace::StackTrace()
STDERR: #2 0x7ff8623fb93b base::debug::(anonymous namespace)::StackDumpSignalHandler()
STDERR: #3 0x7ff857a70140 [2665012:17:1009/162250.249947:WARNING:timestamp_aligner.cc(131)] too short translated timestamp interval: system time (us) = 3042652370634, interval (us) = 742
STDERR: (/lib/x86_64-linux-gnu/libpthread-2.31.so+0x1413f)
STDERR: #4 0x7ff85778edb1 gsignal
STDERR: #5 0x7ff857778537 abort
STDERR: #6 0x7ff855d5eee2 [2665012:17:1009/162250.250342:WARNING:timestamp_aligner.cc(131)] too short translated timestamp interval: system time (us) = 3042652371030, interval (us) = 706
STDERR: [2665012:17:1009/162250.250514:WARNING:timestamp_aligner.cc(131)] too short translated timestamp interval: system time (us) = 3042652371204, interval (us) = 963
STDERR: rtc::webrtc_checks_impl::FatalLog()
STDERR: #7 0x7ff855f14e62 webrtc::LibvpxVp8Encoder::PrepareRawImagesForEncoding()
STDERR: #8 0x7ff855f14412 webrtc::LibvpxVp8Encoder::Encode()
STDERR: #9 0x7ff855bae765 webrtc::SimulcastEncoderAdapter::Encode()
STDERR: #10 0x7ff85607d598 webrtc::VideoStreamEncoder::EncodeVideoFrame()
STDERR: #11 0x7ff85607c60d webrtc::VideoStreamEncoder::MaybeEncodeVideoFrame()
STDERR: #12 0x7ff8560816f5 webrtc::webrtc_new_closure_impl::ClosureTask<>::Run()
STDERR: #13 0x7ff855b352b5 (anonymous namespace)::WebrtcTaskQueue::RunTask()
STDERR: #14 0x7ff855b3531e base::internal::Invoker<>::RunOnce()
STDERR: #15 0x7ff86239785b base::TaskAnnotator::RunTask()
STDERR: #16 0x7ff8623c8557 base::internal::TaskTracker::RunSkipOnShutdown()
STDERR: #17 0x7ff8623c7d92 base::internal::TaskTracker::RunTask()
STDERR: #18 0x7ff862415a06 base::internal::TaskTrackerPosix::RunTask()
STDERR: #19 0x7ff8623c75e6 base::internal::TaskTracker::RunAndPopNextTask()
STDERR: #20 0x7ff8623d3a8d base::internal::WorkerThread::RunWorker()
STDERR: #21 0x7ff8623d368d base::internal::WorkerThread::RunPooledWorker()
STDERR: #22 0x7ff862416509 base::(anonymous namespace)::ThreadFunc()
STDERR: #23 0x7ff857a64ea7 start_thread 

Original change's description:
> NV12 support for VP8 simulcast
>
> Tested using video_loopback with generated NV12 frames.
>
> Bug: webrtc:11635, webrtc:11975
> Change-Id: I14b2d663c55a83d80e48e226fcf706cb18903193
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/186722
> Commit-Queue: Evan Shrubsole <eshr@google.com>
> Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#32325}

TBR=ilnik@webrtc.org,eshr@google.com

# Not skipping CQ checks because original CL landed > 1 day ago.

Bug: webrtc:11635
Bug: webrtc:11975
Change-Id: I61c8aed1270bc9c2f7f0577fa5ca717a325f548a
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/187484
Reviewed-by: Guido Urdaneta <guidou@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Commit-Queue: Guido Urdaneta <guidou@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#32369}
2020-10-09 15:32:33 +00:00
6f04b653ae Move the streams concept into sdp_offer_answer
This makes it easier to see that the tying of tracks
to streams affects only the SDP negotiation, and not
what's sent on the wire.

Bug: webrtc:11995
Change-Id: I8ca5adf0050e4a2be55d164a6d0e4d5811582476
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/187359
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#32368}
2020-10-09 13:06:51 +00:00
80fb978990 Reland "Reland "Refactor NetEq delay manager logic.""
This is a reland of 2a7c57c34f323ee1977f6e7809ee23bfcf9a7459

Original change's description:
> Reland "Refactor NetEq delay manager logic."
>
> This is a reland of f8e62fcb14e37a5be4f1e4f599d34c8483fea8e9
>
> Original change's description:
> > Refactor NetEq delay manager logic.
> >
> > - Removes dependence on sequence number for calculating target delay.
> > - Changes target delay unit to milliseconds instead of number of
> >   packets.
> > - Moves acceleration/preemptive expand thresholds to decision logic.
> >   Tests for this will be added in a follow up cl.
> >
> > Bug: webrtc:10333
> > Change-Id: If690aae4abf41ef1d9353f0ff01fb7d121cf8a26
> > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/186265
> > Commit-Queue: Jakob Ivarsson <jakobi@webrtc.org>
> > Reviewed-by: Ivo Creusen <ivoc@webrtc.org>
> > Cr-Commit-Position: refs/heads/master@{#32326}
>
> Bug: webrtc:10333
> Change-Id: Iad5e7063f63b84762959ee5b412f5f14a7b2cd06
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/186943
> Commit-Queue: Jakob Ivarsson <jakobi@webrtc.org>
> Reviewed-by: Ivo Creusen <ivoc@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#32332}

Bug: webrtc:10333
Change-Id: If2244ee9a3d56a0cfa9b602e7bdf448dc6340147
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/187356
Reviewed-by: Ivo Creusen <ivoc@webrtc.org>
Commit-Queue: Jakob Ivarsson <jakobi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#32367}
2020-10-09 13:05:46 +00:00
9577be3693 Use VideoFrameBuffer::CropAndScale in VideoStreamEncoder
This avoids a conversion to I420 for frames that support crop
and scale.

Bug: webrtc:11976
Change-Id: I6517a016403cff3ea7ebce1f3de9f9af8b569933
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/187357
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Commit-Queue: Evan Shrubsole <eshr@google.com>
Cr-Commit-Position: refs/heads/master@{#32366}
2020-10-09 13:02:46 +00:00
4cf8e17e92 Revert "Improve screen sharing with PipeWire on Wayland"
This reverts commit 9b87037073f1811bcdae30967167f30b364e6879.

Reason for revert: Causing compile failures that prevent rolling into chrome.
See https://ci.chromium.org/p/chromium/builders/try/cast_shell_linux/726007
https://chromium-review.googlesource.com/c/chromium/src/+/2461647

Original change's description:
> Improve screen sharing with PipeWire on Wayland
>
> Currently, sharing a screen or a window on Wayland opens unnecessary
> preview dialog on Chromium side, which is then followed by a similar
> dialog on xdg-desktop-portal side. The Chromium dialog is useless on
> Wayland, as it doesn't show anything. This is because Chromium doesn't
> have access to screen content as in case of X11 session. To fix this, we
> want to avoid showing the preview dialog in case we find that we run on
> Wayland and only pick a screen or a window from the dialog that comes
> from xdg-desktop-portal.
>
> This patch splits BaseCapturerPipeWire class, moving portal related code
> into XdgPortalBase, which does all the DBus communication and which is
> supposed to be reused by BaseCapturerPipeWire when the user confirms
> the dialog from xdg-desktop-portal. The XdgPortalBase is extended to
> support multiple calls at once, where each call is identified by Id.
>
> Relevant change on Chromium side will be in a different review.
>
> Bug: chromium:682122
> Change-Id: If8afd36da66231eb154cdc00114908ac897ee4cf
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/160649
> Commit-Queue: Tommi <tommi@webrtc.org>
> Reviewed-by: Tommi <tommi@webrtc.org>
> Reviewed-by: Erik Språng <sprang@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#32342}

TBR=mbonadei@webrtc.org,jamiewalch@chromium.org,tommi@webrtc.org,sprang@webrtc.org,tomas.popela@gmail.com,grulja@gmail.com

# Not skipping CQ checks because original CL landed > 1 day ago.

Bug: chromium:682122
Change-Id: I41518f795e34b84374bc8208b711cfeb0a070578
No-Try: True
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/187352
Commit-Queue: Guido Urdaneta <guidou@webrtc.org>
Reviewed-by: Guido Urdaneta <guidou@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#32365}
2020-10-09 11:49:11 +00:00
3fb94a488c Revert "Guard pipewire configs with rtc_use_pipewire."
This reverts commit 4e8a797e141218c7869ff5bdcb438c61e90784db.

Reason for revert: Required to revert CL causing compile problems that prevent rolling into chrome.
See
https://ci.chromium.org/p/chromium/builders/try/cast_shell_linux/726007
https://chromium-review.googlesource.com/c/chromium/src/+/2461647

Original change's description:
> Guard pipewire configs with rtc_use_pipewire.
>
> [1] has introduced two dependencies on
> //modules/desktop_capture:pipewire_config
> even when rtc_use_pipewire=false, this CL changes the guard in order to
> make sure GN doesn't raise errors when is_linux=true and
> rtc_use_pipewire=false.
>
> [1] - https://webrtc-review.googlesource.com/c/src/+/160649
>
> No-Try: True
> Bug: chromium:682122
> Change-Id: I28d2f10936dd75199a2a98862751708eb1e5615a
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/187122
> Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
> Reviewed-by: Tommi <tommi@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#32345}

TBR=mbonadei@webrtc.org,tommi@webrtc.org,grulja@gmail.com

# Not skipping CQ checks because original CL landed > 1 day ago.

Bug: chromium:682122
Change-Id: Ifc493c0789520b6aa163390c382b6aaff9d732a8
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/187353
Reviewed-by: Guido Urdaneta <guidou@webrtc.org>
Commit-Queue: Guido Urdaneta <guidou@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#32364}
2020-10-09 10:09:01 +00:00
09bd9ba1f3 Allow transceivers to be not found in more cases.
This fixes the case where a media section is rejected in an answer,
something that is done by SFUs, but not possible using transceiver.stop().

Bug: chromium:1134686
Change-Id: Ia33579070093ab70c4191710fd1dcb3ca377befd
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/187349
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#32363}
2020-10-09 09:53:56 +00:00
38e9b06151 Reland "Add scaling interface to VideoFrameBuffer"
(Reland with no changes after the fix to the downstream project)

This can be overriden for kNative frame types to perform scaling efficiently.

Default implementations for existing buffer types require actual
buffer implementation, thus this CL also merges "video_frame"
with "video_frame_I420" build targets.

Originally Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/186303

(Landing with TBR as it's unchaged reland of already approved CL)
TBR=nisse@webrtc.org,sakal@webrtc.org

Bug: webrtc:11976, chromium:1132299
Change-Id: Ia23f7d3e474bd9cdc177104cc5c6d772f04b210f
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/187345
Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#32362}
2020-10-09 08:30:50 +00:00
44d0dff7a9 Move the PeerConnection's usage pattern concept to its own file.
This makes it easier to use it from multiple other modules.

Bug: webrtc:11995
Change-Id: Id23843ae4600ebe46aed7465e873d107089fd50b
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/187347
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#32361}
2020-10-09 08:29:45 +00:00
7d214ed0ac Roll chromium_revision d5540e96b7..eb498e0972 (815386:815502)
Change log: d5540e96b7..eb498e0972
Full diff: d5540e96b7..eb498e0972

Changed dependencies
* src/base: 1fc8c4f8a1..56bf79cfe2
* src/build: aeb6162a8f..f12b0ac8bf
* src/ios: 318ade743b..7ac99997b3
* src/testing: 72a5dbb060..26fd14f32d
* src/third_party: 16772c982f..beb2078b3a
* src/third_party/perfetto: 628c64d7a1..7c2d888fdf
* src/tools: be567bbe91..75b865bc9f
DEPS diff: d5540e96b7..eb498e0972/DEPS

No update to Clang.

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

Change-Id: I9d2bf776e291ddeb4e2577c811d241856465d4dd
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/187441
Reviewed-by: Autoroller <chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com>
Commit-Queue: Autoroller <chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#32360}
2020-10-09 06:42:05 +00:00
c5f7108758 Reland "Replace sigslot usages with robocaller library."
This is a reland of 40261c3663fe316cfe40262c59cee993165ccf63

Note: Instead of changing the type of JsepTransportController->SignalSSLHandshakeError
added a new member with a different name and used it in webrtc code.
After this change do two more follow up CLs to completely remove the old code
from google3.

Original change's description:
> Replace sigslot usages with robocaller library.
>
> - Replace all the top level signals from jsep_transport_controller.
> - There are still sigslot usages in this file so keep the inheritance
>   and that is the reason for not having a binary size gain in this CL.
>
> Bug: webrtc:11943
> Change-Id: I249d3b9710783aef70ba273e082ceeafe3056898
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/185540
> Commit-Queue: Lahiru Ginnaliya Gamathige <glahiru@webrtc.org>
> Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
> Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#32321}

Bug: webrtc:11943
Change-Id: Ia07394ee395f94836f6b576c3a97d119a7678e1a
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/186946
Commit-Queue: Lahiru Ginnaliya Gamathige <glahiru@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#32359}
2020-10-09 03:06:34 +00:00
0591fbb031 Roll chromium_revision e4052fe5b0..d5540e96b7 (815278:815386)
Change log: e4052fe5b0..d5540e96b7
Full diff: e4052fe5b0..d5540e96b7

Changed dependencies
* src/base: ec7145af5d..1fc8c4f8a1
* src/build: 426009aefc..aeb6162a8f
* src/ios: 6fe66b1e44..318ade743b
* src/testing: c92faa0abe..72a5dbb060
* src/third_party: d4c95f68f9..16772c982f
* src/third_party/perfetto: 823a6df243..628c64d7a1
* src/tools: 051f5f55d6..be567bbe91
DEPS diff: e4052fe5b0..d5540e96b7/DEPS

No update to Clang.

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

Change-Id: Ic651bbaf8af0f9dc65dd797aaf0055580941ac2c
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/187402
Reviewed-by: Autoroller <chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com>
Commit-Queue: Autoroller <chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#32358}
2020-10-09 01:05:04 +00:00
33c5b3f664 Roll chromium_revision 20cffe6848..e4052fe5b0 (814194:815278)
Change log: 20cffe6848..e4052fe5b0
Full diff: 20cffe6848..e4052fe5b0

Changed dependencies
* src/base: f3eb7b12e0..ec7145af5d
* src/build: 1bf0c35110..426009aefc
* src/ios: a89fc48a60..6fe66b1e44
* src/testing: 1c37217884..c92faa0abe
* src/third_party: 8629fc0c0e..d4c95f68f9
* src/third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/532e564f62..56df381f78
* src/third_party/depot_tools: 9929780af3..80d095c4dc
* src/third_party/google_benchmark/src: 367119482f..ffe1342eb2
* src/third_party/harfbuzz-ng/src: d03eecb4d6..c39ab82c90
* src/third_party/perfetto: 7cdc44f903..823a6df243
* src/tools: 34b77b3991..051f5f55d6
* src/tools/luci-go: git_revision:83c3df996b224edf5061840744395707a0e513e7..git_revision:576741d3eed0fa33971fb34cd823650e6f5b47fb
* src/tools/luci-go: git_revision:83c3df996b224edf5061840744395707a0e513e7..git_revision:576741d3eed0fa33971fb34cd823650e6f5b47fb
* src/tools/luci-go: git_revision:83c3df996b224edf5061840744395707a0e513e7..git_revision:576741d3eed0fa33971fb34cd823650e6f5b47fb
* src/tools/swarming_client: 44c13d7315..d46ea7635f
DEPS diff: 20cffe6848..e4052fe5b0/DEPS

No update to Clang.

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

Change-Id: I3534fa81249c158704dba73c85f96b10464c6046
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/187401
Reviewed-by: Autoroller <chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com>
Commit-Queue: Autoroller <chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#32357}
2020-10-08 20:52:21 +00:00
bb02db25bb Break out some more pc/ compile targets
Bug: webrtc:11967
Change-Id: I98f1fc24174ca3dc82c69ce8092f543ab172a095
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/186843
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#32356}
2020-10-08 17:36:41 +00:00
b8ca2a18a5 count plan-b/unified-plan usage in SDP answers
the UMA stats currently do not count services like Hangouts that
have "complex" SDP with multiple tracks only in the answer, not in the
offer. Note that this changes the definition of the existing metric.

BUG=chromium:857004

Change-Id: Ib4520a82f7d94cdd4a307d32846e2d26a5f03b90
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/186701
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Philipp Hancke <philipp.hancke@googlemail.com>
Cr-Commit-Position: refs/heads/master@{#32355}
2020-10-08 15:51:21 +00:00
441dbf9a56 Revert "Add scaling interface to VideoFrameBuffer"
This reverts commit c79f1d8cfb48c348692320b05fa31598ed7067ca.

Reason for revert: Breaks downstream project.

Original change's description:
> Add scaling interface to VideoFrameBuffer
>
> This can be overriden for kNative frame types to perform scaling efficiently.
>
> Default implementations for existing buffer types require actual
> buffer implementation, thus this CL also merges "video_frame"
> with "video_frame_I420" build targets.
>
> Bug: webrtc:11976, chromium:1132299
> Change-Id: I3bf5f6bf179db5e7ab165b1c2301980043a08765
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/186303
> Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org>
> Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
> Reviewed-by: Stefan Holmer <stefan@webrtc.org>
> Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
> Reviewed-by: Niels Moller <nisse@webrtc.org>
> Reviewed-by: Evan Shrubsole <eshr@google.com>
> Cr-Commit-Position: refs/heads/master@{#32352}

TBR=mbonadei@webrtc.org,sakal@webrtc.org,ilnik@webrtc.org,nisse@webrtc.org,stefan@webrtc.org,eshr@google.com

Change-Id: I86ac697bf963ef7e2c4f2ed34c3a7bf04f4f1ce1
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:11976
Bug: chromium:1132299
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/187344
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#32354}
2020-10-08 14:16:23 +00:00
b556b08668 Allow encoders to receive preferred pixel formats from native buffers
Adds a field to EncoderInfo called preferred_pixel_formats which a
software encoder populates with the pixel formats it supports. When a
kNative frame is received for encoding, the VideoStreamEncoder will
first try to get a frame that is accessible by the software encoder in
that pixel format from the kNative frame. If this fails it will fallback
to converting the frame using ToI420.

This minimizes the number of conversions made in the case that the
encoder supports the pixel format of the native buffer or where
conversion can be accelerated. For example, in Chromium, the capturer can
emit an NV12 frame, which can be consumed by libvpx which supports NV12.

Testing: Tested in Chrome with media::VideoFrame adapters.

Bug: webrtc:11977
Change-Id: I9becc4100136b0c0128f4fa06dedf9ee4dc62f37
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/187121
Reviewed-by: Niels Moller <nisse@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Reviewed-by: Markus Handell <handellm@webrtc.org>
Commit-Queue: Evan Shrubsole <eshr@google.com>
Cr-Commit-Position: refs/heads/master@{#32353}
2020-10-08 13:47:50 +00:00
c79f1d8cfb Add scaling interface to VideoFrameBuffer
This can be overriden for kNative frame types to perform scaling efficiently.

Default implementations for existing buffer types require actual
buffer implementation, thus this CL also merges "video_frame"
with "video_frame_I420" build targets.

Bug: webrtc:11976, chromium:1132299
Change-Id: I3bf5f6bf179db5e7ab165b1c2301980043a08765
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/186303
Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Reviewed-by: Evan Shrubsole <eshr@google.com>
Cr-Commit-Position: refs/heads/master@{#32352}
2020-10-08 13:33:00 +00:00
2d05878689 Add dummy target that clients can depend on
This will turn into a real target later.

Bug: webrtc:11967
Change-Id: I518e2ab5f2cbb19245683d9e48f2e2555fbe99d9
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/187342
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#32351}
2020-10-08 13:26:20 +00:00
1710706db8 Configure framerate/temporal layers via VideoEncoderConfig.
Bug: none
Change-Id: Ia8d350a8a71ce21691eba38db71248c10a7728a7
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/186663
Commit-Queue: Åsa Persson <asapersson@webrtc.org>
Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#32350}
2020-10-08 09:11:08 +00:00
b6477858ac Cleans up code related to legacy pre-pacing fec generation.
Bug: webrtc:11340
Change-Id: If3493db9fafdd3ad041f78999e304c8714be517f
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/186562
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Commit-Queue: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#32349}
2020-10-08 09:05:29 +00:00
0d1b044db8 RTC_EXPORT NV12BufferInterface
Chrome and other platforms will need access to this class when sending
biplanar buffers to webrtc.

Bug: chromium:1134165
Change-Id: Ia787ab02cb9f302670d6a81e8d4963e7d8fca468
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/187181
Reviewed-by: Niels Moller <nisse@webrtc.org>
Commit-Queue: Evan Shrubsole <eshr@google.com>
Cr-Commit-Position: refs/heads/master@{#32348}
2020-10-08 07:33:17 +00:00
dcef6410b3 Stop using VideoBitrateAllocationObserver in VideoStreamEncoder.
VideoBitrateAllocation is instead reported through the EncoderSink.
Enable VideoBitrateAllocation reporting from WebRtcVideoChannel::AddSendStream in preparation for
using the extension RtpVideoLayersAllocationExtension instead of RTCP XR.

Bug: webrtc:12000
Change-Id: I5ea8e4f237a1c4e84a89cbfd97ac4353d4c2984f
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/186940
Commit-Queue: Per Kjellander <perkj@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#32347}
2020-10-07 18:01:13 +00:00
5c71f779e9 Trigger bots again.
TBR=titovartem@webrtc.org

No-Try: True
Bug: None
Change-Id: I77316dcef6db7f311ea0dd6495463b19934e0eeb
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/187180
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#32346}
2020-10-07 16:00:38 +00:00
4e8a797e14 Guard pipewire configs with rtc_use_pipewire.
[1] has introduced two dependencies on
//modules/desktop_capture:pipewire_config
even when rtc_use_pipewire=false, this CL changes the guard in order to
make sure GN doesn't raise errors when is_linux=true and
rtc_use_pipewire=false.

[1] - https://webrtc-review.googlesource.com/c/src/+/160649

No-Try: True
Bug: chromium:682122
Change-Id: I28d2f10936dd75199a2a98862751708eb1e5615a
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/187122
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Tommi <tommi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#32345}
2020-10-07 15:31:58 +00:00
f25590e00b Revert "Remove placeholder Obj-C headers and use angle-bracketed headers."
This reverts commit 6bfad33fd866e682c871c2ef2172b70b609593d1.

Reason for revert: Breaks downstream project.

Original change's description:
> Remove placeholder Obj-C headers and use angle-bracketed headers.
>
> sdk/objc/Framework/Headers are just a placeholder headers
> for backward compatibility and I don't think it is really need this for now.
> Instead, we can generate the framework header in
> ios/mac_framework_bundle_with_umbrella_header.
> Also clang supports the -Wquoted-include-in-framework-header warning,
> and in Xcode 12, it's in Xcode's recommended settings. This warnings
> can be avoided by replacing double-quoted includes with angle-bracketed
> includes when generate framework headers.
>
> No-Presubmit: True
> Bug: webrtc:9627, webrtc:11984
> Change-Id: I3f6258dfa77a5acee669614005b2747feee35e39
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/185920
> Commit-Queue: Anders Carlsson <andersc@webrtc.org>
> Reviewed-by: Anders Carlsson <andersc@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#32343}

TBR=mbonadei@webrtc.org,andersc@webrtc.org,tommi@webrtc.org,daniel.l@hpcnt.com

Change-Id: I7a6f72ecb8feebf06ad0fe0ecef071da43b98fca
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:9627
Bug: webrtc:11984
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/187160
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#32344}
2020-10-07 14:31:10 +00:00
6bfad33fd8 Remove placeholder Obj-C headers and use angle-bracketed headers.
sdk/objc/Framework/Headers are just a placeholder headers
for backward compatibility and I don't think it is really need this for now.
Instead, we can generate the framework header in
ios/mac_framework_bundle_with_umbrella_header.
Also clang supports the -Wquoted-include-in-framework-header warning,
and in Xcode 12, it's in Xcode's recommended settings. This warnings
can be avoided by replacing double-quoted includes with angle-bracketed
includes when generate framework headers.

No-Presubmit: True
Bug: webrtc:9627, webrtc:11984
Change-Id: I3f6258dfa77a5acee669614005b2747feee35e39
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/185920
Commit-Queue: Anders Carlsson <andersc@webrtc.org>
Reviewed-by: Anders Carlsson <andersc@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#32343}
2020-10-07 13:45:28 +00:00
9b87037073 Improve screen sharing with PipeWire on Wayland
Currently, sharing a screen or a window on Wayland opens unnecessary
preview dialog on Chromium side, which is then followed by a similar
dialog on xdg-desktop-portal side. The Chromium dialog is useless on
Wayland, as it doesn't show anything. This is because Chromium doesn't
have access to screen content as in case of X11 session. To fix this, we
want to avoid showing the preview dialog in case we find that we run on
Wayland and only pick a screen or a window from the dialog that comes
from xdg-desktop-portal.

This patch splits BaseCapturerPipeWire class, moving portal related code
into XdgPortalBase, which does all the DBus communication and which is
supposed to be reused by BaseCapturerPipeWire when the user confirms
the dialog from xdg-desktop-portal. The XdgPortalBase is extended to
support multiple calls at once, where each call is identified by Id.

Relevant change on Chromium side will be in a different review.

Bug: chromium:682122
Change-Id: If8afd36da66231eb154cdc00114908ac897ee4cf
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/160649
Commit-Queue: Tommi <tommi@webrtc.org>
Reviewed-by: Tommi <tommi@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#32342}
2020-10-07 12:58:28 +00:00
ff9f6461b6 Revert "Reland "Refactor NetEq delay manager logic.""
This reverts commit 2a7c57c34f323ee1977f6e7809ee23bfcf9a7459.

Reason for revert: unexpected big changes in behavior.

Original change's description:
> Reland "Refactor NetEq delay manager logic."
>
> This is a reland of f8e62fcb14e37a5be4f1e4f599d34c8483fea8e9
>
> Original change's description:
> > Refactor NetEq delay manager logic.
> >
> > - Removes dependence on sequence number for calculating target delay.
> > - Changes target delay unit to milliseconds instead of number of
> >   packets.
> > - Moves acceleration/preemptive expand thresholds to decision logic.
> >   Tests for this will be added in a follow up cl.
> >
> > Bug: webrtc:10333
> > Change-Id: If690aae4abf41ef1d9353f0ff01fb7d121cf8a26
> > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/186265
> > Commit-Queue: Jakob Ivarsson <jakobi@webrtc.org>
> > Reviewed-by: Ivo Creusen <ivoc@webrtc.org>
> > Cr-Commit-Position: refs/heads/master@{#32326}
>
> Bug: webrtc:10333
> Change-Id: Iad5e7063f63b84762959ee5b412f5f14a7b2cd06
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/186943
> Commit-Queue: Jakob Ivarsson <jakobi@webrtc.org>
> Reviewed-by: Ivo Creusen <ivoc@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#32332}

TBR=ivoc@webrtc.org,jakobi@webrtc.org

Change-Id: Iffda0e8a7b647392d8dfc6724d49439fa13d71b2
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:10333
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/187100
Reviewed-by: Jakob Ivarsson <jakobi@webrtc.org>
Commit-Queue: Jakob Ivarsson <jakobi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#32341}
2020-10-07 12:47:01 +00:00
d0a8f51ef7 Reland Refactor reporting of VideoBitrateAllocation
Original description
 Move reporting of target bitrate to just after the encoder has been
 updated. Originall submitted as refs/heads/master@{#32275}

Patch 1 contains the original cl
,patch 2 the fix to send rtcp even if BWE does not change.

Bug: webrtc:12000
Change-Id: I16766e08229fe1f6f65f449e0e074bed03338693
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/186948
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Per Kjellander <perkj@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#32340}
2020-10-07 11:06:56 +00:00
d9603b276b Update pylintrc to match Chromium style guide.
According to [1], the Chromium Python Style Guide has changed and it
is not requiring any custom change compared to PEP-8.

This CL removes the exceptions from pylintrc.

[1] - https://chromium.googlesource.com/chromium/src/+/master/styleguide/python/python.md#our-previous-python-style

Bug: None
Change-Id: I2c8c8ab20536a4bea094dfa658c9c8391ea30251
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/186664
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#32339}
2020-10-07 10:55:06 +00:00
5b0643d8b6 Revert "Trigger post-submit bots."
This reverts commit 08b62534599ed6fac0b7691adecbc9ea0abbda4a.

Reason for revert: Test once more.

Original change's description:
> Trigger post-submit bots.
>
> TBR=kwiberg@webrtc.org
>
> No-Try: True
> Bug: None
> Change-Id: I4174731ef31e11b04c6893267e58111e1f2da045
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/186947
> Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
> Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#32336}

TBR=mbonadei@webrtc.org,kwiberg@webrtc.org

Change-Id: I0da8220a2217dc794a82c4cea8dda167ee20b1b2
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: None
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/186949
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#32338}
2020-10-07 08:41:45 +00:00
b8781796d4 Revert "Refactor reporting of VideoBitrateAllocation"
This reverts commit 39a31afb77e3ce5c4ff53b8bab06364712cae7ce.

Reason for revert: Will cause RTCP Target bitrate messages to not be sent unless BWE changes. 

Original change's description:
> Refactor reporting of VideoBitrateAllocation
>
> Move reporting of target bitrate to just after the encoder has been
> updated.
>
> Bug: webrtc:12000
> Change-Id: I3e7c5bd44c2f64e5f7e32d6451861b80e0b779ca
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/186041
> Commit-Queue: Per Kjellander <perkj@webrtc.org>
> Reviewed-by: Erik Språng <sprang@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#32275}

TBR=sprang@webrtc.org,perkj@webrtc.org

# Not skipping CQ checks because original CL landed > 1 day ago.

Bug: webrtc:12000
Change-Id: Icf21e6ae28dc17c61b9243c037ffef9b623894ee
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/186945
Reviewed-by: Per Kjellander <perkj@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Per Kjellander <perkj@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#32337}
2020-10-07 08:14:21 +00:00
08b6253459 Trigger post-submit bots.
TBR=kwiberg@webrtc.org

No-Try: True
Bug: None
Change-Id: I4174731ef31e11b04c6893267e58111e1f2da045
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/186947
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#32336}
2020-10-07 07:59:31 +00:00
0abd518abd Revert "Introduce RTC_NO_UNIQUE_ADDRESS."
This reverts commit f5e261aaf65cdf2eb903cdf40d651846be44f447.

Reason for revert: Breaks downstream projects.

Original change's description:
> Introduce RTC_NO_UNIQUE_ADDRESS.
>
> This macro introduces the possibility to suggest the compiler that a
> data member doesn't need an address different from other non static
> data members.
>
> The usage of a macro is to maintain portability since at the moment
> the attribute [[no_unique_address]] is only supported by clang
> with at least -std=c++11 but it should be supported by all the
> compilers starting from C++20.
>
> Bug: webrtc:11495
> Change-Id: I9f12b67b4422a2749649eaa6b004a67d5fd572d8
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/173331
> Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
> Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#32246}

TBR=mbonadei@webrtc.org,kwiberg@webrtc.org

# Not skipping CQ checks because original CL landed > 1 day ago.

Bug: webrtc:11495
Change-Id: Ice318d1b11ca3dff09c190187a0b0a32ca945fe3
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/186944
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Per Kjellander <perkj@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#32335}
2020-10-07 07:37:01 +00:00
84ba18ab14 Make symbolic names for UntypedFunction's inline storage size
Because duplicating constant values in lots of places is bad.

Bug: webrtc:11943
Change-Id: I00107718444bb0433d5ecd860ac0902f8afe2cb0
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/186842
Commit-Queue: Lahiru Ginnaliya Gamathige <glahiru@webrtc.org>
Reviewed-by: Lahiru Ginnaliya Gamathige <glahiru@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#32334}
2020-10-07 01:26:06 +00:00
3e3e16682d Migrates probing end-to-end test to scenario test.
The previous tests ran in real-time making them flaky, so they were
disabled on a number of platforms.
This CL ports the tests 1:1 (sort of) to use the scenario test
framework which runs with simulated time and much less risk of
flakiness.

Bug: webrtc:10155
Change-Id: I6281f57d73883c8aaa91964e9cfa58d9b47779fa
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/186941
Commit-Queue: Erik Språng <sprang@webrtc.org>
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#32333}
2020-10-06 20:51:35 +00:00
2a7c57c34f Reland "Refactor NetEq delay manager logic."
This is a reland of f8e62fcb14e37a5be4f1e4f599d34c8483fea8e9

Original change's description:
> Refactor NetEq delay manager logic.
>
> - Removes dependence on sequence number for calculating target delay.
> - Changes target delay unit to milliseconds instead of number of
>   packets.
> - Moves acceleration/preemptive expand thresholds to decision logic.
>   Tests for this will be added in a follow up cl.
>
> Bug: webrtc:10333
> Change-Id: If690aae4abf41ef1d9353f0ff01fb7d121cf8a26
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/186265
> Commit-Queue: Jakob Ivarsson <jakobi@webrtc.org>
> Reviewed-by: Ivo Creusen <ivoc@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#32326}

Bug: webrtc:10333
Change-Id: Iad5e7063f63b84762959ee5b412f5f14a7b2cd06
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/186943
Commit-Queue: Jakob Ivarsson <jakobi@webrtc.org>
Reviewed-by: Ivo Creusen <ivoc@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#32332}
2020-10-06 18:33:53 +00:00
16e7b515ee Unit test around ProcessThread usage
Bug: webrtc:11989
Change-Id: Ic631e80c4e5db6e3558ff714cc105e5a4874f744
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/186421
Commit-Queue: Tim Na <natim@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Per Åhgren <peah@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#32331}
2020-10-06 17:17:39 +00:00
43546869d6 Notify NetEqController during muted state.
During muted state NetEq shortcircuits a large part of the internals to
quickly return a buffer filled with zeros. It can be beneficial for the
controller to be aware that it is in muted state.

Bug: webrtc:11005
Change-Id: I5fe24b4a3704d953cbd68b5a24bbb7ef58b30be0
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/186760
Commit-Queue: Ivo Creusen <ivoc@webrtc.org>
Reviewed-by: Jakob Ivarsson <jakobi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#32330}
2020-10-06 16:32:04 +00:00