6994 Commits

Author SHA1 Message Date
Hanna Silen
90c430cda4 AudioProcessingImpl: Remove the use of transient suppressor
Remove the use of transient suppression, i.e.:
 - Transient suppressor submodule (ignore the config),
 - WebRTC-TransientSuppressorForcedOff fieldtrial,
 - Voice activity detection submodule (use AGC2/AGC VAD instead),
 - Submodule overrides, and
 - WEBRTC_EXCLUDE_TRANSIENT_SUPPRESSOR macro.

Bug: webrtc:7494, webrtc:13663, webrtc:357281131
Change-Id: I7edb46c7ff048992ac5a10473800405bad268895
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/355880
Reviewed-by: Henrik Andreassson <henrika@webrtc.org>
Commit-Queue: Hanna Silen <silen@webrtc.org>
Reviewed-by: Gustaf Ullberg <gustaf@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42724}
2024-08-05 12:38:37 +00:00
Jan Grulich
9e755f0e19 PipeWire camera: Annotate functions with PipeWire calls to avoid CFI
Similar to PipeWire implementation of desktop capture, we have to avoid
CFI check for calls of dlopened PipeWire library. This avoid crashing
PipeWire camera backend when "is_official_build=true" option is used as
this turns on "is_cfi=true" enabling control flow integrity.

Bug: chromium:354776214
Change-Id: I7a9fc1c2d77c4ee0e8fe0586369b7246e0bb9180
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/358103
Commit-Queue: Jan Grulich <grulja@gmail.com>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Reviewed-by: Alexander Cooper <alcooper@chromium.org>
Cr-Commit-Position: refs/heads/main@{#42706}
2024-07-31 18:11:40 +00:00
Björn Terelius
8d7642a9f7 Remove unused QpFastFilterLow method
Bug: None
Change-Id: I63665a3fc9afd57aec8f0f7d2a2a2e631452f6c6
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/358080
Auto-Submit: Björn Terelius <terelius@webrtc.org>
Reviewed-by: Åsa Persson <asapersson@webrtc.org>
Commit-Queue: Åsa Persson <asapersson@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42704}
2024-07-31 10:40:42 +00:00
Danil Chapovalov
05309c5236 Delete AudioEncoderOpus constructor that doesn't provide Environment
Bug: webrtc:343086059
Change-Id: I55573eff8a13c504c7e14f370398bba1a6eae906
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/358060
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Jakob Ivarsson‎ <jakobi@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42692}
2024-07-30 11:40:34 +00:00
Danil Chapovalov
c2160b14b1 Delete expired field trial Audio-OpusAvoidNoisePumpingDuringDtx
Bug: webrtc:42222522, chromium:40174928
Change-Id: I2391b3078e5fff93edca3c3e6e568560b2a1c1cc
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/357742
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Jakob Ivarsson‎ <jakobi@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42691}
2024-07-30 09:43:52 +00:00
Danil Chapovalov
1932b44aa2 Provide Environment for AudioEncoderOpus in tests when created using the trait
To allow delete old signature of the AudioEncoderOpus::MakeAudioEncoder function and thus guarantee Opus AudioEncoder always has an Environment

Bug: webrtc:343086059
Change-Id: Ib660678aeb5a549dddd1dffa3d8c28b2ec6b9d0b
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/356981
Reviewed-by: Jakob Ivarsson‎ <jakobi@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42690}
2024-07-30 09:29:11 +00:00
Artem Titov
e02a200f5e [numpy] Fix users of NumPy APIs that are removed in NumPy 2.0.
This change migrates users of APIs removed in NumPy 2.0 to their
recommended replacements
(https://numpy.org/devdocs/numpy_2_0_migration_guide.html).

Bug: None
Change-Id: I5c275ed3f39863d42b5c34df0723933f7a8b94a0
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/358020
Reviewed-by: Lionel Koenig <lionelk@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42684}
2024-07-29 12:46:53 +00:00
Florent Castelli
5b9d4adfc8 Move rtp_packet_sender.h to api/
Old copy of the header and some previous usage is kept around
for compatibility with downstream projects for now.

