43054 Commits

Author SHA1 Message Date
fizzfang
feabcdb76b Reduce redundant memory allocation when capturing a single monitor.
When capturing only one display, it is unnecessary to use
DoDuplicateAll, which allocates bitmap image memory for a rectangle
encompassing all screens and captures all displays. In this case, I
switch to DoDuplicateOne.

I have added an int parameter to GetNumFrameCaptured and
EnsureFrameCaptured to distinguish which display's skip behavior is
currently being executed.

After the modification, when capturing a single monitor in a
multi-monitor environment, only the bitmap image memory of the size of
the captured monitor will be allocated, rather than for all monitors.

Bug: webrtc:391914255
Change-Id: Iee56796c50282beaf1dbeef47f5937fe7fe94a05
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/375181
Reviewed-by: Joe Downing <joedow@chromium.org>
Commit-Queue: Alexander Cooper <alcooper@chromium.org>
Reviewed-by: Alexander Cooper <alcooper@chromium.org>
Cr-Commit-Position: refs/heads/main@{#43822}
2025-01-29 11:40:53 -08:00
Per K
eb688d6e80 Remove dependency to NetworkStateEstimator from TransportSequenceNumberFeedbackGenerator
NetworkStateEstimator is not used by WebRTC from receive side.

ReceiveSidesCongestionController::SetTransportOverhead is not needed either since NetworkStateEstimator is removed.
Note, CongestionControlFeedbackGenerator is used with RFC 8888 only and feedback frequency will be refactored in later cl.


Bug: webrtc:42220808
Change-Id: I08980aa19117e1de7a9b7896d05d07715dd9f962
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/375460
Auto-Submit: Per Kjellander <perkj@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Commit-Queue: Björn Terelius <terelius@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#43821}
2025-01-29 08:43:47 -08:00
Jonas Oreland
3155346f66 Reland "Remove rtc_p2p"
This reverts commit c6278957d11fc63c6acc3791ef31672744ced623.

Reason for revert: importer fixed.

Original change's description:
> Revert "Remove rtc_p2p"
>
> This reverts commit a05ad63aa336b22850387dafdcb5f7fcb00c7fb3.
>
> Reason for revert: breaks importer :(
>
> Original change's description:
> > Remove rtc_p2p
> >
> > This completes the task of removing the rtc_p2p target.
> >
> > Bug: webrtc:42226155
> > Change-Id: I2cd145fe250fc2e572b4cacc0982520dbf2250b8
> > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/375660
> > Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
> > Auto-Submit: Jonas Oreland <jonaso@webrtc.org>
> > Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
> > Cr-Commit-Position: refs/heads/main@{#43817}
>
> Bug: webrtc:42226155
> Change-Id: If0ba5c78c376ed31a8cae48ea0fee7162f70d5ff
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/375720
> Auto-Submit: Jonas Oreland <jonaso@webrtc.org>
> Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
> Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
> Bot-Commit: rubber-stamper@appspot.gserviceaccount.com <rubber-stamper@appspot.gserviceaccount.com>
> Cr-Commit-Position: refs/heads/main@{#43819}

Bug: webrtc:42226155
Change-Id: I9d958507f235c7f9b4c455c4dccd81644ffa4363
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/375741
Commit-Queue: Jonas Oreland <jonaso@webrtc.org>
Bot-Commit: rubber-stamper@appspot.gserviceaccount.com <rubber-stamper@appspot.gserviceaccount.com>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#43820}
2025-01-29 00:40:03 -08:00
Jonas Oreland
c6278957d1 Revert "Remove rtc_p2p"
This reverts commit a05ad63aa336b22850387dafdcb5f7fcb00c7fb3.

Reason for revert: breaks importer :(

Original change's description:
> Remove rtc_p2p
>
> This completes the task of removing the rtc_p2p target.
>
> Bug: webrtc:42226155
> Change-Id: I2cd145fe250fc2e572b4cacc0982520dbf2250b8
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/375660
> Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
> Auto-Submit: Jonas Oreland <jonaso@webrtc.org>
> Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
> Cr-Commit-Position: refs/heads/main@{#43817}

Bug: webrtc:42226155
Change-Id: If0ba5c78c376ed31a8cae48ea0fee7162f70d5ff
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/375720
Auto-Submit: Jonas Oreland <jonaso@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Bot-Commit: rubber-stamper@appspot.gserviceaccount.com <rubber-stamper@appspot.gserviceaccount.com>
Cr-Commit-Position: refs/heads/main@{#43819}
2025-01-28 22:47:44 -08:00
webrtc-version-updater
a347fdf3c3 Update WebRTC code version (2025-01-29T04:03:12).
Bug: None
Change-Id: I56ebb4f90ae61df5741e3a479400d07bbe3b52aa
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/375438
Commit-Queue: webrtc-version-updater@webrtc-ci.iam.gserviceaccount.com <webrtc-version-updater@webrtc-ci.iam.gserviceaccount.com>
Bot-Commit: webrtc-version-updater@webrtc-ci.iam.gserviceaccount.com <webrtc-version-updater@webrtc-ci.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/main@{#43818}
2025-01-28 22:19:21 -08:00
Jonas Oreland
a05ad63aa3 Remove rtc_p2p
This completes the task of removing the rtc_p2p target.

Bug: webrtc:42226155
Change-Id: I2cd145fe250fc2e572b4cacc0982520dbf2250b8
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/375660
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Auto-Submit: Jonas Oreland <jonaso@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#43817}
2025-01-28 13:51:57 -08:00
Harald Alvestrand
406d195d16 Move the rtc_p2p file last in its BUILD file
This will cause automation to not pick it up when searching for
headers.

Bug: webrtc:42226155
Change-Id: I4e93cd4eca13af32f76201df784b20a80ac9baed
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/375581
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Jonas Oreland <jonaso@webrtc.org>
Reviewed-by: Jonas Oreland <jonaso@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#43816}
2025-01-28 09:58:56 -08:00
Fanny Linderborg
5342220a1b Make corruption_detection_message publicly visible
Bug: webrtc:358039777
Change-Id: If15a36fd60ad4e434c07ae43b0a53bf2b5b04366
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/375541
Commit-Queue: Fanny Linderborg <linderborg@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#43815}
2025-01-28 05:44:48 -08:00
Danil Chapovalov
87b7c1aa6e Reduce warning logging when minimum playout delay exceed maximum
There can be error log each frame when maximum playout delay sent with the frame exceed delay derived from the av-sync.
In such scenario prefer to limit the playout delay by the one attached to the received frame.

Bug: b/390043766
Change-Id: Ia57969df72f7a649e5a9280d5bb29986f5ea14b7
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/374284
Reviewed-by: Johannes Kron <kron@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#43814}
2025-01-28 03:34:18 -08:00
Jonas Oreland
4a210486d3 DTLS 1.3 - patch 5
Extend DtlsRestart test to also
test with Dtls13 (and add variants
that tests caller/callee active).

BUG=webrtc:383141571

Change-Id: Ib8b48653d4ad3cb2f5d66d6e28fc9ab54064d804
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/375620
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Commit-Queue: Jonas Oreland <jonaso@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#43813}
2025-01-28 03:15:36 -08:00
Danil Chapovalov
d8fea51d65 Revert "Cleanup usage of the global field trials in the PeerConnectionE2EQualityTest helper"
This reverts commit a97304ca03c2aeb4267dc1bd794c50aa8bdb9a69.

Reason for revert: performance tests still rely in on global field trials to configure PC created by this test fixture

Original change's description:
> Cleanup usage of the global field trials in the PeerConnectionE2EQualityTest helper
>
> Bug: webrtc:42220378
> Change-Id: I3dc1a71c043ef506b6d592673b04e49f4a022d17
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/374901
> Reviewed-by: Jeremy Leconte <jleconte@webrtc.org>
> Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
> Cr-Commit-Position: refs/heads/main@{#43803}

Bug: webrtc:42220378, webrtc:392672060
Change-Id: Ide265c1284f9d53c0b652ed5e144dfb0a532f87a
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/375621
Reviewed-by: Artem Titov <titovartem@webrtc.org>
Auto-Submit: Danil Chapovalov <danilchap@webrtc.org>
Bot-Commit: rubber-stamper@appspot.gserviceaccount.com <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Commit-Queue: rubber-stamper@appspot.gserviceaccount.com <rubber-stamper@appspot.gserviceaccount.com>
Cr-Commit-Position: refs/heads/main@{#43812}
2025-01-28 02:51:54 -08:00
Harald Alvestrand
1a72c0ccb9 Move a test from media_session_unittest to codec_vendor_unittest
This test was only testing codec vendor functionality.

Bug: webrtc:360058654
Change-Id: I5763e766a44f6bb1542c4281b1d6c177a52c8c74
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/375600
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#43811}
2025-01-28 01:44:01 -08:00
Evan Shrubsole
2bebeaffe5 Remove unused create_call.cc
Bug: None
Change-Id: I337c85cc141f0220b2e2b109397f54f25f6056e5
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/375560
Commit-Queue: Evan Shrubsole <eshr@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#43810}
2025-01-28 00:13:35 -08:00
webrtc-version-updater
fb31c99e03 Update WebRTC code version (2025-01-28T04:03:17).
Bug: None
Change-Id: I7f528db042ccd3d2fc0081be42d615e79b0578da
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/375432
Commit-Queue: webrtc-version-updater@webrtc-ci.iam.gserviceaccount.com <webrtc-version-updater@webrtc-ci.iam.gserviceaccount.com>
Bot-Commit: webrtc-version-updater@webrtc-ci.iam.gserviceaccount.com <webrtc-version-updater@webrtc-ci.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/main@{#43809}
2025-01-27 21:54:37 -08:00
Florent Castelli
bea44590f6 desktop_capture: Fix Xrandr / Xrender order
Since Xrandr depends on Xrender, it needs to be explicitely listed before, otherwise linkers may not find the Xrender symbols.

Bug: None
Change-Id: Ifb1e82f63e1fc1645979c14b65e3beab06637cb8
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/375428
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Auto-Submit: Florent Castelli SE <fcastelli@nvidia.com>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#43808}
2025-01-27 14:57:28 -08:00
Danil Chapovalov
26617bef59 Make AV1 even payload size default-on when packetizer is used directly
This flip default behavior for webrtc users that create packetizers without help of RtpSenderVideo class.

Bug: webrtc:42226301
Change-Id: I42fe696039334672b7d0b0ed1f87a52c3f6bf5ca
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/374883
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#43807}
2025-01-27 08:02:33 -08:00
Harald Alvestrand
13170bd177 Refactor media_session to move codec handling to new class
The new class "CodecVendor" is intended to handle all logic dealing
with codecs. This CL is a no-behavior-change CL, later CLs will
change the logic.

Bug: webrtc:360058654
Change-Id: I44e76f0e0bd364eeb7d4506f3e01e9e00e2843a2
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/375500
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#43806}
2025-01-27 07:52:12 -08:00
Henrik Boström
6b7099527a VideoEncoder: rtc::StringBuilder instead of rtc::SimpleStringBuilder.
Whenever encoding info change, this ToString() method is called for some
LS_INFO logging inside video_stream_encoder.cc. Apparently the char
buffer used for constructing this string is not large enough because I
can get WebRTC to crash in a demo page that gets and sets a lot of
parameters.

By changing to rtc::StringBuilder, we don't have to make assumptions
about how long the string can get at runtime.

Bug: None
Change-Id: I32695523282143a301c0e13e06082d55bd2796b3
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/375520
Commit-Queue: Henrik Boström <hbos@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#43805}
2025-01-27 06:14:00 -08:00
Fanny Linderborg
39da6f3a75 Move corruption_detection_message from common_video to api/transport/rtp
Bug: webrtc:358039777
Change-Id: Ic27e162d67c64958844908cdd8413c406e88ea39
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/375201
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Fanny Linderborg <linderborg@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#43804}
2025-01-27 03:23:51 -08:00
Danil Chapovalov
a97304ca03 Cleanup usage of the global field trials in the PeerConnectionE2EQualityTest helper
Bug: webrtc:42220378
Change-Id: I3dc1a71c043ef506b6d592673b04e49f4a022d17
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/374901
Reviewed-by: Jeremy Leconte <jleconte@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#43803}
2025-01-27 02:14:30 -08:00
Philipp Hancke
9ff254eaf2 srtp: stop using private libsrtp function to determine packet index
instead use the standard API to get the rollover counter and
determine the extended sequence number which is the basis for the packet index.

See https://github.com/cisco/libsrtp/issues/738 and
https://github.com/cisco/libsrtp/issues/721

BUG=webrtc:357776213

Change-Id: I90c5a4a538f56132158aa48db8700187fcdb47d2
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/371960
Commit-Queue: Philipp Hancke <phancke@meta.com>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#43802}
2025-01-26 22:10:27 -08:00
webrtc-version-updater
a9b40ae0a4 Update WebRTC code version (2025-01-26T04:03:33).
Bug: None
Change-Id: Ibe36ef5486c7a3683a2178d5a456952c85cda3a8
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/375400
Bot-Commit: webrtc-version-updater@webrtc-ci.iam.gserviceaccount.com <webrtc-version-updater@webrtc-ci.iam.gserviceaccount.com>
Commit-Queue: webrtc-version-updater@webrtc-ci.iam.gserviceaccount.com <webrtc-version-updater@webrtc-ci.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/main@{#43801}
2025-01-25 21:33:27 -08:00
webrtc-version-updater
7b8b0f665e Update WebRTC code version (2025-01-25T04:02:12).
Bug: None
Change-Id: I1009b90d083a0a916cef25cd918d5aa185981024
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/375300
Bot-Commit: webrtc-version-updater@webrtc-ci.iam.gserviceaccount.com <webrtc-version-updater@webrtc-ci.iam.gserviceaccount.com>
Commit-Queue: webrtc-version-updater@webrtc-ci.iam.gserviceaccount.com <webrtc-version-updater@webrtc-ci.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/main@{#43800}
2025-01-24 22:00:42 -08:00
Philipp Hancke
5090eaf363 Reland "srtp: spanify Protect + Unprotect"
This is a reland of commit 9572b2fa5850da6d319b9efb5ee36290e2895f7f
that does not remove the legacy implementations yet.

Original change's description:
> srtp: spanify Protect + Unprotect
>
> Makes SrtpSession and SrtpTransport use rtc::CopyOnWriteBuffer for the Protect and Unprotect operations instead of passing around void pointers.
>
> Also updates the unit tests to use CopyOnWriteBuffer instead of char arrays with a fixed length.
>
> BUG=webrtc:357776213
> No-Iwyu: missing include is a private libsrtp header
>
> Change-Id: I02a22ceb4e183e93c4ebd8c0a9c931404e0e32f3
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/358442
> Reviewed-by: Henrik Boström <hbos@webrtc.org>
> Reviewed-by: Harald Alvestrand <hta@webrtc.org>
> Commit-Queue: Philipp Hancke <phancke@meta.com>
> Cr-Commit-Position: refs/heads/main@{#43601}

No-Iwyu: missing include is a private libsrtp header
Bug: webrtc:357776213
Change-Id: I93704e27a6c48e015b775712fcd848c8c0c753e5
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/372321
Commit-Queue: Philipp Hancke <phancke@meta.com>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#43799}
2025-01-24 11:40:56 -08:00
Philipp Hancke
4e8c984d15 Obfuscate private keys in unit tests to avoid false lint errors
This was already done in one place but got caught by our linter
nonetheless. For better obfuscation split "PRIVATE" into two pieces.

BUG=None

No-Iwyu: mostly unrelated changes and some require special attention
Change-Id: Iba82b603fd5c5a50c75fc7e27cafbc7237e956f0
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/375063
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Philipp Hancke <phancke@meta.com>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#43798}
2025-01-24 10:19:00 -08:00
Henrik Boström
ede69fd577 Make IsSameRtpCodecIgnoringLevel work for any codec.
Prior to this CL, IsSameRtpCodecIgnoringLevel() only ignored level IDs
if the codec was H265, incorrectly considering, for example, different
levels of H264 Baseline as not equal.
- This CL fixes that problem by using IsSameCodecSpecific() which is
  already used in other places, reducing the risk of different
  comparisons using different comparison rules.

This also fixes https://crbug.com/webrtc/391340599 where
setParameters() would throw if unrecognized SDP FMTP parameters were
added to a codec as part of SDP negotiation via SDP munging.

This CL makes the following WPT tests pass:
- external/wpt/webrtc/protocol/h264-unidirectional-codec-offer.https.html
- fast/peerconnection/RTCRtpSender-setParameters.html

Bug: chromium:381407888, webrtc:391340599
Change-Id: I5991403b56c86ba97e670996c6687f6315dde304
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/374043
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Henrik Boström <hbos@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#43797}
2025-01-24 05:37:17 -08:00
Fanny Linderborg
f2ecdd7ea3 Use ElementsAreArray in corruption detection unittests
Remove incorrect parantheses around expression as well

Bug: webrtc:358039777
Change-Id: I0e5de93b3ef23a18989e50fbe70a37c6ed198290
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/375240
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Commit-Queue: Fanny Linderborg <linderborg@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#43796}
2025-01-24 04:06:37 -08:00
Fanny Linderborg
1cc5e54368 Add missing newline
Bug: None
Change-Id: Ic2d7ae4c45a55b708b8ff1b63d56cb845985ecc3
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/375200
Commit-Queue: Fanny Linderborg <linderborg@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#43795}
2025-01-24 03:23:57 -08:00
Philipp Hancke
589acd56d0 dtls-stun piggybacking: make it compatible with DTLS 1.3
DTLS 1.3 encrypts more parts of the handshake so we move from
deep packet inspection to looking at the state of DTLS to
decide whether to intercept the packet.

BUG=webrtc:367395350

Change-Id: Idb1eda0437f24002f48381af5d6a167a4a153381
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/374501
Reviewed-by: Jonas Oreland <jonaso@webrtc.org>
Commit-Queue: Jonas Oreland <jonaso@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#43794}
2025-01-24 03:11:19 -08:00
k-wasniowski
eafee5e3d6 fix: h26x packet buffer video artifacts
This change resolves an issue that arises when there is a gap in the
sequence numbers of packets associated with a single frame.

Before this change, the H26x packet buffer could potentially assemble a
frame using only a subset of the packets in the buffer if a packet was
missing in the middle and a packet with a marker bit arrived.

To address this, the change introduces a check before assembling a
frame. This ensures that all packets belonging to a single frame are
correctly collected by iterating backward until the first packet in the
frame is identified.

Bug: webrtc:384391181
Change-Id: I4d09a3d6d569624ece204264cb32e5076ed090a2
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/374183
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Reviewed-by: Sergey Silkin <ssilkin@webrtc.org>
Reviewed-by: Jianlin Qiu <jianlin.qiu@intel.com>
Commit-Queue: Henrik Boström <hbos@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#43793}
2025-01-24 02:47:35 -08:00
webrtc-version-updater
63d3cf0d46 Update WebRTC code version (2025-01-24T04:10:20).
Bug: None
Change-Id: Ib5c407c17eaf59fa90d898fa726e4892ae3e6cb6
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/375064
Bot-Commit: webrtc-version-updater@webrtc-ci.iam.gserviceaccount.com <webrtc-version-updater@webrtc-ci.iam.gserviceaccount.com>
Commit-Queue: webrtc-version-updater@webrtc-ci.iam.gserviceaccount.com <webrtc-version-updater@webrtc-ci.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/main@{#43792}
2025-01-23 22:13:10 -08:00
Tommi
a70cc7886c Make mid_ a private member variable
Bug: webrtc:42233761
Change-Id: I17458a5b8c2d1999b40e4272dd51502ca6099219
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/374665
Commit-Queue: Tomas Gunnarsson <tommi@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#43791}
2025-01-23 00:53:11 -08:00
webrtc-version-updater
7fe307df59 Update WebRTC code version (2025-01-23T04:07:51).
Bug: None
Change-Id: I40c58cf5fc161ed0c044b48382faa7ec5a9585cb
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/375040
Commit-Queue: webrtc-version-updater@webrtc-ci.iam.gserviceaccount.com <webrtc-version-updater@webrtc-ci.iam.gserviceaccount.com>
Bot-Commit: webrtc-version-updater@webrtc-ci.iam.gserviceaccount.com <webrtc-version-updater@webrtc-ci.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/main@{#43790}
2025-01-22 21:50:38 -08:00
Youjie Zhou
a2a528c20b Add PortAllocator min/max ports to JAVA API
This helps Java clients control the port range.

Bug: None
Change-Id: Icfe16cdfac4e08cd21346a3cb4bb65b9fb2fa0d0
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/374841
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Youjie Zhou <youjiezhou@google.com>
Reviewed-by: Jonas Oreland <jonaso@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#43789}
2025-01-22 08:36:20 -08:00
Henrik Boström
79e5e721b5 Add unidirectional codec support ("offer to send" use case).
This CL implements allowing sendonly codecs in setCodecPreferences(),
i.e. this spec PR: https://github.com/w3c/webrtc-pc/pull/3018. It also
makes the setCodecPreferences() ignore level IDs in the filtering
algorithm (but not in the sCP method call) as per this spec PR:
https://github.com/w3c/webrtc-pc/pull/3023.

In short, before this CL, setCodecPreferences() threw an exception if a
codec was preferred that is not present in receiver codec capabilities.
After this CL, setCodecPreferences() allows you to prefer codecs that
are *either* in the sender capabilities *or* the receiver capabilities.
- This allows you to "offer to send", i.e. prefer sendonly codecs on a
  sendonly transceiver.
- The filtering on direction is handled by
  RtpTransceiver::filtered_codec_preferences() which is called during
  SDP offer/answer (sdp_offer_answer.cc).

Also as per spec changes, if this filtering results in not having any
codecs to offer or answer then this results in not having any codec
preferences as opposed to throwing an exception (old behavior).
- Two old peer_connection_media_unittest.cc tests are updated to
  reflect the API failing less.

This CL adds both unit tests (rtp_transceiver_unittest.cc) and full
stack integration tests (peer_connection_encodings_integrationtest.cc).
It also makes us pass the following Web Platform Tests in Chrome:
https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/web_tests/external/wpt/webrtc/protocol/h265-level-id.https.html

Bug: chromium:381407888
Change-Id: I98a5ad1acccb56db0538e4d47975b8a725102c33
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/374520
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Commit-Queue: Henrik Boström <hbos@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Evan Shrubsole <eshr@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#43788}
2025-01-22 08:27:25 -08:00
Henrik Boström
49ac6b758c Reland "Allow sending to separate payload types for each simulcast index."
This is a reland of commit bcb19c00ba8ab1788ba3c08f28ee1b23e0cc77b9

Original change's description:
> Allow sending to separate payload types for each simulcast index.
>
> This change is for mixed-codec simulcast.
>
> By obtaining the payload type via RtpConfig::GetStreamConfig(),
> the correct payload type can be retrieved regardless of whether
> RtpConfig::stream_configs is initialized or not.
>
> Bug: webrtc:362277533
> Change-Id: I6b2a1ae66356b20a832565ce6729c3ce9e73a161
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/364760
> Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
> Commit-Queue: Florent Castelli <orphis@webrtc.org>
> Reviewed-by: Florent Castelli <orphis@webrtc.org>
> Cr-Commit-Position: refs/heads/main@{#43197}

Bug: webrtc:362277533
Change-Id: Ia82c3390cceb9f68315c2fd9ba5114693669af32
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/374780
Commit-Queue: Henrik Boström <hbos@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#43787}
2025-01-22 07:10:46 -08:00
Harald Alvestrand
1f9e6046dd Start deprecation process for non-Optional datachannel parameters
The old version of these returns -1 when the value is not set.
Optional is better.

Bug: webrtc:42220231
Change-Id: Ideb0f51fd8bb7b5aa490743eb3b5d95998efbd1f
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/374483
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#43786}
2025-01-22 04:10:16 -08:00
Evan Shrubsole
0bebca526a Remove gunit.h EXPECT/ASSERT..WAIT macros
Bug: webrtc:381524905
Change-Id: I01dff16f7ec26fa4075a9ef659dee3f0844db041
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/374881
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Evan Shrubsole <eshr@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#43785}
2025-01-22 00:33:15 -08:00
webrtc-version-updater
f62fbe9eaf Update WebRTC code version (2025-01-22T04:05:41).
Bug: None
Change-Id: Icbf5295c075b9288a90f9a74749028004dbf0b2c
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/374858
Bot-Commit: webrtc-version-updater@webrtc-ci.iam.gserviceaccount.com <webrtc-version-updater@webrtc-ci.iam.gserviceaccount.com>
Commit-Queue: webrtc-version-updater@webrtc-ci.iam.gserviceaccount.com <webrtc-version-updater@webrtc-ci.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/main@{#43784}
2025-01-21 21:29:46 -08:00
Andrew Grieve
046c979cb5 Delete reference to "no_build_hooks" GN variable (part 2)
It's a no-op and I'm going to remove it.

Bug: chromium:40114668
Change-Id: If401cfb8218597a38f3ef45baf1ac2eb5f765cbb
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/374920
Auto-Submit: Andrew Grieve <agrieve@google.com>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Jeremy Leconte <jleconte@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#43783}
2025-01-21 10:43:33 -08:00
Tommi
76c8f303a8 Replace use of .name in test code with .mid()
Bug: webrtc:42233761
Change-Id: Iea64cc3d9831d59f4f937af6f779d99c276b3b8b
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/374664
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Tomas Gunnarsson <tommi@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#43782}
2025-01-21 10:25:53 -08:00
Tommi
7a0bdb602c Update PeerConnectionSdpMethods::AddRemoteCandidate
...to use string_view for the mid and prefer .mid() over .name for
ContentInfo.

Bug: webrtc:42233761
Change-Id: Ia9bfe1d7454759ff87295939cda6a71e53cb6b98
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/374663
Commit-Queue: Tomas Gunnarsson <tommi@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#43781}
2025-01-21 08:24:22 -08:00
Peter Hanspers
3fef8b27db Adding an error callback to AudioDeviceModuleIOS.
This adds an optional callback closure and an enum representing the error.

Bug: webrtc:390314937
Change-Id: If9a22dd6d90d5c4d94175e021511766ea49acec2
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/374420
Commit-Queue: Peter Hanspers <peterhanspers@webrtc.org>
Reviewed-by: Jakob Ivarsson‎ <jakobi@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#43780}
2025-01-21 07:56:58 -08:00
Harald Alvestrand
32f3c6cef1 Add AbslStringify for RtcErrorType and RtcErrorDetail
Drive-by: fix MakeVal in rtc_base/checks.h to ensure that StrCat is
used for types that have AbslStringify.

Bug: None
Change-Id: Ia78c65da18b4a826365a6a2c741f11809640197f
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/374345
Reviewed-by: Evan Shrubsole <eshr@webrtc.org>
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#43779}
2025-01-21 07:10:50 -08:00
Jeremy Leconte
a6bccab358 [DVQA] Dont try to render a 'superfluous' frame.
Change-Id: I3427cecab30b1705e5fbec110494f58cb1c599b5
Bug: None
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/374861
Commit-Queue: Jeremy Leconte <jleconte@webrtc.org>
Reviewed-by: Artem Titov <titovartem@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#43778}
2025-01-21 03:19:31 -08:00
Henrik Boström
283a84d92a Add matchers for RTCError, rename old matcher for RTCErrorOr.
Needed for testing in a follow-up CL.
Using ToString rather than absl::StrCat because I want the name of the
enum (e.g. "INVALID_MODIFICATION") as opposed to the enum value (int).

Bug: none
Change-Id: I45a925fad65395d1e6a886a9f787c2f360fb8604
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/374343
Reviewed-by: Evan Shrubsole <eshr@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Henrik Boström <hbos@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#43777}
2025-01-21 02:21:58 -08:00
Henrik Boström
860a13c6fd Misc improvements to RtpTransceiver unit tests and test utils.
In order to reduce the size and scope of a follow-up CL, this CL makes
some cleaning up and improvements to existing tests and adds some minor
test utility methods that will be used in the follow-up.

No change in behavior, this CL...
- Makes use of NiceMock in RtpTransceiver tests to avoid wall of text
  spam for various "uninteresting" method calls in all tests in this
  file.
- Refactors creating senders, receivers and transceivers to allow the
  follow-up CL to create such objects for kind "video" as well.
- Exposes cricket::FakeVideoEngine* to RtpTranscieverTest and allows
  adding unidirectional video codecs in the fake engine, to be used by
  the follow-up CL's tests.
- Allows creating fake video engine codecs from SdpVideoFormat in the
  fake decoder factory (already possible in the fake encoder factory).

Bug: chromium:381407888
Change-Id: Ie07eff79d832dd21800b95fd584891ebf4520798
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/374900
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Henrik Boström <hbos@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#43776}
2025-01-20 23:55:17 -08:00
webrtc-version-updater
ee7371f1f8 Update WebRTC code version (2025-01-21T04:06:38).
Bug: None
Change-Id: I7c85901d82ed77f395c502e0e4b7894c2efa9ccf
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/374828
Bot-Commit: webrtc-version-updater@webrtc-ci.iam.gserviceaccount.com <webrtc-version-updater@webrtc-ci.iam.gserviceaccount.com>
Commit-Queue: webrtc-version-updater@webrtc-ci.iam.gserviceaccount.com <webrtc-version-updater@webrtc-ci.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/main@{#43775}
2025-01-20 22:01:42 -08:00
chromium-webrtc-autoroll
b4127b5597 Roll chromium_revision dcda5ff9c0..3462a5bab8 (1408528:1408687)
Change log: dcda5ff9c0..3462a5bab8
Full diff: dcda5ff9c0..3462a5bab8

Changed dependencies
* src/ios: a7c5912a8c..f83303423a
* src/testing: e52ba4f90d..63412fdcdf
* src/third_party: b11145bc07..d212a71416
* src/third_party/android_build_tools/error_prone/cipd: 7c91BXn6VPvSmr-dFRYaNVkfHjRN1jdMIN4EcrPem9cC..Q3oiuVxuq1jkWhjfnfCSviXK8BbbB9n6_4jz3x_Mo3kC
* src/third_party/android_build_tools/manifest_merger/cipd: osgd04hyZB3eu5L7oiL6irk9AqRBX9lOxNLsaCmUCowC..yd6w2zQr48NAkrzrzEj2OmMzI-kANsmD6lvKhfXluAsC
* src/third_party/freetype/src: e3a3b39dd0..a059b237bb
* src/third_party/kotlin_stdlib/cipd: rR6d6Pj-PTodfgswJ661KwgKAuHXYKAhifnuXpoo748C..z7NenFzvjmGieRhzC5IhUKe-nO3U6xA5VwUilO3GZLgC
* src/third_party/libyuv: 47ddac2996..10592b60c0
* src/third_party/perfetto: 943a0d8992..a0c2bc7919
* src/third_party/r8/cipd: PO3aHSPf_6XsPQhr5ej6sRCj8EXUTKutmhlFCLBeak4C..DJU_YH-xmuJ4kRnli6eXC-q9Q21-GPFj4YVZyAqKSWoC
* src/third_party/rust-toolchain_version: Linux_x64/rust-toolchain-009e73825af0e59ad4fc603562e038b3dbd6593a-2-llvmorg-20-init-3847-g69c43468.tar.xz,Mac/rust-toolchain-009e73825af0e59ad4fc603562e038b3dbd6593a-2-llvmorg-20-init-3847-g69c43468.tar.xz,Mac_arm64/rust-toolchain-009e73825af0e59ad4fc603562e038b3dbd6593a-2-llvmorg-20-init-3847-g69c43468.tar.xz,Win/rust-toolchain-009e73825af0e59ad4fc603562e038b3dbd6593a-2-llvmorg-20-init-3847-g69c43468.tar.xz..Linux_x64/rust-toolchain-ad211ced81509462cdfe4c29ed10f97279a0acae-1-llvmorg-20-init-17108-g29ed6000.tar.xz,Mac/rust-toolchain-ad211ced81509462cdfe4c29ed10f97279a0acae-1-llvmorg-20-init-17108-g29ed6000.tar.xz,Mac_arm64/rust-toolchain-ad211ced81509462cdfe4c29ed10f97279a0acae-1-llvmorg-20-init-17108-g29ed6000.tar.xz,Win/rust-toolchain-ad211ced81509462cdfe4c29ed10f97279a0acae-1-llvmorg-20-init-17108-g29ed6000.tar.xz
* src/third_party/turbine/cipd: dz8pRLjwNlToJ0tS14T-TDQJNikmFXEDByMo-OzBbl0C..qNNUfaj7w4cSHTjVawVaZpq0pABVec9LcFebN19wm4EC
* src/tools: 5b0a775998..6820cc03cc
DEPS diff: dcda5ff9c0..3462a5bab8/DEPS

No update to Clang.

BUG=None

Change-Id: I7839852a6a8a9c11dbb526e5da2b1d85f6a92c10
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/374848
Bot-Commit: Autoroller <chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com>
Commit-Queue: Autoroller <chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/main@{#43774}
2025-01-20 08:37:36 -08:00
Erik Språng
d621b419a3 Make WebRTC-Video-AV1EvenPayloadSizes default-on.
Experimentation shows only a slight increase in bitrate due to improved
BWE. There's no negative side-effects we have been able to see so far.

This CL flips the experiment to default-on but is kept around as a
kill-switch until the next milestone just in case something unexpected
is discovered.

Bug: webrtc:42226301
Change-Id: I4a0b1c85e912b909d7bff58d78966cf161857f7c
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/374182
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Auto-Submit: Erik Språng <sprang@webrtc.org>
Commit-Queue: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#43773}
2025-01-20 07:23:58 -08:00