5817 Commits

Author SHA1 Message Date
Sarah Pham
e9c3f0158c Add support for stand-alone Fuchsia build.
When target_os is set to "fuchsia":
BUILD: suppress Wundef flag
DEPS: download the Fuchsia SDK
audio_encoding: add header include
video_capture: video_capture_factory is not yet implemented for Fuchsia
so we add a null capture factory when building for Fuchsia.

Bug: webrtc:14061
Change-Id: Id6ca7418859c85293a0a5e2a8427807ee039db2c
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/262200
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Minyue Li <minyue@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#37030}
2022-05-30 09:24:43 +00:00
Sarah Pham
39b6cb651e Add Fuchsia desktop capturer.
This enables screen sharing on Fuchsia.

Bug: chromium:1322341
Change-Id: I2f52f6bfe7406b5fe36ae904a0cdf30e8168cac5
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/262340
Reviewed-by: Emircan Uysaler <emircan@google.com>
Commit-Queue: Sarah Pham <smpham@google.com>
Reviewed-by: Alexander Cooper <alcooper@chromium.org>
Cr-Commit-Position: refs/heads/main@{#37029}
2022-05-30 09:18:44 +00:00
Per Kjellander
bfd30652b5 Refactor PacingControllerUnitTest
Ensure each test create its own PacerController.
Move (most) operations on the pacer controller to the actual test. (the
rest should be moved too eventually....)
Use only one test fixture.

Bug: none
Change-Id: I0b8eee9d2c2f91f7102858a1a544e45e8b0b7b5d
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/264120
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Commit-Queue: Per Kjellander <perkj@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#37017}
2022-05-27 12:28:33 +00:00
Salman Malik
45a22ffbb7 wayland: Support dynamic resolution changes of pw stream
This change adds support for dynamic resolution adjustment
of pipewire stream.

Bug: chromium:1291247
Change-Id: I87e02484920f795a053a814eb872834ab22c1bd3
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/263680
Commit-Queue: Salman Malik <salmanmalik@google.com>
Reviewed-by: Alexander Cooper <alcooper@chromium.org>
Cr-Commit-Position: refs/heads/main@{#37010}
2022-05-26 19:15:54 +00:00
Peter Kasting
a313ff5bde C++20 fixes.
u8"" no longer produces a char*.  Use "" instead, which also accepts
UTF-8 literals.

Bug: chromium:1284275
Change-Id: Ida84b82670eb1238a606d3fe8c4eb40fbc23165e
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/263760
Auto-Submit: Peter Kasting <pkasting@chromium.org>
Reviewed-by: Mark Foltz <mfoltz@chromium.org>
Commit-Queue: Mark Foltz <mfoltz@chromium.org>
Cr-Commit-Position: refs/heads/main@{#37005}
2022-05-25 20:04:33 +00:00
Jakob Ivarsson
01ab7d501b Use packet arrival history in delay manager.
It replaces the relative arrival delay tracker which is equivalent.

This results in a slight bit-exactness change but nothing that should affect quality.

Bug: webrtc:13322
Change-Id: I6ed5d6fdfa724859122928a8838acce27ac2e5d0
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/263380
Commit-Queue: Jakob Ivarsson‎ <jakobi@webrtc.org>
Reviewed-by: Minyue Li <minyue@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#37004}
2022-05-25 20:03:31 +00:00
Rasmus Brandt
10944e61ac Move JitterEstimator into timing sub-folder
Bug: webrtc:14111
Change-Id: Ic5c66f35e3cedac7a328fbb6613e5cdf13a8005e
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/263582
Commit-Queue: Rasmus Brandt <brandtr@webrtc.org>
Reviewed-by: Åsa Persson <asapersson@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#37000}
2022-05-25 09:15:29 +00:00
Peter Kasting
0921d1e5c1 C++20 fixes.
ABSL_CONST_INIT must be on definitions, not just declarations.

Bug: chromium:1284275
Change-Id: If57064ab9417df38f770c59e50be93a104748b72
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/263282
Auto-Submit: Peter Kasting <pkasting@chromium.org>
Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
Commit-Queue: Rasmus Brandt <brandtr@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36994}
2022-05-25 06:15:29 +00:00
Åsa Persson
37f7d6c4e1 Update VP9Encoder::SupportsScalabilityMode
Indicate that the scalability mode is supported if the scalability config exists.

Bug: webrtc:13960
Change-Id: I6f42da6c9bbff1322ec5c3e3a68c7e031606da86
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/262981
Reviewed-by: Sergey Silkin <ssilkin@webrtc.org>
Commit-Queue: Åsa Persson <asapersson@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36989}
2022-05-24 15:51:53 +00:00
Evan Shrubsole
cc52f07087 Log conflicting video playout delays when min delay set
This is a continuation of https://webrtc-review.googlesource.com/c/src/+/263202
which added logging for max delay. However, if the max delay was already
set and a new min delay was set this logging could have been missed.

Bug: None
Change-Id: I2e7e5bdf920fa68aa723ec8480d564b322813712
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/263480
Reviewed-by: Johannes Kron <kron@google.com>
Commit-Queue: Evan Shrubsole <eshr@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36988}
2022-05-24 15:09:32 +00:00
Gustaf Ullberg
8e87a248de Use a one-dimensional vector for Block data
Puts the whole block in contiguous memory and reduce pointer look-up.