Bug: chromium:345101934
Change-Id: Icbe42fb8450d3a4115799438d209da4eda127bab
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/357441
Commit-Queue: Florent Castelli <orphis@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42681}
2024-07-29 11:40:45 +00:00
Sergey Silkin
12f9d5ce60 Revert "Update support for missing HIGH profiles and 1080p"
This reverts commit 46b43e007296737751aea10685f92ddf4df63e0d.

Reason for revert: chromium:354143228

Original change's description:
> Update support for missing HIGH profiles and 1080p
>
> The High and ConstrainedHigh profiles are missing from the decoder capabilities. Also level 3.1 doesn't allow 1080p
>
> Bug: webrtc:347724928
> Change-Id: I3f33468327d2aaf352fc80f69d2ee31481bafcb5
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/355001
> Reviewed-by: Sergey Silkin <ssilkin@webrtc.org>
> Reviewed-by: Åsa Persson <asapersson@webrtc.org>
> Commit-Queue: Sergey Silkin <ssilkin@webrtc.org>
> Cr-Commit-Position: refs/heads/main@{#42528}

Bug: webrtc:347724928
Change-Id: I4d55b2982aca2e94ec983473336c4fa2a72d842f
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/357861
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Commit-Queue: Sergey Silkin <ssilkin@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42675}
2024-07-26 09:32:40 +00:00
Abby Yeh
35f10a083d Add listener to detect mute speech event, and callback function to handle the event
Bug: webrtc:343347289
Change-Id: I56b1433b0dd8220f95d7d72fb04b4f92fe4a905e
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/355761
Reviewed-by: Kári Helgason <kthelgason@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Abby Yeh <abbyyeh@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42667}
2024-07-23 13:01:39 +00:00
memetao
7fe62f25d1 Reland "Fix 'Image will be cropped if WindowCapturerWinGdi used'"
This is a reland of commit 844225a76a98aa3be5aca09c19ab72a5e7b6c38a

Original change's description:
> Fix 'Image will be cropped if WindowCapturerWinGdi used'
>
> Bug: webrtc:15719
> Change-Id: I7daf8ee5b90fbe9f1246f1d99211ffa0d8a19f73
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/330780
> Reviewed-by: Alexander Cooper <alcooper@chromium.org>
> Commit-Queue: Alexander Cooper <alcooper@chromium.org>
> Cr-Commit-Position: refs/heads/main@{#41503}

Bug: webrtc:15719
Change-Id: Idbb2f4dcc8811d3b2b763a49adc7a57535b3d1b2
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/334380
Reviewed-by: Tomas Gunnarsson <tommi@webrtc.org>
Reviewed-by: Alexander Cooper <alcooper@chromium.org>
Commit-Queue: Tomas Gunnarsson <tommi@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42666}
2024-07-23 10:28:10 +00:00
Danil Chapovalov
f90a3ad3b3 Reenable disabled passing tests
Libvpx was adjusted to support scenarios test verifies, but WebRTC tests were forgotten.

Bug: webrtc:42223649
Change-Id: I19a10c939d844d00dd564bc0a16fe21844cc7cfb
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/357680
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42665}
2024-07-23 07:14:13 +00:00
Danil Chapovalov
ac15a137ac In RtpVideoStreamReceiver do not rely on RTP sequence number unwrap to be stable
Currently this class assumed that if the same RTP sequence number is unwrapped again result would be the same.
That might not be true when several packets were inserted in between these two calls and unwrapper changed its state

This CL propose instead to unwrap once, and save the result in the intermediate struct.
To minimize the change and the risk, only redundant unwrapping is replaced to use unwrapped sequence number

Bug: webrtc:353565743
Change-Id: I8a18c8c206a0e16010951cabcf81dd9cb1588eda
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/357660
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42662}
2024-07-22 15:42:12 +00:00
Philipp Hancke
3753c8190e h264: fix first_packet_in_frame logic for multislice in a single rtp packet
a frame must be (or should be) first when it contains either SPS (but not just PPS),
is an IDR or is a slice with first_mb_in_slice == 0.

Fixes an edge case where a STAP-A with SPS, PPS and multiple slices of an IDR fit
into a single RTP packet which can happen with small 320x196 frames

BUG=webrtc:352379280,webrtc:346608838

