43165 Commits

Author SHA1 Message Date
webrtc-version-updater
578b12bb03 Update WebRTC code version (2025-02-13T04:03:20).
Bug: None
Change-Id: Ib313c7396b65118d2008e1bce3fe3e8a97fd3806
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/377060
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@{#43883}
2025-02-12 22:22:27 -08:00
Jeremy Leconte
9e9d954405 Disable ios_dbg_simulator bot on CQ.
Change-Id: I9e678647a9ba9dc4e0dc3be38e1c6d843e54dcdd
Bug: b/396118151
No-Try: true
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/377020
Auto-Submit: Jeremy Leconte <jleconte@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#43882}
2025-02-12 09:10:22 -08:00
Danil Chapovalov
f972489f32 Migrate PCLF not to create BasicPortAllocator itself
Instead rely on PeerConnectionFactory to create it

Bug: webrtc:42232556
Change-Id: I5710f979e0a030057b16c20fbf088ea2303be760
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/376882
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#43881}
2025-02-12 06:16:55 -08:00
Victor Boivie
625884e7ca dcsctp: Refactor rr_send_queue_test
This test used a fixture to create the send queue, but that makes it
hard to construct them with different parameters in some tests.

This refactoring removes the test fixture and creates the queue in each
test, which improves test readability instead, as there will be no need
for remembering how it was created - that's given by each test now.

Bug: webrtc:393540127
Change-Id: I8d158b6ff57fe9cb03b2762d736cf79afbbb8283
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/376100
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Victor Boivie <boivie@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#43880}
2025-02-12 06:09:39 -08:00
Emil Vardar
762faa79fc Update outdated comment.
Bug: None
No-Try: true
Change-Id: I5289920a1b59c84333374abbb271332bd7e6fd8b
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/374482
Commit-Queue: Jeremy Leconte <jleconte@webrtc.org>
Reviewed-by: Jeremy Leconte <jleconte@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#43879}
2025-02-12 05:05:29 -08:00
Danil Chapovalov
dd2f4629c8 Cleanup api/test/*/BUILD.gn
Remove unused dependencies, use canonical relative path for used dependencies.
This CL was generated by deleting all deps, and then running
`python3 ./tools_webrtc/gn_check_autofix.py -C out/Default`

Bug: None
Change-Id: Ibd9840fcbfcc1b56c20c0af45af672e6958f820f
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/376980
Auto-Submit: Danil Chapovalov <danilchap@webrtc.org>
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Reviewed-by: Artem Titov <titovartem@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#43878}
2025-02-12 04:28:07 -08:00
Ilya Nikolaevskiy
b0d6110289 Add ilnik@ as owner for desktop_capture/win
Bug: none
Change-Id: Ic2fe3b760ff439bacf6bf6abbf0dd6fddfc64f19
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/376860
Reviewed-by: Alexander Cooper <alcooper@chromium.org>
Reviewed-by: Henrik Andreassson <henrika@webrtc.org>
Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#43877}
2025-02-12 02:35:40 -08:00
Henrik Boström
736f58f35f Test that follow-up offer respects prior PT assignment.
Using parameterized testing, ensure that every possible payload type
that can be negotiated via remote O/A continues to show up in the local
follow-up offer in a subsequent O/A exchange.

This was an attempt to reproduce https://crbug.com/395077842, however
we pass all combinations.

Bug: chromium:395077842
Change-Id: Id4fd6f07a0870c8cd80ff7cf419e21fd6e2dbade
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/376862
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Henrik Boström <hbos@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#43876}
2025-02-12 02:29:30 -08:00
webrtc-version-updater
b08b9a5311 Update WebRTC code version (2025-02-12T04:06:02).
Bug: None
Change-Id: I7c32139595d480053f28b65b30916e8b39fe9677
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/376960
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@{#43875}
2025-02-11 22:27:31 -08:00
Qiu Jianlin
c592e766a0 Reland "Follow pref order for codec fallback."
This is a reland of commit 1ad3e14e9981772554a848c5034c7c555680aef7

The original CL removes all sending streams since all codec types has
been attempted for encoding and we have no other codecs to fallback to.

However some downstream applications will still attempt to set the codec
preferences even all send streams have been removed.
As a result, we follow previous logic to keep the send streams, to avoid
the regression.

Original change's description:
> Follow codec preference order for sending codec fallback.
>
> When encoder selector is not enabled, currently we always fallback to
> VP8 no matter how the codec preference is setup. Update to follow codec
> preference order for the fallback.
>
> Bug: chromium:378566918
> Change-Id: Ia3fbfc9d407683ef7b3d6246af7e9ec58535dc89
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/370707
> Reviewed-by: Erik Språng <sprang@webrtc.org>
> Reviewed-by: Henrik Boström <hbos@webrtc.org>
> Commit-Queue: Jianlin Qiu <jianlin.qiu@intel.com>
> Reviewed-by: Harald Alvestrand <hta@webrtc.org>
> Reviewed-by: Sergey Silkin <ssilkin@webrtc.org>
> Cr-Commit-Position: refs/heads/main@{#43566}

Bug: chromium:378566918, b/384725754
Change-Id: Ifd48b30b80ae51c3ede9391ed62e8ce408864aa0
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/374852
Reviewed-by: Erik Språng <sprang@webrtc.org>
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Commit-Queue: Jianlin Qiu <jianlin.qiu@intel.com>
Reviewed-by: Sergey Silkin <ssilkin@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#43874}
2025-02-11 16:42:55 -08:00
Philipp Hancke
902bc24b6f iwyu test/fuzzers
Note that this needs to be done with a work directory that supports
fuzzer builds, otherwise IWYU will bail out with complaints about
find-bad-constructs and raw-ptr-plugin

Some manual work was required to resolve the TaskQueueFactory which
is forward-declared by environment which required a manual include
of the header file.

The DcSctp packet fuzzer was also updated use the
disable_checksum_verification option which was moved to the
DcSctpOptions struct.

vp9_encoder_references_fuzzer was trying to include libvpx includes
which had to be reverted.

BUG=webrtc:42226242

Change-Id: I9fdcf979e73fdee77106c4583faff21ca7abf19f
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/375840
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Commit-Queue: Philipp Hancke <phancke@meta.com>
Cr-Commit-Position: refs/heads/main@{#43873}
2025-02-11 12:04:42 -08:00
Danil Chapovalov
462640e04b Update peer scenario test helpers to newer emulation network api
To minimize direct construction of BasicPortAllocator, network emulation manager api is changed to push toward injecting network dependencies to PeerConnectionFactory and let it create PortAllocator

Bug: webrtc:42232556
Change-Id: I0c86d797a97d543c2f033286281dc1145d4ef51b
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/376880
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Per Kjellander <perkj@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#43872}
2025-02-11 11:56:56 -08:00
Sergey Silkin
221013f316 Release codec config buffer
Bug: webrtc:369739207
Change-Id: Id103d26595acf59c8295d10777cd10095178df72
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/376102
Reviewed-by: Zoé Lepaul <xalep@webrtc.org>
Auto-Submit: Sergey Silkin <ssilkin@webrtc.org>
Commit-Queue: Zoé Lepaul <xalep@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#43871}
2025-02-11 07:51:30 -08:00
Danil Chapovalov
8a97881882 Deprecate EmulatedNetworkManagerInterface::network_dependencies
That accessor forces test helpers to create BasicPortAllocator themself
rather than deligate such task to PeerConnectionFactory

Bug: webrtc:42232556
Change-Id: I262e032da110222198e6308f57a5e5f2d7ba4601
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/376741
Reviewed-by: Artem Titov <titovartem@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#43870}
2025-02-11 07:07:18 -08:00
Palak Agarwal
5ebaa2f7bd Expose device_scale_factor as a float rather than an int32_t
Since the device_scale_factor is usually exposed as a float in chromium,
we want to keep it same here for consistency.

Bug: chromium:383946052
Change-Id: I8d055ca0fcac623f59dcf96eb3cee15efc23b2ba
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/376700
Commit-Queue: Palak Agarwal <agpalak@google.com>
Reviewed-by: Henrik Andreassson <henrika@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#43869}
2025-02-11 05:35:41 -08:00
Christoffer Dewerin
e53cd509f2 Update to iOS 17
Bug: b/395807792
Change-Id: I9a9255f2b4a1eedcfa283a682562256587bf862e
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/376820
Commit-Queue: Christoffer Dewerin <jansson@webrtc.org>
Auto-Submit: Christoffer Dewerin <jansson@google.com>
Reviewed-by: Jeremy Leconte <jleconte@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#43868}
2025-02-11 05:11:12 -08:00
Ilya Nikolaevskiy
7f0c39115e Fix inconsistent monitor id handling in DxgiDuplicatorController
In all the other functions `monitor_id` is a global id from range [0..total monitor count), but each DxgiAdapterDuplicator always assumes that it gets a local id from range [0..adapter monitor count).

Bug: chromium:395807060
Change-Id: I4bb232ee5d83f09859534f813111446763fe9fc9
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/376840
Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org>
Reviewed-by: Henrik Andreassson <henrika@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#43867}
2025-02-11 04:49:36 -08:00
Philipp Hancke
9bbd4d34e9 Pick H265 payload type from lower dynamic PT range
as the "upper range" is already filled and new codecs should prefer the
lower dynamic PT range.

drive-by: restore audio/red behavior too even though in practice it has
not changed.

BUG=chromium:391903235

Change-Id: Iefc78253bf0fe88567f9032059ead3c2557e36a1
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/376520
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@{#43866}
2025-02-10 14:22:52 -08:00
Qiu Jianlin
1ad51fe73c Use similar bitrate allocations as VP9 for H.265 simulcast streams.
Now that there is not requirement of base-heavy for H.265 simulcast, it
should follow VP9 on simulcast bitrate allocations per stream.

Bug: chromium:392060821
Change-Id: I245def7f27022a943a31e96a51552db7505b7546
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/376620
Reviewed-by: Erik Språng <sprang@webrtc.org>
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Commit-Queue: Henrik Boström <hbos@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#43865}
2025-02-10 04:38:51 -08:00
Danil Chapovalov
be32f038a0 In EmulatedNetworkManager split out rtc::NetworkManager implementation
This way that emulated network may be injected into PeerConnectionFactoryDependencies
and thus would allow test code not to manually create BasicPortAllocator

Bug: webrtc:42232556
Change-Id: Ifac29e584e66d7e585e8c8d74959cba288c6ffe0
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/376500
Reviewed-by: Artem Titov <titovartem@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#43864}
2025-02-10 04:34:04 -08:00
Evan Shrubsole
fe5bdd75e0 Move ArrayView, Buffer and related to webrtc namespace
Bug: webrtc:42232595
Change-Id: Idcd603d534eda6a5c1eea36d2c1c1e80c19fa0ca
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/376561
Reviewed-by: Tomas Gunnarsson <tommi@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Evan Shrubsole <eshr@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#43863}
2025-02-10 03:54:43 -08:00
Philipp Hancke
e42988ec0e java: switch order of assertEquals arguments for consistency
to unbreak the Chromium roll which bails out on
  ../../sdk/android/instrumentationtests/src/org/webrtc/GlRectDrawerTest.java:78: warning: [AssertEqualsArgumentOrderChecker] Arguments are swapped in assertEquals-like call
assertEquals(rgbaBuffer.remaining() % 4, 0);

BUG=None

Change-Id: I437de037ad45fb6779a03bde3851088ed81e1943
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/375023
Reviewed-by: Guido Urdaneta <guidou@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#43862}
2025-02-10 02:20:28 -08:00
webrtc-version-updater
bf1ada2730 Update WebRTC code version (2025-02-10T04:07:09).
Bug: None
Change-Id: I9f72a60f0da946142ef9f8c9ec96f27199fe3b99
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/376660
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@{#43861}
2025-02-09 21:54:08 -08:00
webrtc-version-updater
06539e6bf8 Update WebRTC code version (2025-02-09T04:04:39).
Bug: None
Change-Id: I4037f5240dd0360246634af7d18d0d00845ce56e
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/376640
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@{#43860}
2025-02-08 21:51:15 -08:00
Danil Chapovalov
7a0b955223 Delete one of BasicPortAllocator constructors as unused
Bug: webrtc:42232556
Change-Id: Ia0a461d646fa1773099e11cbb03851381642bec0
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/376560
Auto-Submit: Danil Chapovalov <danilchap@webrtc.org>
Commit-Queue: Jonas Oreland <jonaso@webrtc.org>
Reviewed-by: Jonas Oreland <jonaso@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#43859}
2025-02-08 01:07:31 -08:00
webrtc-version-updater
df532ba1db Update WebRTC code version (2025-02-08T04:04:41).
Bug: None
Change-Id: I4ffc90aaa7a5b44c595d3756a7ddfdab697c6073
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/376621
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@{#43858}
2025-02-07 20:59:37 -08:00
Danil Chapovalov
d1c0896062 Apply include-cleaner to test/network
This was generated by
Running
$ for i in test/network/*.cc; do ./tools_webrtc/iwyu/apply-include-cleaner $i; done
$ for i in test/network/*.h; do ./tools_webrtc/iwyu/apply-include-cleaner $i; done
$ python3 ./tools_webrtc/gn_check_autofix.py -C out/Default

manually removing <sys/socket.h> include as suspicious.
manually modifying test/DEPS file.

Bug: webrtc:42226242
Change-Id: Ifda037e1385996ac3b68190c7e30e5309356ebb1
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/376382
Reviewed-by: Per Kjellander <perkj@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#43857}
2025-02-07 06:20:08 -08:00
Evan Shrubsole
c84133987c Move rtc_base/checks.h and includes to webrtc namespace
Bug: webrtc:42232595
Change-Id: I5459af35b9bbab57748dd74cb9151562b9ff2607
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/376480
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Evan Shrubsole <eshr@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#43856}
2025-02-07 04:27:42 -08:00
webrtc-version-updater
150943c078 Update WebRTC code version (2025-02-07T04:04:42).
Bug: None
Change-Id: I2675d6c421abedb267b4245bbfb2e0c31c5d21ed
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/376540
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@{#43855}
2025-02-06 22:36:38 -08:00
Henrik Boström
fe25b0e928 Report 'outbound-rtp.targetBitrate' correctly and per-RTP stream.
This CL fixes two issues with the old way targetBitrate was reported:
1. The target is per encoder, i.e. per SSRC, but the old way to report
   it was per sender and was approximately the sum of all encodings'
   targetBitrate in most cases.
2. The old value did not come directly from the VideoBitrateAllocation
   and tended to be greater than the sum of all targets (don't know
   why).

We know the old value was wrong and the new value correct because
the actual bytes produced by the encoder closely matches the configured
target, which wasn't always the case with the old metric implementation.

Tested with unit tests and manually in Chrome by going to
https://henbos.github.io/codec-quality/src/index.html and ensuring
target ~= actual bytes produced. It also matches the debug logging of
video_stream_encoder.cc.

Bug: webrtc:42225524, chromium:392424845
Change-Id: I7a6f69e053ebc3fd972c2c4b7712750e721c0acc
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/376460
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Commit-Queue: Henrik Boström <hbos@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#43854}
2025-02-06 09:55:11 -08:00
Tomas Lundqvist
8e55dca89f Set the URL in README.chromium files for G.711 and G.722
Bug: webrtc:394522477
Change-Id: Ie2a18e7e713b65a0b4a18151cfab9dc804758c01
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/376402
Reviewed-by: Henrik Lundin <henrik.lundin@webrtc.org>
Commit-Queue: Tomas Lundqvist <tomasl@google.com>
Reviewed-by: Henrik Andreassson <henrika@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#43853}
2025-02-06 00:27:31 -08:00
webrtc-version-updater
f56007b6a3 Update WebRTC code version (2025-02-06T04:03:14).
Bug: None
Change-Id: Ia36f2ac03d7c3819138d5a4960e69abb1f616550
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/376440
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@{#43852}
2025-02-05 22:06:36 -08:00
fizzfang
0f4f802f84 Skip owned window with WS_EX_LAYERED attribute when capturing with GDI.
When using GDI to capture windows, not only will the target window be
captured, but all owned windows of the target window will also be
captured, and the captured results of the owned windows will be drawn
onto the captured result of target window.

GDI (BitBlt or PrintWindow) cannot capture windows with WS_EX_LAYERED
attribute, so when the owned window has this attribute, the area of the
owned window in the result is black.

After modification, if the owned window has the WS_EX_LAYERED attribute,
it will not be captured or drawn.

Bug: webrtc:394380765
Change-Id: I5f0c7d31809a353377b0aa52452634b46247af5f
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/376360
Commit-Queue: Alexander Cooper <alcooper@chromium.org>
Reviewed-by: Joe Downing <joedow@chromium.org>
Reviewed-by: Alexander Cooper <alcooper@chromium.org>
Cr-Commit-Position: refs/heads/main@{#43851}
2025-02-05 13:14:59 -08:00
Per K
70b65bc375 Remove deprecated ReceiveSideCongestionController ctor
Bug: webrtc:4222080842220808
Change-Id: I96dec60d98eaea4b96e081ee5a6340649836565d
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/376340
Commit-Queue: Per Kjellander <perkj@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#43850}
2025-02-05 05:28:11 -08:00
Danil Chapovalov
3164c2a4eb Restructure PeerConnection tests not to create PortAllocator directly
Instead rely on PeerConnectionFactory to create it.

Bug: webrtc:42232556
Change-Id: I24c9842ef027604b840188306db3e29756e1925f
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/376280
Reviewed-by: Per Kjellander <perkj@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#43849}
2025-02-05 04:08:12 -08:00
webrtc-version-updater
e46d8e4ec4 Update WebRTC code version (2025-02-05T04:02:29).
Bug: None
Change-Id: Ib5da5a8bf50c02314bfd125d4366fa42e943404f
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/376320
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@{#43848}
2025-02-04 21:32:56 -08:00
Danil Chapovalov
b1ec813339 Expose direct access to PeerConnection in PeerConnectionWrapper helper
Multiple derived classes duplcated that code, and one more fixture
can benefit from the same direct access to avoid saving reference to port allocator

Cleaned includes and build dependencies on the way, in particular left single build target that contains peer_connection_wrapper

Bug: webrtc:42232556
Change-Id: Ieb3d5449f3a0285230847716e33fb3b2d1b47882
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/376300
Reviewed-by: Per Kjellander <perkj@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#43847}
2025-02-04 10:46:11 -08:00
Philipp Hancke
e828c6dba3 red: remove hardcoded parameters in favor of taking them from the codec
and make it less opus-specific.

BUG=None

Change-Id: I6fe2975ba6e45a3758fedc5b950de90e8d9df362
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/375436
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Reviewed-by: Jakob Ivarsson‎ <jakobi@webrtc.org>
Commit-Queue: Philipp Hancke <phancke@meta.com>
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#43846}
2025-02-04 10:28:30 -08:00
Takuto Ikuta
9c56cb3eda Add include for <optional>
This is to fix build error when we set use_libcxx_modules=true in
chromium.

Bug: chromium:40263312
Change-Id: I7dd87e43823f33f70c6c8e15f4c64df7d231f021
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/376003
Reviewed-by: Henrik Andreassson <henrika@webrtc.org>
Commit-Queue: Alexander Cooper <alcooper@chromium.org>
Reviewed-by: Alexander Cooper <alcooper@chromium.org>
Auto-Submit: Takuto Ikuta <tikuta@google.com>
Cr-Commit-Position: refs/heads/main@{#43845}
2025-02-03 11:54:34 -08:00
Henrik Boström
0533b5eafe Add set_timestamp() method to RTCStats.
Useful for when creating aggregate stats objects, seems like an
oversight that we don't have it already.

Bug: None
Change-Id: Ied36afd2122464a81c7d725825353f9af59fe632
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/376220
Auto-Submit: Henrik Boström <hbos@webrtc.org>
Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#43844}
2025-02-03 08:07:11 -08:00
Jeremy Leconte
9cc5bc8499 Remove rust dependency on android.
This was needed because Android builds depended on chromium base which is not the case anymore.

Bug: None
Change-Id: I0de26ff61fe105c68a6d60def291c542f4b65a70
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/376240
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Commit-Queue: Jeremy Leconte <jleconte@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#43843}
2025-02-03 07:05:56 -08:00
Victor Hugo Vianna Silva
a6f35491d6 [cpp23] Remove use of std::aligned_storage in webrtc
std::aligned_storage is deprecated in C++23, see linked bug. The only
webrtc usage (VoidUnion::inline_storage) employed the default Align
parameter (i.e. std::aligned_storage<Len>, not std::aligned_storage<Len,
Alignment>), which is defined as the largest alignment <= Len.

This patch replaces the usage with a char buffer of same size and
alignment alignof(std::max_align_t). In theory, this might increase
alignment and use more memory. In practice, local testing in my
machines showed no behavior change, since Len =
kInlineStorageWords * sizeof(uintptr_t) = 32 > 16 (maximum alignment
on linux x86_64) > 8 (maximum alignment on mac arm64).


Bug: chromium:388068052
Change-Id: If08b69f7a5ff7b716a66c8703e31eb5d4de14431
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/373800
Commit-Queue: Victor Vianna <victorvianna@google.com>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Auto-Submit: Victor Vianna <victorvianna@google.com>
Reviewed-by: Tomas Gunnarsson <tommi@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#43842}
2025-02-03 07:04:52 -08:00
Henrik Boström
c262375415 Add test for preferring RTX payload to be "primary codec + 1".
Adds test coverage for the following mitigations (need both to pass):
1. https://webrtc-review.googlesource.com/c/src/+/375847
2. https://webrtc-review.googlesource.com/c/src/+/376022

Like the comment says, this is neither mandated by the spec or
guaranteed, but when the number of codecs is quite small like it is in
this test it will be true for all RTX codecs.

Bug: webrtc:360058654
Change-Id: Ib73cea59d06a62390dd039eb2dc04677d6178460
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/375865
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Commit-Queue: Henrik Boström <hbos@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#43841}
2025-02-03 06:11:53 -08:00
Yury Yarashevich
ae24807590 [ObjC] Avoid usage of variable after move in RTCNetworkMonitor.
Allocate std::map in-place and capture pointer to it by Obj-C
lambda.

Bug: None
Change-Id: I285d8b2d10fef9130a5d0e457ad3982ff8a1f00f
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/375920
Commit-Queue: Yury Yarashevich <yura.yaroshevich@gmail.com>
Reviewed-by: Kári Helgason <kthelgason@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#43840}
2025-02-03 05:31:29 -08:00
Yury Yarashevich
f80562d22a [ObjC] Validate and store strong ref to peer_connection before use.
Some methods used a weak peer_connection reference directly,
supposedly causing crashes.
Now, both peer_connection and delegate are captured as
strong references and validated before use for consistency.

Bug: webrtc:393263500
Change-Id: I0ab39acf7097d4c8082d05749b37b6d4998f9aa7
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/375880
Reviewed-by: Kári Helgason <kthelgason@webrtc.org>
Commit-Queue: Yury Yarashevich <yura.yaroshevich@gmail.com>
Cr-Commit-Position: refs/heads/main@{#43839}
2025-02-03 05:26:54 -08:00
Henrik Boström
b60a5ab91c Choose RTX codec PT in lower range if codec is in lower range
pc1 video mline without this change (and the previous one):
96 97 107 108 109 114 115 116 117 118 119 120 37 121 40 124 98 99 100 101 127 42 43
with this change:
96 97 103 104 107 108 109 114 115 116 117 118 39 40 45 46 98 99 100 101 119 120 121

BUG=webrtc:360058654

Change-Id: I4021daf1c62f0edf9650e12a74619035040291a8
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/376022
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Commit-Queue: Henrik Boström <hbos@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#43838}
2025-02-03 04:42:05 -08:00
Yury Yarashevich
1181edda58 [ObjC] Fix strong reference check in RTCNetworkMonitor.
Strong reference must be validated when created from weak reference,
otherwise crashes are possible and actually observed via Crashlytics.

Bug: None
Change-Id: I68355080ba3b20119c913a9c7e27edc07b5447cd
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/375901
Commit-Queue: Yury Yarashevich <yura.yaroshevich@gmail.com>
Reviewed-by: Kári Helgason <kthelgason@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#43837}
2025-02-03 04:41:01 -08:00
Yury Yarashevich
6f17d09dd1 [ObjC] Init NSMutableDictionary with capacity.
It make sense to initialize dictionary with capacity to avoid
reallocation during inserting values to dictionary.

Bug: None
Change-Id: Ic3e73b95a36a39dafb89e57d49e89424eb131b4c
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/375960
Reviewed-by: Kári Helgason <kthelgason@webrtc.org>
Commit-Queue: Yury Yarashevich <yura.yaroshevich@gmail.com>
Cr-Commit-Position: refs/heads/main@{#43836}
2025-02-03 03:26:12 -08:00
Danil Chapovalov
34c15bc511 Restructure PeerConnectionBundleTest helper not to create PortAllocator
Instead rely on PeerConnectionFactory to create it.

Bug: webrtc:42232556
Change-Id: If3de8a2e311fcdca4371cca03d10bd383fbd3e01
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/375922
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#43835}
2025-02-03 03:06:13 -08:00
webrtc-version-updater
9830de94e2 Update WebRTC code version (2025-02-01T04:05:45).
Bug: None
Change-Id: I6b48138f72f14d2beb0fa76519bed8ac86ae2d4a
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/376140
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@{#43834}
2025-01-31 22:20:35 -08:00