The change has been verified to be bit-exact.

Bug: webrtc:14089
Change-Id: I264aaf764bf53a29f23249105f704b2fdbd7e51c
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/263203
Reviewed-by: Sam Zackrisson <saza@webrtc.org>
Commit-Queue: Gustaf Ullberg <gustaf@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36983}
2022-05-24 11:12:46 +00:00
Ivan Murashov
1e8bb67295 GCC: Avoid symbol clash in RenderBuffer
GCC fails to resolve getter for RenderBuffer::Block() because
its return type has the same name with the getter method.
Rename getter method with the prefix "Get" as guided in the
https://chromium.googlesource.com/chromium/src/+/main/styleguide/c++/blink-c++.md#Precede-setters-with-the-word-Set_use-bare-words-for-getters
"If a getter’s name collides with a type name, prefix it with “Get”."

Bug: chromium:819294, webrtc:14089
Change-Id: Ieaa3af27415eb8c39806aa8480897b47fd07baa8
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/263420
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Gustaf Ullberg <gustaf@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36982}
2022-05-24 10:47:56 +00:00
Salman Malik
f71315c480 Wayland: Allow setting custom resolution
This CL allows the users to propose custom resolution to server
for the captured pipewire streams.

Bug: chromium:1291247
Change-Id: Iaae2c73df1a5f5ebac651ce7d087af4c273113c4
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/263360
Reviewed-by: Alexander Cooper <alcooper@chromium.org>
Commit-Queue: Salman Malik <salmanmalik@google.com>
Cr-Commit-Position: refs/heads/main@{#36979}
2022-05-23 21:51:16 +00:00
Evan Shrubsole
eabaf8d7fe Log when conflicting recv video playout delays are set
There are two cases that can be confusing for applications developers
which may result in the playout delay not being set as intended.

First, it is not well defined which min playout delay should be used
when multiple are set. This changes adds a warning to alert application
developers that they are setting multiple playout delays.

Second, if the playout delay header extension is used, developers must
be careful that the max playout delay is always larger than the min
playout delay, otherwise the behaviour is undefined. This change logs an
error when this case is detected.

Bug: None
Change-Id: I8477d48ef64636da080792362fa898e42f038bef
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/263202
Reviewed-by: Tomas Gunnarsson <tommi@webrtc.org>
Commit-Queue: Evan Shrubsole <eshr@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36977}
2022-05-23 16:37:22 +00:00
Rasmus Brandt
2377226851 Start moving timing helper classes into timing/ sub-folder.
Putting these classes in a sub folder increases
structure and clarifies that they are used as
helper classes. Affected classes in this change:
  * CodecTimer
  * InterFrameDelay
  * RttFilter
VCMTiming will be moved in a separate CL.

Additional changes:
  * Remove VCM prefix from class names.
  * Introduce granular BUILD.gn targets.
  * Update some includes.