Change-Id: Ic6dea6c81db759d0d7ddd4054407103fd791f6c5
No-Try: true
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/357121
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Commit-Queue: Sergey Silkin <ssilkin@webrtc.org>
Reviewed-by: Sergey Silkin <ssilkin@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42652}
2024-07-19 08:49:24 +00:00
Sergio Garcia Murillo
45e5e385f3 Use ArrayView on H264 bitstream parsing
No-Try: true
Bug: webrtc:42225170
Change-Id: I4682f400054fee5c86ea24bebf6d703fb90074da
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/354722
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Sergey Silkin <ssilkin@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42650}
2024-07-19 08:16:11 +00:00
Sergey Silkin
4dedf5efae Use EncoderStreamFactory::CreateEncoderStreams() instead of GetSimulcastConfig()
In preparation for upcoming changes in GetSimulcastConfig(), which will require a vector of stream resolutions instead of just the max resolution as an input, switch tests to use CreateEncoderStreams() instead of calling GetSimulcastConfig() directly.

Bug: webrtc:351644568, b/352504711
Change-Id: I541dd54a21a8b75028cff07a250f858a47898223
No-Try: true
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/357400
Commit-Queue: Sergey Silkin <ssilkin@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42648}
2024-07-18 16:35:10 +00:00
Danil Chapovalov
faf5b0308c Delete forwarding rtp_rtcp/time_util.h as unused
All known users are updated to use ntp_time_util.h directly

Bug: webrtc:343076000
Change-Id: I7229b9e5dd72d83bfd98ba4050ae7583d792575b
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/357300
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Sergey Silkin <ssilkin@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42645}
2024-07-17 08:53:00 +00:00
Sergey Silkin
3f9589ae64 Remove max_qp argument from GetSimulcastConfig()
This is a cleanup of simulcast.cc. max_qp is not needed to decide simulcast config. Move setting of max QP in VideoStream one level up, to EncoderStreamFactory::CreateEncoderStreams(), where it can be set per stream.

Bug: webrtc:351644568, b/352504711
Change-Id: Ia0e3e9d90032383574dc8867b30d362e9c5df7e8
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/357102
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Sergey Silkin <ssilkin@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42634}
2024-07-15 10:23:10 +00:00
Sergey Silkin
55d328dc25 Add ssilkin@webrtc to OWNERS in video/
Bug: none
Change-Id: Ie5b5e339634c07d260cc3e10312f97aad63fa552
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/357180
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Sergey Silkin <ssilkin@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42633}
2024-07-15 09:11:54 +00:00
Sergey Silkin
e9810a8adb Use GetTemporalLayerSum
Bug: b/337757868
Change-Id: Ieff4c22425bab06c12419d64db7a2eef69cc54d6
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/355962
Auto-Submit: Sergey Silkin <ssilkin@webrtc.org>
Commit-Queue: Erik Språng <sprang@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42630}
2024-07-12 15:25:28 +00:00
Sergey Silkin
c0a32fe01b Remove bitrate_priority argument from GetSimulcastConfig()
This is a cleanup of simulcast.cc. bitrate_priority is not needed to decide simulcast config. Move setting of bitrate priority in VideoStream one level up, to EncoderStreamFactory::CreateEncoderStreams().

Bug: webrtc:351644568
Change-Id: I002d728ccf8d141fe4bbb32b390129ce57c830cd
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/357101
Commit-Queue: Sergey Silkin <ssilkin@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42629}
2024-07-12 15:02:59 +00:00
Sergey Silkin
3d20dce85f Delete unused YUV files
Bug: none
Change-Id: I2b7794d76be0461271218a55f25021a065a318bc
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/357000
Auto-Submit: Sergey Silkin <ssilkin@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42625}
2024-07-11 20:26:16 +00:00
Lambros Lambrou
c2f0260894 Restrict ScreenCaptureKit capturer to macOS 14+.
ScreenCapturerSCK uses some fields that were not available in macOS 13
but the code compiles with the older SDK because of missing annotations
that were added in the macOS 15 SDK.