Bug: webrtc:14111
Change-Id: Ia75128aa955a819033b97d4784cb61904de7230b
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/262960
Commit-Queue: Rasmus Brandt <brandtr@webrtc.org>
Reviewed-by: Tomas Gunnarsson <tommi@webrtc.org>
Reviewed-by: Åsa Persson <asapersson@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36975}
2022-05-23 13:43:40 +00:00
Rasmus Brandt
fbf66ddddf Move UniqueTimestampCounter to video/
This helper class currently lives in `modules/video_coding`,
but it's only users are in `video/`. Thus, it makes sense to
move the class to `video/`.

Bug: webrtc:14116
Change-Id: I0d3f8961bc8f5fe80f3100dbbd309b206020e6d5
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/262963
Reviewed-by: Åsa Persson <asapersson@webrtc.org>
Commit-Queue: Rasmus Brandt <brandtr@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36973}
2022-05-23 13:21:32 +00:00
Gustaf Ullberg
fbfe6f08a4 AEC3: Correct high-band gain for multi-channel
The high-band gain is corrected by fixing the computation of the
low-band energy

Bug: webrtc:14108
Change-Id: I5033287de57aedcd91bb71623ca2862519ffb35b
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/263201
Commit-Queue: Gustaf Ullberg <gustaf@webrtc.org>
Reviewed-by: Jesus de Vicente Pena <devicentepena@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36972}
2022-05-23 13:09:49 +00:00
Gustaf Ullberg
d3ead1a942 AEC3: 'Block' class
This change adds a Block class to reduce the need for std::vector<std::vector<std::vector<float>>>. This make the code
easier to read and less error prone.

It also enables future changes to the underlying data structure of a
block. For instance, the data of all bands and channels could be stored
in a single vector.

The change has been verified to be bit-exact.

Bug: webrtc:14089
Change-Id: Ied9a78124c0bbafe0e912017aef91f7c311de2ae
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/262252
Reviewed-by: Per Åhgren <peah@webrtc.org>
Commit-Queue: Gustaf Ullberg <gustaf@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36968}
2022-05-23 09:53:46 +00:00
Tommi
f6f4543304 Rename VideoReceiveStream to VideoReceiveStreamInterface
Bug: webrtc:7484
Change-Id: I653cfe46486e0396897dd333069a894d67e3c07b
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/262769
Commit-Queue: Tomas Gunnarsson <tommi@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36958}
2022-05-22 10:54:38 +00:00
Niels Möller
83830f316e Delete TestListener and top-level thread wrapping.
Instead use rtc::AutoThread in tests that need that.

Bug: webrtc:9714
Change-Id: I1f33b1b2d321770d062504dd9ef86d66a345dd42
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/254681
Reviewed-by: Tomas Gunnarsson <tommi@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36950}
2022-05-20 15:21:21 +00:00
Niels Möller
be2fb41b32 Delete codec-specific frameDroppingOn settings.
Followup to https://webrtc-review.googlesource.com/c/src/+/262244

Bug: webrtc:6883
Change-Id: Iefac43709f14424c74470aa878ec512b7dacc68a
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/262258
Commit-Queue: Niels Moller <nisse@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36949}
2022-05-20 14:54:31 +00:00
Niels Möller
c0a9f35248 Define SimulcastStream as an alias for SpatialLayer
Step one in making it a separate type, that will be done as a
followup, after downstream code is updated to use the new name.

Bug: webrtc:11607
Change-Id: I6fa664a0729b1cfd71b7f02b6441880beee0e741
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/262806
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36946}
2022-05-20 13:12:21 +00:00
Jakob Ivarsson
9e6ebfe59c Remove AcmReceiverBitExactnessOldApi tests.
AcmReceiver basically only does resampling, which is not something we need to test for bit-exactness.

NetEq bit-exactness is already tested with the same rtp input file as these tests.

Bug: None
Change-Id: Ibb3936c86098e0eea944860d33e2c13bf046e40b
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/262816
Commit-Queue: Jakob Ivarsson‎ <jakobi@webrtc.org>
Reviewed-by: Minyue Li <minyue@webrtc.org>
Reviewed-by: Henrik Lundin <henrik.lundin@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36944}
2022-05-20 13:05:01 +00:00
Danil Chapovalov
fa6ec69232 Restructure RtcpTransceiver tests to use fake time instead of real time
to make tests faster and more determenistic.

Bug: webrtc:8239
Change-Id: I18067251a1f1a349fda28bbfbb59bce333bfddca
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/201737
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Per Kjellander <perkj@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36938}
2022-05-20 07:52:29 +00:00
Niels Möller
65b2d8ad21 Move RunLoop test class to its own build target
To make it usable in tests without depending on all of CallTest.

Bug: None
Change-Id: Ie3102ab71bcfe3862dd6c35d3285098e961e54df
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/262807
Reviewed-by: Tomas Gunnarsson <tommi@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36932}
2022-05-19 15:51:39 +00:00
Jianhui Dai
b1ba85385e Eliminate unnecessary RTC_TRACE_EVENTS_ENABLED
Bug: webrtc:14073
Change-Id: I6365cc17393be52c11312dfa954783a3e135cb8c
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/262263
Reviewed-by: Erik Språng <sprang@webrtc.org>
Reviewed-by: Johannes Kron <kron@webrtc.org>
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36929}
2022-05-19 09:52:47 +00:00
Niels Möller
cf2c8915f4 Delete H264EncoderSpecificSettings
Production code always use the default settings.

Bug: webrtc:6883
Change-Id: I213fc6433bb1cd0a6623ad523fee2df1506588e1
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/261903
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36926}
2022-05-18 13:53:20 +00:00
Niels Möller
304b78d3d9 Delete a few unused methods on DecoderDatabase
Bug: none
Change-Id: Ic0a20036b92e0f1d088bae88724a777eca93760d
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/262763
Reviewed-by: Minyue Li <minyue@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36924}
2022-05-18 11:22:21 +00:00
Asa Persson
cde992ddad Add support for VP9 configuration through scalability mode.
Bug: webrtc:13960
Change-Id: Ia930647b15f624a4d10d8d335519b69ffdae6636
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/260983
Commit-Queue: Åsa Persson <asapersson@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Reviewed-by: Sergey Silkin <ssilkin@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36919}
2022-05-18 08:21:00 +00:00
Peter Kasting
f92a0846c3 Fix build in C++20 mode.
Structs with user-declared constructors are not aggregates and cannot
be initialized with designated initializers.  Remove declarations that
don't actually affect anything.

Bug: chromium:1284275
Change-Id: Ib45ea334d7be28bfa7bbce132985612f0e6ecd10
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/262820
Auto-Submit: Peter Kasting <pkasting@chromium.org>
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Commit-Queue: Philip Eliasson <philipel@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36916}
2022-05-18 06:47:30 +00:00
Danil Chapovalov
c5aa5bea49 Delete deprecated VP8Encoder::Create function
Bug: None
Change-Id: I42e5d846d3d012f8b85eede743202b84239ceef1
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/262764
Commit-Queue: Philip Eliasson <philipel@webrtc.org>
Auto-Submit: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36914}
2022-05-17 13:23:24 +00:00
Jakob Ivarsson
a9f10c8189 Make fake decode from file produce 10 ms comfort noise frames.
This is to more accurately simulate Opus CNG.

Bug: None
Change-Id: I3244d88e1f7410190551b6fa24cdd08599b5771e
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/262661
Reviewed-by: Minyue Li <minyue@webrtc.org>
Commit-Queue: Jakob Ivarsson‎ <jakobi@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36913}
2022-05-17 13:11:34 +00:00
Per Kjellander
88af20356f Use ProbeClusterConfig in BitrateProber from GoogCC
Instead of using field trials in BitrateProber for probe duration, use values provided in ProbeClusterConfig from GoogCC.
Field trials are instead read in ProbeController.