Bug: chromium:351843815
Change-Id: Ic1a89b4cab43d6ee81d447ccc33ef94439752c45
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/356860
Reviewed-by: Alexander Cooper <alcooper@chromium.org>
Commit-Queue: Lambros Lambrou <lambroslambrou@chromium.org>
Cr-Commit-Position: refs/heads/main@{#42624}
2024-07-11 17:04:11 +00:00
Sergey Silkin
f7a1506703 Adjust max consecutive drops depending on target frame rate
Current thresholds were tuned to guarantee no buffer overshoot in an extreme scenario (encoding a high complexity video in a low bitrate).

Bug: b/337757868, webrtc:351644568
Change-Id: I832b2564af6f18f06550338cc9b3618f8acdf831
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/356580
Reviewed-by: Dan Tan <dwtan@google.com>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Sergey Silkin <ssilkin@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42620}
2024-07-10 17:16:18 +00:00
Sergey Silkin
5d24544378 Fix keyframe flag
remove +1 offset.

Bug: webrtc:42225151
Change-Id: Ib735fddfd82f0ae9cfb433648950d936647614a9
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/356820
Commit-Queue: Erik Språng <sprang@webrtc.org>
Auto-Submit: Sergey Silkin <ssilkin@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42616}
2024-07-10 06:51:47 +00:00
Tommi
06af5b5c64 More use of DeinterleavedView and MonoView in audio classes
Adopt DeinterleavedView and MonoView in the following classes
and deprecate existing versions where external dependencies exist:

* GainApplier
* AdaptiveDigitalGainController
* NoiseLevelEstimator
* VoiceActivityDetectorWrapper (including MonoVad)

Bug: chromium:335805780
Change-Id: I15dad833a87d31476d147dd2456bd1cc39f901ed
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/355861
Commit-Queue: Tomas Gunnarsson <tommi@webrtc.org>
Reviewed-by: Gustaf Ullberg <gustaf@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42611}
2024-07-09 13:29:37 +00:00
Jan Grulich
b1ebcfbfd6 PipeWire camera: support additional formats and fix RGB/BGR mapping
Similar to BGRA/RGBA we added recently, formats from PipeWire are in
big-endian, while WebRTC (using libyuv) is little-endian, therefore we
have to map BGR to RGB and not RGB to RGB as colors would be off. Also
add some additional formats supported by libyuv.

Bug: webrtc:42225999
Change-Id: Iee8303f0922fe434069b2b3f88994abecf7d2cc5
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/355860
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Commit-Queue: Jan Grulich <grulja@gmail.com>
Cr-Commit-Position: refs/heads/main@{#42609}
2024-07-09 09:58:37 +00:00
Sergey Silkin
3172d16ea0 Clean up EncoderStreamFactory
* Simplified ctor. Get settings (max_qp, content_type, etc) from encoder_config passed to CreateEncoderStreams().

* Some tests assigned VideoEncoderConfig::video_stream_factory to EncoderStreamFactory they created. That's not really needed. VideoStreamEncoder creates the factory if video_stream_factory is not provided [1]. Removed video_stream_factory initialization in tests.

[1] https://source.chromium.org/chromium/chromium/src/+/main:third_party/webrtc/video/video_stream_encoder.cc;l=1002;drc=1d7d0e6e2c5002815853be251ce43fe88779ac85

Bug: b/347150850, webrtc:42233936
Change-Id: Ie0322abb6c48e1a9bd10e9ed3879e3ed484fea5d
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/355321
Reviewed-by: Erik Språng <sprang@webrtc.org>
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Commit-Queue: Sergey Silkin <ssilkin@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42608}
2024-07-09 09:47:55 +00:00
Dustin Green
06b782cb72 [fuchsia][sysmem2] move screen capturer to sysmem2
Bug: b/306258175
Change-Id: I71a27bd8115e78d57a9aa24660aab982bbbe5459
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/353020
Reviewed-by: Alexander Cooper <alcooper@chromium.org>
Commit-Queue: Dustin Green <dustingreen@google.com>
Cr-Commit-Position: refs/heads/main@{#42605}
2024-07-08 19:53:25 +00:00
Sergey Silkin
7a6053ae62 Rename minimum_qp to min_qp
For better consistency with the rest codebase (it is min_/max_ for all params in video_encoder.h; only qp is for some reason prefixed with minimum_).

Also fixed constant names in libaom AV1 encoder wrapper (moved min from suffix to prefix, minimum -> min_).

Bug: chromium:328598314
Change-Id: I6d8521a3abff3a0595a5241c02ef4746eb4694df
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/356600
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Sergey Silkin <ssilkin@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42604}
2024-07-08 15:37:23 +00:00
Sergey Silkin
b43cd86e64 Increase frame rate precision in libaom AV1 encoder wrapper
Before this change the AV1 encoder wrapper converted target frame rate from double to integer with rounding to the middle. That approach resulted in a bitrate mismatch caused by rounding error. The mismatch was especially high at low frame rates. For example, at target frame rate 1.4fps the bitrate mismatch reached 40%:

out/debug/video_codec_perf_tests --gtest_also_run_disabled_tests --gtest_filter=*EncodeDecode --framerate_fps=1.4 --width=320 --height=180 --bitrate_kbps=32 --num_frames=600
...
RESULT s0t0_bitrate_mismatch_pct: DISABLED_EncodeDecode= {39.171875,0} n%

After the change the mismatch reduced to ~2% in the same scenario:
RESULT s0t0_bitrate_mismatch_pct: DISABLED_EncodeDecode= {-2.178125,0} n%

Bug: b/337757868
Change-Id: Ia51f92b3dfdce103eed1d04cac0e084b69fa8213
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/356500
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Sergey Silkin <ssilkin@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42601}
2024-07-08 12:00:43 +00:00
Qiu Jianlin
383870faf4 Check empty NALUs in H.265 depacketizer.
This is cherry-picked from WebKit's patch for fixing a fuzzer failure.
The original patch: https://github.com/WebKit/WebKit/pull/30438

Bug: chromium:41480904
Change-Id: Ic8eddb9de816c4c8d720dac6d4c55d1db3f0596e
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/356361
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Commit-Queue: Jianlin Qiu <jianlin.qiu@intel.com>
Cr-Commit-Position: refs/heads/main@{#42598}
2024-07-08 02:11:15 +00:00
Per K
508e20f92b Increase number of times a nack request can be sent from 10 to 100.
If traffic policing is enforced by dropping packets, RTT can still be low.
If a packet is dropped that is needed to contninue decoding, it make sense that a nack request is sent until the packet is received, or a new key frame is requested. A key frame will be requested after 3s.
For now, this cl only increase the number of times a packet can be requested.

Bug: b/317178411
Change-Id: Iea75d36ed06f346af1dd4e55a9961d5eca45f519
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/356482
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Commit-Queue: Per Kjellander <perkj@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42594}
2024-07-05 13:49:06 +00:00
Tommi
82c8e674ae Add DeinterleavedView<float> view() to AudioBuffer
This helps with making AudioBuffer compatible with current and upcoming
code that uses audio_views.h (a simpler abstraction).

Bug: chromium:335805780
Change-Id: Ib59bba274c7abfb441e3c4d606f804b365df236d
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/355844
Reviewed-by: Sam Zackrisson <saza@webrtc.org>
Commit-Queue: Tomas Gunnarsson <tommi@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42590}
2024-07-04 13:47:55 +00:00
Tommi
7f30dd11eb Remove deprecated methods
follow up to https://webrtc-review.googlesource.com/c/src/+/352582

Bug: chromium:335805780
Change-Id: I47f2842da9e86b686e3a3c2f4f28fa03d1cd297d
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/356241
Commit-Queue: Tomas Gunnarsson <tommi@webrtc.org>
Reviewed-by: Sam Zackrisson <saza@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42589}
2024-07-04 13:19:15 +00:00
Åsa Persson
3b15e46a4c Get min bitrate from spatial layers for AV1 (instead of bitrate limits).
Bitrate limits should have been applied to the spatial layers in ApplySpatialLayerBitrateLimits (and usage is restricted to a single active stream/layer).

Bug: b/299588022
Change-Id: Iaae4ece28b8a95eea7d4bacba292847ba5b4000b
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/355841
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Åsa Persson <asapersson@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42588}
2024-07-04 13:16:58 +00:00
Tommi
d6ef33e59b Remove PushResampler<T>::InitializeIfNeeded
This switches from accepting a sample rate and convert to channel
size over to accepting the channel size.

Instead of InitializeIfNeeded:

* Offer a way to explicitly initialize PushResampler via the ctor
  (needed for VoiceActivityDetectorWrapper)
* Implicitly check for the right configuration from within Resample().
  (All calls to Resample() were preceded by a call to Initialize)