To avoid having to do a thread jump for every ProbeClusterConfig, RtpPacketPacer interface is changed to RtpPacketPacer::CreateProbeClusters(std::vector<ProbeClusterConfig>

Deprecates field trial  "WebRTC-Bwe-ProbingConfiguration"

Change-Id: I3991e4b54770601855a3af2d6a16678f11d41c31
Bug: webrtc:14027
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/261265
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Per Kjellander <perkj@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36911}
2022-05-17 12:29:25 +00:00
Jeremy Leconte
d01e692e01 Fix flakiness of CheckLogLevelUpdateStatsEmpty.
Bug: b/232719223
Change-Id: I26bdb10bb7bae89f8a99b8c4db14609ae9bfda50
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/262620
Reviewed-by: Hanna Silen <silen@webrtc.org>
Commit-Queue: Jeremy Leconte <jleconte@google.com>
Reviewed-by: Gustaf Ullberg <gustaf@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36909}
2022-05-17 11:57:35 +00:00
Danil Chapovalov
39bc030e0b Delete deprecated functions in RempoteNtpTimeEstimator
Bug: webrtc:13757
Change-Id: Ie9cdb41de956df1b6877c8b86fd1829fdcd35043
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/262761
Reviewed-by: Erik Språng <sprang@webrtc.org>
Auto-Submit: Danil Chapovalov <danilchap@webrtc.org>
Commit-Queue: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36908}
2022-05-17 11:12:25 +00:00
Erik Språng
f47e941dbd Remove deprecated PacingController constructor
Bug: webrtc:10809
Change-Id: Ic913bd81dc5d043e4307f3b7f80ecacc78852d7f
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/262760
Auto-Submit: Erik Språng <sprang@webrtc.org>
Commit-Queue: Erik Språng <sprang@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36906}
2022-05-17 09:59:14 +00:00
Tommi
8814dfd124 Remove RTCPReceiver::main_ssrc_.
RTCPReceiver::main_ssrc_ and local_media_ssrc() represent the same
value but could get out of sync when `set_media_ssrc()` was called.

Instead of using main_ssrc_, just use the local_media_ssrc() accessor.

Bug: webrtc:11993
Change-Id: I2b034287e6b6025d9b0d2affa391a168896a614b
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/262663
Commit-Queue: Tomas Gunnarsson <tommi@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36905}
2022-05-17 09:28:54 +00:00
Jan Grulich
43feb9e5a2 Check PipeWire server version when dropping single modifier
PipeWire server in older versions would mark the negotiation as
finished and start creating buffers.

Upstream bug: https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/1732

Bug: webrtc:13429
Change-Id: I7194e6672716d7fef1c2aadc40d3acf55cb282a2
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/262621
Reviewed-by: Alexander Cooper <alcooper@chromium.org>
Commit-Queue: Alexander Cooper <alcooper@chromium.org>
Cr-Commit-Position: refs/heads/main@{#36901}
2022-05-16 18:30:34 +00:00
Erik Språng
6aa5cea4d3 Remove periodic mode from PacingController.
This completes the removal of the legacy pacer.

Bug: webrtc:10809
Change-Id: I8962ad56aa673f46b2c0e2cf8a5630e2c9942c92
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/262421
Reviewed-by: Per Kjellander <perkj@webrtc.org>
Commit-Queue: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36900}
2022-05-16 15:56:34 +00:00
Jakob Ivarsson
c782cf883c Introduce a stable playout delay mode for NetEq.
A packet arrival history is used to store the timing of incoming packets and tracks the earliest and latest packets by taking the difference between rtp timestamp and arrival time. The history is windowed to 2 seconds by default. The packet arrival history will replace the relative arrival delay tracker in a follow up cl.

The playout delay is estimated by taking the difference between the current playout timestamp and the earliest packet arrival in the history. This method works better when DTX is used compared to the buffer level filter that it replaces.

The threshold for acceleration is changed to be the maximum of the target delay and the maximum packet arrival delay in the history. This prevents any acceleration immediately after an underrun and gives some time to adapt the target delay to new network conditions.

The logic when to decode the next packet after a packet loss is also changed to do concealment for the full loss duration unless the delay is too high.

The new mode is default disabled and can be enabled using a field trial.

Bug: webrtc:13322,webrtc:13966
Change-Id: Idfa0020584591261475b9ca350cc7c6531de9911
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/259820
Reviewed-by: Minyue Li <minyue@webrtc.org>
Commit-Queue: Jakob Ivarsson‎ <jakobi@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36899}
2022-05-16 15:39:14 +00:00
Asa Persson
2698353d43 Disable quality scaling if multiple spatial layers are requested for VP9
VP9 automaticResizeOn is disabled if more than one spatial layer is configured via scalability mode.

Bug: webrtc:13960
Change-Id: I7c6351bca6d2f32bcc7391894e8dcc9e74ca2050
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/261315
Reviewed-by: Niels Moller <nisse@webrtc.org>
Commit-Queue: Åsa Persson <asapersson@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36897}
2022-05-16 15:11:24 +00:00
Erik Språng
f3f3a61167 Remove legacy PacedSender.
The new TaskQueuePacedSender has been default-on in code since M97, and
there are no further usages of it that I can find. Let's clean this up!

The PacingController and associated tests will be cleaned up in a
follow-up cl.

Bug: webrtc:10809
Change-Id: I0cb888602939add953415977ee79ff0b3878fea5
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/258025
Reviewed-by: Per Kjellander <perkj@webrtc.org>
Commit-Queue: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36890}
2022-05-13 20:31:06 +00:00
Ali Tofigh
d14e8894fc Adopt absl::string_view in modules/rtp_rtcp
Bug: webrtc:13579
Change-Id: Ic4e1431bedc69492358cb2e3749b50a941306f44
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/262250
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Ali Tofigh <alito@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36887}
2022-05-13 15:01:18 +00:00
Niels Möller
059548919b Enable VP8 configuration via scalability mode
Bug: webrtc:13959
Change-Id: I16054506ca4086767323443fb9b1e623224e234d
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/258791
Reviewed-by: Åsa Persson <asapersson@webrtc.org>
Reviewed-by: Florent Castelli <orphis@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36884}
2022-05-13 13:53:44 +00:00
Niels Möller
807328fec7 Move frame drop config to VideoCodec and VideoEncoderConfig.
Intend to delete corresponding codec-specific settings in a followup.

Bug: webrtc:6883
Change-Id: I78ab07729a5aee1055f80d39d8f7289beb6721e1
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/262244
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36882}
2022-05-13 13:40:14 +00:00
philipel
9437529d4b Determine scalability mode if not explicilty set for AV1.
Bug: none
Change-Id: I86298b8a57300ed1d824cf6ba8f5daeec6af7315
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/262242
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Philip Eliasson <philipel@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36879}
2022-05-13 12:06:44 +00:00
Diep Bui
d97af7b1b9 Clean loss based bwe 2.
This is for cleaning loss based bwe v2 implementation according to some comments from https://webrtc-review.googlesource.com/c/src/+/261240.

Bug: webrtc:12707
Change-Id: I2cb278f136cddcd0eeb2c5e4c319a9cc6aab94a0
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/262251
Commit-Queue: Diep Bui <diepbp@webrtc.org>
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Reviewed-by: Per Kjellander <perkj@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36875}
2022-05-13 10:07:19 +00:00
Byoungchan Lee
81d65fcf7d Update portaudio to the latest
Previous version uses OSMemoryBarrier() on Apple but this is deprecated
in macOS 10.12.

Also, modify PRESUBMIT.py so that this patch is not blocked by
CheckLongLines.

Bug: chromium:1322548
Change-Id: I02c6b7682730abf718e88fc7f1bd4dcd7d347da6
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/256580
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Daniel.L (Byoungchan) Lee <daniel.l@hpcnt.com>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36873}
2022-05-13 09:01:34 +00:00
Danil Chapovalov
f987c78d14 Fix integer overflow in ToNtpUnits helper
Bug: b/232293787
Change-Id: I7f781ff38a23ae829447e5274ec7f6493de8195d
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/262240
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Emil Lundmark <lndmrk@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36863}
2022-05-12 10:18:05 +00:00
Lambros Lambrou
b17745973f Update return value of ScreenCapturerX11::HandleXEvent().
HandleXEvent() returns true to indicate the event is consumed and
should not be passed to other registered handlers of the same
event-type.

In ScreenCapturerX11, this makes sense for XDamage events because they
are scoped to the object's |damage_handle_|. But RRScreenChangeNotify
and ConfigureNotify events are scoped to the root window, so this CL
changes the return value to false for these events. This allows other
handlers (including other screen-capturer instances) to see these
events.

Bug: webrtc:14060
Change-Id: Id18917b0b62d125da08578e08df9648062500cad
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/262142
Commit-Queue: Alexander Cooper <alcooper@chromium.org>
Auto-Submit: Lambros Lambrou <lambroslambrou@chromium.org>
Reviewed-by: Alexander Cooper <alcooper@chromium.org>
Cr-Commit-Position: refs/heads/main@{#36858}
2022-05-11 22:51:33 +00:00