As part of this, refactor VoiceActivityDetectorWrapper (VADW):
* VADW is now initialized in the constructor and more const.
* Remove VADW::Initialize() and instead reconstruct VADW if needed.

Add constants for max sample rate and num channels to audio_util.h
In many cases the numbers for these values are embedded in the code
which has led to some inconsistency.

Bug: chromium:335805780
Change-Id: Iead0d52eb1b261a8d64e93f51401147c8fba32f0
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/353360
Reviewed-by: Gustaf Ullberg <gustaf@webrtc.org>
Commit-Queue: Tomas Gunnarsson <tommi@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42587}
2024-07-04 10:33:21 +00:00
Tommi
55c3600781 Remove <ostream> dependencies
Some dependencies still exist but are a bit more complex to remove.
This CL removes either unused or easily replaced with ToString()
instances of ostream usage. In one case, moving the operator<<
implementation to the one test file that requires it.

Bug: webrtc:8982
Change-Id: Ia5c840b12a42893494af401317a3daf2fe50ba9b
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/356240
Commit-Queue: Tomas Gunnarsson <tommi@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42582}
2024-07-03 12:27:55 +00:00
Ilya Nikolaevskiy
881c1a73ad Revert "Reland "Rewrite simulcast config to equivalent SVC for vp9 simulcast""
This reverts commit aab34560cf8a23b61d04dcb5410ddec49715cdcb.

Reason for revert: Breaks downstream projects again.

Original change's description:
> Reland "Rewrite simulcast config to equivalent SVC for vp9 simulcast"
>
> This reverts commit b58937316b42a04f8ed2c569d80d813bbc44b3c5.
>
> Reason for revert: Reland after downstream project fix.
>
> Original change's description:
> > Revert "Rewrite simulcast config to equivalent SVC for vp9 simulcast"
> >
> > This reverts commit 86ff48adaea08fd4e7044595e1c25a22fcceac34.
> >
> > Reason for revert: Speculative revert due to failing downstream tests
> >
> > Original change's description:
> > > Rewrite simulcast config to equivalent SVC for vp9 simulcast
> > >
> > > This allows to utilize libvpx optimizations considerably improving performance.
> > > The change happens inside libvpx_vp9_encoder and is invisible to other parts of webrtc.
> > >
> > > This CL includes unit tests, an E2E test already exists: StandardPath/PeerConnectionEncodingsIntegrationParameterizedTest.Simulcast/VP9 in peerconnection_unittests.
> > >
> > > Bug: webrtc:347737882
> > > Change-Id: Ic48316ad597700ed07e594d592413cf84b6b20d4
> > > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/355003
> > > Reviewed-by: Sergey Silkin <ssilkin@webrtc.org>
> > > Reviewed-by: Erik Språng <sprang@webrtc.org>
> > > Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org>
> > > Cr-Commit-Position: refs/heads/main@{#42554}
> >
> > Bug: webrtc:347737882
> > Change-Id: Ib84c9c0e20763348abfae838f2fb1aff31581a55
> > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/355943
> > Bot-Commit: rubber-stamper@appspot.gserviceaccount.com <rubber-stamper@appspot.gserviceaccount.com>
> > Owners-Override: Jeremy Leconte <jleconte@google.com>
> > Reviewed-by: Jeremy Leconte <jleconte@google.com>
> > Commit-Queue: Jeremy Leconte <jleconte@google.com>
> > Cr-Commit-Position: refs/heads/main@{#42564}
>
> Bug: webrtc:347737882
> Change-Id: I020d51892982a6e776bb169584c27f7c1360d521
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/356142
> Bot-Commit: rubber-stamper@appspot.gserviceaccount.com <rubber-stamper@appspot.gserviceaccount.com>
> Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org>
> Cr-Commit-Position: refs/heads/main@{#42574}

Bug: webrtc:347737882
Change-Id: Id3472578159cfbe9cffeb812f1cb2c96e722298f
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/356260
Bot-Commit: rubber-stamper@appspot.gserviceaccount.com <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42579}
2024-07-03 08:17:24 +00:00
Tommi
51ad7c1277 Update FrameCombiner et al to use DeinterleavedView
* FrameCombiner is simpler. No additional channel pointers for buffers.
* Improve consistency in using views in downstream classes.
* Deprecate older methods (some have upstream dependencies).
* Use samples per channel instead of sample rate where the former is
  really what's needed.

Bug: chromium:335805780
Change-Id: I0dde8ed7a5a187bbddd18d3b6c649aa0865e6d4a
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/352582
Commit-Queue: Tomas Gunnarsson <tommi@webrtc.org>
Reviewed-by: Sam Zackrisson <saza@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42575}
2024-07-02 15:58:20 +00:00
Ilya Nikolaevskiy
aab34560cf Reland "Rewrite simulcast config to equivalent SVC for vp9 simulcast"
This reverts commit b58937316b42a04f8ed2c569d80d813bbc44b3c5.

Reason for revert: Reland after downstream project fix.

Original change's description:
> Revert "Rewrite simulcast config to equivalent SVC for vp9 simulcast"
>
> This reverts commit 86ff48adaea08fd4e7044595e1c25a22fcceac34.
>
> Reason for revert: Speculative revert due to failing downstream tests
>
> Original change's description:
> > Rewrite simulcast config to equivalent SVC for vp9 simulcast
> >
> > This allows to utilize libvpx optimizations considerably improving performance.
> > The change happens inside libvpx_vp9_encoder and is invisible to other parts of webrtc.
> >
> > This CL includes unit tests, an E2E test already exists: StandardPath/PeerConnectionEncodingsIntegrationParameterizedTest.Simulcast/VP9 in peerconnection_unittests.
> >
> > Bug: webrtc:347737882
> > Change-Id: Ic48316ad597700ed07e594d592413cf84b6b20d4
> > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/355003
> > Reviewed-by: Sergey Silkin <ssilkin@webrtc.org>
> > Reviewed-by: Erik Språng <sprang@webrtc.org>
> > Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org>
> > Cr-Commit-Position: refs/heads/main@{#42554}
>
> Bug: webrtc:347737882
> Change-Id: Ib84c9c0e20763348abfae838f2fb1aff31581a55
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/355943
> Bot-Commit: rubber-stamper@appspot.gserviceaccount.com <rubber-stamper@appspot.gserviceaccount.com>
> Owners-Override: Jeremy Leconte <jleconte@google.com>
> Reviewed-by: Jeremy Leconte <jleconte@google.com>
> Commit-Queue: Jeremy Leconte <jleconte@google.com>
> Cr-Commit-Position: refs/heads/main@{#42564}

Bug: webrtc:347737882
Change-Id: I020d51892982a6e776bb169584c27f7c1360d521
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/356142
Bot-Commit: rubber-stamper@appspot.gserviceaccount.com <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42574}
2024-07-02 14:42:35 +00:00
Åsa Persson
445d403eca Use RtpEncodingParameters min bitrate on lowest spatial layer if set.
Bug: b/299588022
Change-Id: I32dcf6763dbea184faf40cf743a9370073761762
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/355864
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Åsa Persson <asapersson@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42572}
2024-07-02 14:01:59 +00:00
Tommi
7e59d264f1 Remove unused istream code in test_utils.
Bug: webrtc:8982
Change-Id: I52cf9778581190399de8e2068e4a1cd03c97fb3f
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/356140
Auto-Submit: Tomas Gunnarsson <tommi@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42569}
2024-07-02 10:22:12 +00:00
Björn Terelius
b58937316b Revert "Rewrite simulcast config to equivalent SVC for vp9 simulcast"
This reverts commit 86ff48adaea08fd4e7044595e1c25a22fcceac34.

Reason for revert: Speculative revert due to failing downstream tests

Original change's description:
> Rewrite simulcast config to equivalent SVC for vp9 simulcast
>
> This allows to utilize libvpx optimizations considerably improving performance.
> The change happens inside libvpx_vp9_encoder and is invisible to other parts of webrtc.
>
> This CL includes unit tests, an E2E test already exists: StandardPath/PeerConnectionEncodingsIntegrationParameterizedTest.Simulcast/VP9 in peerconnection_unittests.
>
> Bug: webrtc:347737882
> Change-Id: Ic48316ad597700ed07e594d592413cf84b6b20d4
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/355003
> Reviewed-by: Sergey Silkin <ssilkin@webrtc.org>
> Reviewed-by: Erik Språng <sprang@webrtc.org>
> Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org>
> Cr-Commit-Position: refs/heads/main@{#42554}

Bug: webrtc:347737882
Change-Id: Ib84c9c0e20763348abfae838f2fb1aff31581a55
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/355943
Bot-Commit: rubber-stamper@appspot.gserviceaccount.com <rubber-stamper@appspot.gserviceaccount.com>
Owners-Override: Jeremy Leconte <jleconte@google.com>
Reviewed-by: Jeremy Leconte <jleconte@google.com>
Commit-Queue: Jeremy Leconte <jleconte@google.com>
Cr-Commit-Position: refs/heads/main@{#42564}
2024-06-29 17:47:18 +00:00
Per K
fb2c7bc8bd Remember lost packets between RTCP feedback reports
The idea is to reduce the risk of calculating a packet as lost if a
packet is reordered between two feedback reports.
It works as long as the recevied feedback does not complete an
observation.

Bug: webrtc:42222865 b/349765923
Change-Id: Iaf1595e624f546951baf3998d161f4cd1d5d491b
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/355942
Reviewed-by: Diep Bui <diepbp@google.com>
Commit-Queue: Per Kjellander <perkj@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42562}
2024-06-28 17:27:55 +00:00
lauren n. liberda
4157f3def0 stdc++: remove unneeded absl::optional wrapping
std::optional<T>::emplace() without an initializer is broken on clang++
with gnu libstdc++. this workarounds the bug by removing the
absl::optional wrapping, which is actually pointless.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101227

Bug: chromium:41455655
Change-Id: I05354e57cc4cdda3fa6d3cd23f46462b69cc3bee
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/355900
Commit-Queue: Per Kjellander <perkj@webrtc.org>
Reviewed-by: Per Kjellander <perkj@webrtc.org>
Reviewed-by: Diep Bui <diepbp@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42561}
2024-06-28 16:35:18 +00:00
Johannes Kron
216cce5f49 Add minimum_qp to VideoEncoder::EncoderInfo
The minimum QP field will be used to signal what the QP value will be
once the encoder reach its target video quality. This will be used
in the generalized QP convergence detection.

Bug: chromium:328598314
Change-Id: I82299cd921e3c091e651218d1e3f337875176567
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/355701
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Johannes Kron <kron@webrtc.org>
Reviewed-by: Markus Handell <handellm@google.com>
Cr-Commit-Position: refs/heads/main@{#42559}
2024-06-28 10:48:22 +00:00
Ilya Nikolaevskiy
86ff48adae Rewrite simulcast config to equivalent SVC for vp9 simulcast
This allows to utilize libvpx optimizations considerably improving performance.
The change happens inside libvpx_vp9_encoder and is invisible to other parts of webrtc.

This CL includes unit tests, an E2E test already exists: StandardPath/PeerConnectionEncodingsIntegrationParameterizedTest.Simulcast/VP9 in peerconnection_unittests.

Bug: webrtc:347737882
Change-Id: Ic48316ad597700ed07e594d592413cf84b6b20d4
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/355003
Reviewed-by: Sergey Silkin <ssilkin@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42554}
2024-06-27 14:27:35 +00:00
Jan Grulich
e6ad337d63 PipeWire capture: hide cursor when it goes off screen or is not visible
Set cursor position to (-1,-1) to indicate it's not valid when it goes
off the screen or it gets hidden by the compositor. Compositors indicate
invalid or hidden cursor by unsetting the cursor id in cursor metadata
and using spa_meta_cursor_is_valid() will tell us the needed information
for this.

Bug: chromium:346608851
Change-Id: I71b3222ca161b7fd8e964f4f4e12b9983179beba
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/355080
Reviewed-by: Alexander Cooper <alcooper@chromium.org>
Commit-Queue: Jan Grulich <grulja@gmail.com>
Cr-Commit-Position: refs/heads/main@{#42548}
2024-06-27 08:57:19 +00:00
Danil Chapovalov
20b8e33a3f Add AudioEncoderOpus constructors that use field trials from Environment
Deprecate or remove other constructor

Bug: webrtc:343086059
Change-Id: I863a1df1b313f871a0b03763be1588e68ceb84a0
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/355182
Reviewed-by: Jakob Ivarsson‎ <jakobi@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42545}
2024-06-26 15:25:23 +00:00