Skip to content

Conversation

ipavlidakis
Copy link

This branch has been created by working on the upgraded version from Official repo & Livekit. Then rebased the resulted branch from our develop while accepting all changes from the resulted branch.

DanilChapovalov and others added 30 commits September 15, 2025 17:09
This allows to inject field trials into VoipEngine
 without using global field trials.
Exposing full Environment also allows to share it across VoipEngine
 and other WebRTC components that require Environment.

Bug: webrtc:42220378
Change-Id: I18f96713d479371d5275e2350bc97b9a99df07cb
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/383380
Commit-Queue: Danil Chapovalov <[email protected]>
Reviewed-by: Harald Alvestrand <[email protected]>
Cr-Commit-Position: refs/heads/main@{#44255}
This is to be aligned with Chromium following https://chromium-review.googlesource.com/c/chromium/src/+/6363254.

Goal is to fix the webrtc perf tests upload script.

Change-Id: I7f4a9c495db973fdfdb594d742427959500a8b97
Bug: None
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/383440
Reviewed-by: Mirko Bonadei <[email protected]>
Commit-Queue: Jeremy Leconte <[email protected]>
Cr-Commit-Position: refs/heads/main@{#44256}
Change log: https://chromium.googlesource.com/chromium/src/+log/7460ef0ef7..69ba25d770
Full diff: https://chromium.googlesource.com/chromium/src/+/7460ef0ef7..69ba25d770

Changed dependencies
* src/base: https://chromium.googlesource.com/chromium/src/base/+log/51704fb448..4f575a5f31
* src/ios: https://chromium.googlesource.com/chromium/src/ios/+log/0fd856a36a..028b63926f
* src/testing: https://chromium.googlesource.com/chromium/src/testing/+log/f04b724022..7ceadf62e5
* src/third_party: https://chromium.googlesource.com/chromium/src/third_party/+log/7e85ae489f..fcab9b3634
* src/third_party/android_deps/autorolled/cipd: hC2tVuJ_9gfUl2Grztk_eU8GrGLEDstUoZgtaPGLSfsC..tdwMr59zJpk4_nRDZFn1OSWoe8FrLQ_rnJZxvVnUUh8C
* src/third_party/grpc/src: https://chromium.googlesource.com/external/github.com/grpc/grpc.git/+log/72ffc0b907..12278ba190
* src/third_party/llvm-libc/src: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libc.git/+log/225cbadd34..ffdeea1ab2
* src/third_party/rust-toolchain_version: Linux_x64/rust-toolchain-9fcc9cf4a202aadfe1f44722b39c83536eba3dba-2-llvmorg-21-init-1655-g7b473dfe.tar.xz,Mac/rust-toolchain-9fcc9cf4a202aadfe1f44722b39c83536eba3dba-2-llvmorg-21-init-1655-g7b473dfe.tar.xz,Mac_arm64/rust-toolchain-9fcc9cf4a202aadfe1f44722b39c83536eba3dba-2-llvmorg-21-init-1655-g7b473dfe.tar.xz,Win/rust-toolchain-9fcc9cf4a202aadfe1f44722b39c83536eba3dba-2-llvmorg-21-init-1655-g7b473dfe.tar.xz..Linux_x64/rust-toolchain-f7b43542838f0a4a6cfdb17fbeadf45002042a77-1-llvmorg-21-init-5118-g52cd27e6.tar.xz,Mac/rust-toolchain-f7b43542838f0a4a6cfdb17fbeadf45002042a77-1-llvmorg-21-init-5118-g52cd27e6.tar.xz,Mac_arm64/rust-toolchain-f7b43542838f0a4a6cfdb17fbeadf45002042a77-1-llvmorg-21-init-5118-g52cd27e6.tar.xz,Win/rust-toolchain-f7b43542838f0a4a6cfdb17fbeadf45002042a77-1-llvmorg-21-init-5118-g52cd27e6.tar.xz
* src/tools: https://chromium.googlesource.com/chromium/src/tools/+log/b8b95955b8..3df869d5f3
DEPS diff: https://chromium.googlesource.com/chromium/src/+/7460ef0ef7..69ba25d770/DEPS

No update to Clang.

BUG=None

Change-Id: I34f31bc577cfcc94c26c7c9f9808bdf2c6a98c35
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/383365
Bot-Commit: Autoroller <[email protected]>
Commit-Queue: Autoroller <[email protected]>
Cr-Commit-Position: refs/heads/main@{#44257}
The WG decided we should add this to the web. The PR was updated to
return 0 in singlecast instead of missing value, so let's make our C++
implementation match as well.

Bug: chromium:404853839, chromium:406922375
Change-Id: I247555559d00138ab78d7e2df23629787fcab723
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/383500
Auto-Submit: Henrik Boström <[email protected]>
Reviewed-by: Harald Alvestrand <[email protected]>
Commit-Queue: Henrik Boström <[email protected]>
Cr-Commit-Position: refs/heads/main@{#44258}
SanitizerError
AddressSanitizer: heap-use-after-free third_party/webrtc/files/stable/webrtc/rtc_base/fake_network.h:100:9 in webrtc::FakeNetworkManager::DoUpdateNetworks()

Change-Id: I85c97eedf5c760c50988e6c4532a2e7c3287e4e9
Bug: b/138770632
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/383480
Commit-Queue: Jeremy Leconte <[email protected]>
Reviewed-by: Per Kjellander <[email protected]>
Cr-Commit-Position: refs/heads/main@{#44259}
…rate allocation.

This avoids blocking the worker thread on audio encoding for these updates.

Bug: None
Change-Id: I4a3ddbbfd5cfad6190d258d8d173d07d3d86d404
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/383520
Commit-Queue: Jakob Ivarsson‎ <[email protected]>
Reviewed-by: Danil Chapovalov <[email protected]>
Cr-Commit-Position: refs/heads/main@{#44260}
Change log: https://chromium.googlesource.com/chromium/src/+log/69ba25d770..a66aa607fb
Full diff: https://chromium.googlesource.com/chromium/src/+/69ba25d770..a66aa607fb

Changed dependencies
* src/build: https://chromium.googlesource.com/chromium/src/build/+log/69a0df1110..bc165f0a14
* src/buildtools: https://chromium.googlesource.com/chromium/src/buildtools/+log/244e7cf445..c5f8bd5dcb
* src/ios: https://chromium.googlesource.com/chromium/src/ios/+log/028b63926f..a7de4b9f9a
* src/testing: https://chromium.googlesource.com/chromium/src/testing/+log/7ceadf62e5..8ecb0551d2
* src/third_party: https://chromium.googlesource.com/chromium/src/third_party/+log/fcab9b3634..75dbcf4bcf
* src/third_party/grpc/src: https://chromium.googlesource.com/external/github.com/grpc/grpc.git/+log/12278ba190..751b39e1ac
* src/third_party/rust-toolchain_version: Linux_x64/rust-toolchain-9fcc9cf4a202aadfe1f44722b39c83536eba3dba-2-llvmorg-21-init-1655-g7b473dfe.tar.xz,Mac/rust-toolchain-9fcc9cf4a202aadfe1f44722b39c83536eba3dba-2-llvmorg-21-init-1655-g7b473dfe.tar.xz,Mac_arm64/rust-toolchain-9fcc9cf4a202aadfe1f44722b39c83536eba3dba-2-llvmorg-21-init-1655-g7b473dfe.tar.xz,Win/rust-toolchain-9fcc9cf4a202aadfe1f44722b39c83536eba3dba-2-llvmorg-21-init-1655-g7b473dfe.tar.xz..Linux_x64/rust-toolchain-f7b43542838f0a4a6cfdb17fbeadf45002042a77-1-llvmorg-21-init-5118-g52cd27e6.tar.xz,Mac/rust-toolchain-f7b43542838f0a4a6cfdb17fbeadf45002042a77-1-llvmorg-21-init-5118-g52cd27e6.tar.xz,Mac_arm64/rust-toolchain-f7b43542838f0a4a6cfdb17fbeadf45002042a77-1-llvmorg-21-init-5118-g52cd27e6.tar.xz,Win/rust-toolchain-f7b43542838f0a4a6cfdb17fbeadf45002042a77-1-llvmorg-21-init-5118-g52cd27e6.tar.xz
* src/tools: https://chromium.googlesource.com/chromium/src/tools/+log/3df869d5f3..16cb6a76f4
DEPS diff: https://chromium.googlesource.com/chromium/src/+/69ba25d770..a66aa607fb/DEPS

No update to Clang.

BUG=None

Change-Id: I0773cb992fbabe413ee9f47caf55110f021f84a8
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/383540
Bot-Commit: Autoroller <[email protected]>
Commit-Queue: Autoroller <[email protected]>
Cr-Commit-Position: refs/heads/main@{#44261}
Bug: None
Change-Id: Ic8a29382e9e42f1a1aeaf7669b7d084e1e3c0bab
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/383563
Bot-Commit: [email protected] <[email protected]>
Commit-Queue: [email protected] <[email protected]>
Cr-Commit-Position: refs/heads/main@{#44262}
Change log: https://chromium.googlesource.com/chromium/src/+log/a66aa607fb..6f8a258c26
Full diff: https://chromium.googlesource.com/chromium/src/+/a66aa607fb..6f8a258c26

Changed dependencies
* src/base: https://chromium.googlesource.com/chromium/src/base/+log/4f575a5f31..1d80e43078
* src/build: https://chromium.googlesource.com/chromium/src/build/+log/bc165f0a14..451ef881d7
* src/buildtools: https://chromium.googlesource.com/chromium/src/buildtools/+log/c5f8bd5dcb..6f359296da
* src/ios: https://chromium.googlesource.com/chromium/src/ios/+log/a7de4b9f9a..27d993eda8
* src/testing: https://chromium.googlesource.com/chromium/src/testing/+log/8ecb0551d2..f46b86c7f1
* src/third_party: https://chromium.googlesource.com/chromium/src/third_party/+log/75dbcf4bcf..24948a8b1a
* src/third_party/android_build_tools/lint/cipd: DGEQcQfbonqqmrtaKLbu7qkNhJgyZ5ONzcseAUFVX08C..hwubetoXxz5wxh6e9dQGVJl1Ih69nM8m0tFi5cUGujIC
* src/third_party/android_deps/autorolled/cipd: tdwMr59zJpk4_nRDZFn1OSWoe8FrLQ_rnJZxvVnUUh8C..-kw2ioUuVwgaTHjBYvcyYBT3SZ24bRuwH_rIhsiZ24IC
* src/third_party/androidx/cipd: grJo1DQvtLdxZJkMuCYkyYHt_NOBFqixuNOfhflMjMwC..tQn4xDKRsp5NNRc135oEIWtDYXHxMtNqE0Nm7UfnatwC
* src/third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/5b409767f0..5bda0fdab9
* src/third_party/fuzztest/src: https://chromium.googlesource.com/external/github.com/google/fuzztest.git/+log/13130a3a48..3c7bc855a4
* src/third_party/grpc/src: https://chromium.googlesource.com/external/github.com/grpc/grpc.git/+log/751b39e1ac..d8ce421830
* src/third_party/libc++/src: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxx.git/+log/4f05e20cbe..449310fe2e
* src/third_party/llvm-libc/src: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libc.git/+log/ffdeea1ab2..188329a7f2
* src/third_party/rust-toolchain_version: Linux_x64/rust-toolchain-9fcc9cf4a202aadfe1f44722b39c83536eba3dba-2-llvmorg-21-init-1655-g7b473dfe.tar.xz,Mac/rust-toolchain-9fcc9cf4a202aadfe1f44722b39c83536eba3dba-2-llvmorg-21-init-1655-g7b473dfe.tar.xz,Mac_arm64/rust-toolchain-9fcc9cf4a202aadfe1f44722b39c83536eba3dba-2-llvmorg-21-init-1655-g7b473dfe.tar.xz,Win/rust-toolchain-9fcc9cf4a202aadfe1f44722b39c83536eba3dba-2-llvmorg-21-init-1655-g7b473dfe.tar.xz..Linux_x64/rust-toolchain-f7b43542838f0a4a6cfdb17fbeadf45002042a77-1-llvmorg-21-init-5118-g52cd27e6.tar.xz,Mac/rust-toolchain-f7b43542838f0a4a6cfdb17fbeadf45002042a77-1-llvmorg-21-init-5118-g52cd27e6.tar.xz,Mac_arm64/rust-toolchain-f7b43542838f0a4a6cfdb17fbeadf45002042a77-1-llvmorg-21-init-5118-g52cd27e6.tar.xz,Win/rust-toolchain-f7b43542838f0a4a6cfdb17fbeadf45002042a77-1-llvmorg-21-init-5118-g52cd27e6.tar.xz
* src/tools: https://chromium.googlesource.com/chromium/src/tools/+log/16cb6a76f4..adb4564b8a
DEPS diff: https://chromium.googlesource.com/chromium/src/+/a66aa607fb..6f8a258c26/DEPS

No update to Clang.

BUG=None

Change-Id: Iab5e2b57d5867844cb63ebfd4337a6ac0bea44e6
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/383644
Bot-Commit: Autoroller <[email protected]>
Commit-Queue: Jeremy Leconte <[email protected]>
Cr-Commit-Position: refs/heads/main@{#44263}
Users should have migrated to audio_processing_builder instead.

Bug: webrtc:369904700
Change-Id: I815485ae7b7d41a5fefad90a27158838639719a4
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/383700
Commit-Queue: Danil Chapovalov <[email protected]>
Reviewed-by: Harald Alvestrand <[email protected]>
Cr-Commit-Position: refs/heads/main@{#44264}
The conflict happened when a remote offer allocated a PT
that was prereserved for another purpose, but used it for
a different codec.

Found while writing tests for something different.

Adds unit tests to SuggestPayloadType and an absl_stringify
to the codec picker.

Bug: None
Change-Id: Icc192c61dc4d7a6f5c84f2a54f4fda67fdc1a1d3
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/383681
Reviewed-by: Henrik Boström <[email protected]>
Commit-Queue: Harald Alvestrand <[email protected]>
Cr-Commit-Position: refs/heads/main@{#44265}
Change log: https://chromium.googlesource.com/chromium/src/+log/6f8a258c26..43e4a99fb3
Full diff: https://chromium.googlesource.com/chromium/src/+/6f8a258c26..43e4a99fb3

Changed dependencies
* src/build: https://chromium.googlesource.com/chromium/src/build/+log/451ef881d7..52d62707ea
* src/ios: https://chromium.googlesource.com/chromium/src/ios/+log/27d993eda8..510fadd1e0
* src/third_party: https://chromium.googlesource.com/chromium/src/third_party/+log/24948a8b1a..10064104c1
* src/third_party/androidx/cipd: tQn4xDKRsp5NNRc135oEIWtDYXHxMtNqE0Nm7UfnatwC..OHTk-Zj-BcsXRtP5QWpR0SIoInMBgiClQfxw-BTV9pQC
* src/third_party/rust-toolchain_version: Linux_x64/rust-toolchain-9fcc9cf4a202aadfe1f44722b39c83536eba3dba-2-llvmorg-21-init-1655-g7b473dfe.tar.xz,Mac/rust-toolchain-9fcc9cf4a202aadfe1f44722b39c83536eba3dba-2-llvmorg-21-init-1655-g7b473dfe.tar.xz,Mac_arm64/rust-toolchain-9fcc9cf4a202aadfe1f44722b39c83536eba3dba-2-llvmorg-21-init-1655-g7b473dfe.tar.xz,Win/rust-toolchain-9fcc9cf4a202aadfe1f44722b39c83536eba3dba-2-llvmorg-21-init-1655-g7b473dfe.tar.xz..Linux_x64/rust-toolchain-f7b43542838f0a4a6cfdb17fbeadf45002042a77-1-llvmorg-21-init-5118-g52cd27e6.tar.xz,Mac/rust-toolchain-f7b43542838f0a4a6cfdb17fbeadf45002042a77-1-llvmorg-21-init-5118-g52cd27e6.tar.xz,Mac_arm64/rust-toolchain-f7b43542838f0a4a6cfdb17fbeadf45002042a77-1-llvmorg-21-init-5118-g52cd27e6.tar.xz,Win/rust-toolchain-f7b43542838f0a4a6cfdb17fbeadf45002042a77-1-llvmorg-21-init-5118-g52cd27e6.tar.xz
* src/tools: https://chromium.googlesource.com/chromium/src/tools/+log/adb4564b8a..3460fbcdee
DEPS diff: https://chromium.googlesource.com/chromium/src/+/6f8a258c26..43e4a99fb3/DEPS

No update to Clang.

BUG=None

Change-Id: Id27044880fd81e9bf264d226aa1762c01c5d405c
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/383647
Commit-Queue: Autoroller <[email protected]>
Bot-Commit: Autoroller <[email protected]>
Cr-Commit-Position: refs/heads/main@{#44266}
This constructor was deprecated in
https://webrtc-review.googlesource.com/c/src/+/365585

Bug: webrtc:369904700
Change-Id: Ie829f5177558156456ef4beaeb61a1e41f04eac1
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/383682
Commit-Queue: Jeremy Leconte <[email protected]>
Reviewed-by: Jeremy Leconte <[email protected]>
Auto-Submit: Danil Chapovalov <[email protected]>
Cr-Commit-Position: refs/heads/main@{#44267}
`OnCapturedFrame` and `OnEncodedImage` may be called from different
threads, hence synchronization is needed. There have been reports of crashes caused by race condition: https://issues.chromium.org/issues/404925575

Bug: webrtc:358039777, chromium:404925575
Change-Id: I070b9b7309c28ab50de2268af55adbe26e559f6f
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/383021
Reviewed-by: Danil Chapovalov <[email protected]>
Auto-Submit: Fanny Linderborg <[email protected]>
Reviewed-by: Erik Språng <[email protected]>
Commit-Queue: Fanny Linderborg <[email protected]>
Commit-Queue: Erik Språng <[email protected]>
Cr-Commit-Position: refs/heads/main@{#44268}
This is for consistency with chromium, and per style guide wrt
avoiding abbreviations.

Bug: b/306258175
Change-Id: I4a8d870b5b3c28ebf971e8147b2f2499a9678464
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/382861
Commit-Queue: Dustin Green <[email protected]>
Reviewed-by: Danil Chapovalov <[email protected]>
Reviewed-by: Alexander Cooper <[email protected]>
Cr-Commit-Position: refs/heads/main@{#44269}
TaskQueueLibevent is replaced, field trial has no effect.

Bug: webrtc:42224654, webrtc:42221607
Change-Id: I3a180275559fa4f7919a8f9f3f2e16186c6381b5
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/383501
Auto-Submit: Danil Chapovalov <[email protected]>
Reviewed-by: Mirko Bonadei <[email protected]>
Commit-Queue: Mirko Bonadei <[email protected]>
Cr-Commit-Position: refs/heads/main@{#44270}
Change-Id: Ib88060c811b7d27b937e7d7e537469bba1bbac7e
Bug: b/406720114
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/383680
Reviewed-by: Mirko Bonadei <[email protected]>
Commit-Queue: Jeremy Leconte <[email protected]>
Cr-Commit-Position: refs/heads/main@{#44271}
Bug: None
Change-Id: Ie17600e64fb5054ed3baa0f424bdd3adfa728c37
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/370440
Commit-Queue: Harald Alvestrand <[email protected]>
Reviewed-by: Fredrik Solenberg <[email protected]>
Cr-Commit-Position: refs/heads/main@{#44272}
Bug: None
Change-Id: I311de0a6c889bba216cdb2e7b7f1f96abbb9fad7
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/383760
Commit-Queue: [email protected] <[email protected]>
Bot-Commit: [email protected] <[email protected]>
Cr-Commit-Position: refs/heads/main@{#44273}
Files moved,

- boringssl_certificate.h
- buffer_queue.h
- byte_buffer.h
- data_rate_limiter.h
- recursive_critical_section.h
- dscp.h
- file_rotating_stream.h
- ifaddrs_converter.h
- log_sinks.h
- fifo_buffer.h
- memory_stream.h
- message_digest.h
- win32.h
- rate_tracker.h
- openssl_digest.h
- openssl_key_pair.h
- memory_usage.h
- ssl_certificate.h
- ssl_adapter.h
- platform_thread_types.h
- ssl_fingerprint.h
- cpu_time.h
- proxy_server.h
- boringssl_identity.h
- string_utils.h
- default_socket_server.h
- openssl_session_cache.h
- net_helpers.h
- network.h
- network_monitor_factory.h
- network_route.h
- sent_packet.h
- openssl_adapter.h
- openssl_stream_adapter.h
- operations_chain.h
- net_helper.h

No-Iwyu: ssl and socket related files don't play well it include cleaner
Bug: webrtc:42232595
Change-Id: I949cf4e8be6dab99ce170d8c7388c84fdcdd6447
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/382520
Reviewed-by: Harald Alvestrand <[email protected]>
Commit-Queue: Evan Shrubsole <[email protected]>
Cr-Commit-Position: refs/heads/main@{#44274}
Bug: webrtc:42226242
Change-Id: Iba74c0eb4038950243de71ec695923f1b4913eac
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/383401
Reviewed-by: Harald Alvestrand <[email protected]>
Commit-Queue: Jeremy Leconte <[email protected]>
Cr-Commit-Position: refs/heads/main@{#44275}
The testcase name is set differently when uploading the metrics to CPD  based on the presence of the isolated_script_test_perf_output flag.

Change-Id: I9eae262383c9492b97703794b291050a602fb54b
Bug: webrtc:14757
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/383720
Reviewed-by: Artem Titov <[email protected]>
Commit-Queue: Jeremy Leconte <[email protected]>
Cr-Commit-Position: refs/heads/main@{#44276}
This avoids waiting for encoding when fetching the stats, which is currently done on the worker thread.

Bug: None
Change-Id: I08e853a2edc403b545920d154ae9604aab7a32a0
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/383820
Reviewed-by: Henrik Lundin <[email protected]>
Commit-Queue: Jakob Ivarsson‎ <[email protected]>
Cr-Commit-Position: refs/heads/main@{#44277}
Chromium change: https://chromium-review.googlesource.com/c/chromium/src/+/6415653

CL is to unblock the Chromium roll into WebRTC (https://ci.chromium.org/ui/p/webrtc/builders/cron/Auto-roll%20-%20WebRTC%20DEPS).

Change-Id: Iaf7813f6e85fb411bf263cf0f4eeaa3e250833c8
Bug: None
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/383860
Commit-Queue: Jeremy Leconte <[email protected]>
Reviewed-by: Ilya Nikolaevskiy <[email protected]>
Cr-Commit-Position: refs/heads/main@{#44278}
which allows testing DTLS-in-STUN for forward-compatibility and
evaluate the general readyness. This change is guarded under the
field trial
  WebRTC-EnableDtlsPqc

The code is modelled after Chromiums ssl_client_socket_impl:
  https://source.chromium.org/chromium/chromium/src/+/main:net/socket/ssl_client_socket_impl.cc;l=646

See also
  w3c/webrtc-extensions#207

BUG=webrtc:404763475

Change-Id: Ibede93045cafd42b6304b1c040fbf3bd74fa601e
No-Iwyu: IWYU gets confused by defines
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/381681
Reviewed-by: Harald Alvestrand <[email protected]>
Commit-Queue: Jonas Oreland <[email protected]>
Reviewed-by: Jonas Oreland <[email protected]>
Cr-Commit-Position: refs/heads/main@{#44279}
- video_sink_interface.h
- video_source_interface.h
- video_source_base.h
- packet_transport_internal.h
- transport_description_factory.h
- rolling_accumulator.h
- video_broadcaster.h
- ssl_identity.h
- adapted_video_track_source.h
- string_encode.h

No-Iwyu: Too many errors due to tool never being run before (3p libraries like openssl and perfetto confuse the tool too much).
Bug: webrtc:42232595
Change-Id: Id2e4ab137515e5d3c9bd7ac0daa5fd39d84e0e10
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/383781
Reviewed-by: Harald Alvestrand <[email protected]>
Commit-Queue: Evan Shrubsole <[email protected]>
Cr-Commit-Position: refs/heads/main@{#44280}
Bug: webrtc:405883462
Change-Id: Ib42c52f76a1fbdf480608897bdad1306c3709314
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/383024
Reviewed-by: Harald Alvestrand <[email protected]>
Commit-Queue: Danil Chapovalov <[email protected]>
Cr-Commit-Position: refs/heads/main@{#44281}
Change log: https://chromium.googlesource.com/chromium/src/+log/43e4a99fb3..c87b2ac78e
Full diff: https://chromium.googlesource.com/chromium/src/+/43e4a99fb3..c87b2ac78e

Changed dependencies
* src/base: https://chromium.googlesource.com/chromium/src/base/+log/1d80e43078..e62aa1e0a8
* src/build: https://chromium.googlesource.com/chromium/src/build/+log/52d62707ea..7f64565e57
* src/buildtools: https://chromium.googlesource.com/chromium/src/buildtools/+log/6f359296da..299cb62c60
* src/ios: https://chromium.googlesource.com/chromium/src/ios/+log/510fadd1e0..a049c89748
* src/testing: https://chromium.googlesource.com/chromium/src/testing/+log/f46b86c7f1..66a91bf619
* src/third_party: https://chromium.googlesource.com/chromium/src/third_party/+log/10064104c1..ee428b2cc3
* src/third_party/android_build_tools/error_prone/cipd: 2cQ2nbgV3geU7-RincCggMgIe4NuUB_eW5Rm58CgMY8C..muHOjW6H-gb8j6gY4sUylWC1paxyWPRMAeYZ1Ok8KkwC
* src/third_party/android_build_tools/lint/cipd: hwubetoXxz5wxh6e9dQGVJl1Ih69nM8m0tFi5cUGujIC..cpi5krkjlhoCfjDOZ3fIdPXDOqnCGMBVzm_yHg1WnWUC
* src/third_party/android_build_tools/manifest_merger/cipd: Gv6-zTnY5Cj7i1ck5bS92diwCClFq1HHoTCf4kWr4SsC..CsU9U9KptiCc6Y9kUTfQfM4CWrRw4W_SxhOt6SNdf7MC
* src/third_party/androidx/cipd: OHTk-Zj-BcsXRtP5QWpR0SIoInMBgiClQfxw-BTV9pQC..Kb6Mt4bV5tZJ1VC8FHtfDaC3bwHfmdUovz5JfHFzVHgC
* src/third_party/boringssl/src: https://boringssl.googlesource.com/boringssl.git/+log/a9993612fa..c86127e656
* src/third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/5bda0fdab9..8010a1b2f5
* src/third_party/fuzztest/src: https://chromium.googlesource.com/external/github.com/google/fuzztest.git/+log/3c7bc855a4..998cda318c
* src/third_party/grpc/src: https://chromium.googlesource.com/external/github.com/grpc/grpc.git/+log/d8ce421830..c8811240b9
* src/third_party/kotlin_stdlib/cipd: Ek4qdlAGvswwQ1AaKLNPnDUMCYHw4uWRL63Yek0nMwkC..CsG9Cc73IOfO01Pq9amuURppP5Ef9TPp9RgOElj4T5EC
* src/third_party/libc++/src: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxx.git/+log/449310fe2e..35a5aaad4a
* src/third_party/libunwindstack: https://chromium.googlesource.com/chromium/src/third_party/libunwindstack.git/+log/e5061bbda4..0d758dd57f
* src/third_party/llvm-libc/src: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libc.git/+log/188329a7f2..23bef80461
* src/third_party/perfetto: https://chromium.googlesource.com/external/github.com/google/perfetto.git/+log/40b5299235..29152c0585
* src/third_party/r8/d8/cipd: f-Ka2tsB3j_I6-Av4qE9ftl6KddtjV-pRVcUUc9cgYQC..wvbyt_Mr06Bl4Rcv4zoX-sTk_keiEYxfspOMUufh5nIC
* src/third_party/rust-toolchain_version: Linux_x64/rust-toolchain-9fcc9cf4a202aadfe1f44722b39c83536eba3dba-2-llvmorg-21-init-1655-g7b473dfe.tar.xz,Mac/rust-toolchain-9fcc9cf4a202aadfe1f44722b39c83536eba3dba-2-llvmorg-21-init-1655-g7b473dfe.tar.xz,Mac_arm64/rust-toolchain-9fcc9cf4a202aadfe1f44722b39c83536eba3dba-2-llvmorg-21-init-1655-g7b473dfe.tar.xz,Win/rust-toolchain-9fcc9cf4a202aadfe1f44722b39c83536eba3dba-2-llvmorg-21-init-1655-g7b473dfe.tar.xz..Linux_x64/rust-toolchain-f7b43542838f0a4a6cfdb17fbeadf45002042a77-1-llvmorg-21-init-5118-g52cd27e6.tar.xz,Mac/rust-toolchain-f7b43542838f0a4a6cfdb17fbeadf45002042a77-1-llvmorg-21-init-5118-g52cd27e6.tar.xz,Mac_arm64/rust-toolchain-f7b43542838f0a4a6cfdb17fbeadf45002042a77-1-llvmorg-21-init-5118-g52cd27e6.tar.xz,Win/rust-toolchain-f7b43542838f0a4a6cfdb17fbeadf45002042a77-1-llvmorg-21-init-5118-g52cd27e6.tar.xz
* src/third_party/turbine/cipd: lnlrbUuImYl1BaRqVclTMOqA0KVYDYdym4ujLkPurbMC..scfGptWnO9bwzbg-jr0mcnVO3NG5KQJvlAQd_JSD5QUC
* src/tools: https://chromium.googlesource.com/chromium/src/tools/+log/3460fbcdee..1b9b9ace3d
DEPS diff: https://chromium.googlesource.com/chromium/src/+/43e4a99fb3..c87b2ac78e/DEPS

No update to Clang.

BUG=None

Change-Id: I336610954009676b5741a624293ade960a08e410
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/383880
Bot-Commit: Autoroller <[email protected]>
Commit-Queue: Autoroller <[email protected]>
Cr-Commit-Position: refs/heads/main@{#44282}
No-Iwyu: Same issue as parent, too many unlrelated errors from 3p libs
Bug: webrtc:42232595, webrtc:397348340
Change-Id: I11ecb0a43b2a17798304953279cbb102af353d73
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/383800
Reviewed-by: Harald Alvestrand <[email protected]>
Commit-Queue: Evan Shrubsole <[email protected]>
Cr-Commit-Position: refs/heads/main@{#44283}
This uses the PayloadTypeSuggester for PT disambiguation,
ensuring that conficts are managed across the transport.

Bug: webrtc:360058654
Change-Id: Ic8f0569d0d96d97c13765169903929ec8a110104
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/383400
Commit-Queue: Harald Alvestrand <[email protected]>
Reviewed-by: Evan Shrubsole <[email protected]>
Reviewed-by: Henrik Boström <[email protected]>
Cr-Commit-Position: refs/heads/main@{#44284}
davidliu and others added 24 commits September 15, 2025 17:10
Remote audio goes through AudioProcessingModule now so it's possible to
get the buffer.
Avoids crash at transceiver deinit that channel is not cleaned up.

---------

Co-authored-by: Błażej Pankowski <[email protected]>
TODO:
- [x] Core Implementation
- [x] Android JNI Wrapper
- [x] Objective-C Wrapper

---------

Co-authored-by: davidliu <[email protected]>
Co-authored-by: Hiroshi Horie <[email protected]>
(cherry picked from commit b212d2e)
* Add a way to intercept the audio samples before processing

* fix BUILD.gn

(cherry picked from commit b33e7bd)
Start/Stop receiving stream method for VideoTrack (#25)

Properly remove observer upon deconstruction (#26)

feat: Expose setCodecPreferences/getCapabilities for android. (#61)

fix: add WrappedVideoDecoderFactory.java. (#74)

Exposing Adapter types in PeerConnectionFactory (#78)

Co-authored-by: davidliu <[email protected]>
Co-authored-by: Mohamed Risaldar UT <[email protected]>
(cherry picked from commit e91f003)

# Conflicts:
#	media/base/media_channel.h
#	media/engine/webrtc_video_engine.cc
#	media/engine/webrtc_video_engine.h
* Audio Device Optimization

allow listen-only mode in AudioUnit, adjust when category changes (#2)

release mic when category changes (#5)

Change defaults to iOS defaults (#7)

Sync audio session config (#8)

feat: support bypass voice processing for iOS. (#15)

Remove MacBookPro audio pan right code (#22)

fix: Fix can't open mic alone when built-in AEC is enabled. (#29)

feat: add audio device changes detect for windows. (#41)

fix Linux compile (#47)

AudioUnit: Don't rely on category switch for mic indicator to turn off (#52)

Stop recording on mute (turn off mic indicator) (#55)

Cherry pick audio selection from m97 release (#35)

[Mac] Allow audio device selection (#21)

RTCAudioDeviceModule.outputDevice / inputDevice getter and setter (#80)

Co-authored-by: Hiroshi Horie <[email protected]>
Co-authored-by: David Zhao <[email protected]>

* fix compilation errors

---------

Co-authored-by: CloudWebRTC <[email protected]>
Co-authored-by: Hiroshi Horie <[email protected]>
Co-authored-by: David Zhao <[email protected]>
* audio renderer protocol

* basic set up

* progress

* update header year

* impl

* stereo

* fail gracefully

* minor fix

* doc

* optimize AudioStreamBasicDescription

* logging

* minor refactoring

* weak reference to delegates

* fix timestamp computation

* change swift delegate signature

* use os_unfair_lock instead

* avoid deadlock

Co-authored-by: Hiroshi Horie <[email protected]>
* Allow custom audio processing by exposing AudioProcessingModule

* compilation fix

* fix BUILD.gn

* fix BUILD.gn
* [PBE-5300] add android-external-audio-processing

* [PBE-5300] add external_processor.cc

* [PBE-5300] clean up jni

* [PBE-5300] clean java layer

* [PBE-5300] rename files & classes

* [PBE-5300] add external processor

* [PBE-5300] fix java compilation

* [PBE-5300] remove NonNull annotation

* [PBE-5300] add missing include

* [PBE-5300] pass external_processor

* [PBE-5300] fix unguarded headers

* [PBE-5300] fix JNI_ExternalAudioProcessingFactory params

* [PBE-5300] change include order

* [PBE-5300] jni experiment 1

* [PBE-5300] jni experiment 2

* [PBE-5300] jni experiment 3

* [PBE-5300] jni experiment 4

* [PBE-5300] jni experiment 5

* [PBE-5300] jni experiment 6

* [PBE-5300] jni experiment 7

* [PBE-5300] jni experiment 8

* [PBE-5300] jni experiment 9

* [PBE-5300] jni experiment 10

* [PBE-5300] jni experiment 11

* [PBE-5300] jni experiment 12

* [PBE-5300] jni experiment 13

* [PBE-5300] jni experiment 14

* [PBE-5300] jni experiment 15

* [PBE-5300] add dynamic processing

* fix nativeGetInstance

* rename to nativeGetApm

* fix compilation

* hardcode name

* fix jni compilation

* fix compilation issue

* fix dynamic_processing.cc

* rename to dynamic_apm_ptr

* convert dynamic to external

* fix compilation issues

* fix nativeDestroyAudioProcessingModule return type

* include external_processor_loader

* update BUILD.gn

* fix loadExternalProcessor return type

* define Create & Destroy

* delete loader include

* fix Load to Create

* migrate to external functions

* clean up logs
* fix simulcast_video_encoder

* fix SimulcastVideoEncoder.java

* fix simulcast_video_encoder_factory.cc

* fix HardwareVideoEncoderWrapper.java
* Update to m125. (#119)

Use M125 as the latest version and migrate historical patches to m125

Patches Group:

## 1. Update README.md
webrtc-sdk/webrtc@b6c65fc
* Add Apache-2.0 license and some note to README.md. (#9)
* Updated readme detailing changes from original (#42)
* Adding membrane framework (#51)
* Updated readme (#83)

## 2. Audio Device Optimization
webrtc-sdk/webrtc@7454824
* allow listen-only mode in AudioUnit, adjust when category changes
(webrtc-sdk/webrtc#2)
* release mic when category changes
(webrtc-sdk/webrtc#5)
* Change defaults to iOS defaults
(webrtc-sdk/webrtc#7)
* Sync audio session config
(webrtc-sdk/webrtc#8)
* feat: support bypass voice processing for iOS.
(webrtc-sdk/webrtc#15)
* Remove MacBookPro audio pan right code
(webrtc-sdk/webrtc#22)
* fix: Fix can't open mic alone when built-in AEC is enabled.
(webrtc-sdk/webrtc#29)
* feat: add audio device changes detect for windows.
(webrtc-sdk/webrtc#41)
* fix Linux compile (webrtc-sdk/webrtc#47)
* AudioUnit: Don't rely on category switch for mic indicator to turn off
(webrtc-sdk/webrtc#52)
* Stop recording on mute (turn off mic indicator)
(webrtc-sdk/webrtc#55)
* Cherry pick audio selection from m97 release
(webrtc-sdk/webrtc#35)
* [Mac] Allow audio device selection
(webrtc-sdk/webrtc#21)
* RTCAudioDeviceModule.outputDevice / inputDevice getter and setter
(webrtc-sdk/webrtc#80)
* Allow custom audio processing by exposing AudioProcessingModule
(webrtc-sdk/webrtc#85)
* Expose audio sample buffers for Android
(webrtc-sdk/webrtc#89)
* feat: add external audio processor for android.
(webrtc-sdk/webrtc#103)
* android: make audio output attributes modifiable
(webrtc-sdk/webrtc#118)
* Fix external audio processor sample rate calculation
(webrtc-sdk/webrtc#108)
* Expose remote audio sample buffers on RTCAudioTrack
(webrtc-sdk/webrtc#84)
* Fix memory leak when creating audio CMSampleBuffer
webrtc-sdk/webrtc#86

## 3. Simulcast/SVC support for iOS/Android.
webrtc-sdk/webrtc@b0b9fe9

- Simulcast support for iOS SDK (#4)
- Support for simulcast in Android SDK (#3)
- include simulcast headers for mac also (#10)
- Fix simulcast using hardware encoder on Android (#48)
- Add scalabilityMode support for AV1/VP9. (#90)

## 4. Android improvements.
webrtc-sdk/webrtc@9aaaab5
- Start/Stop receiving stream method for VideoTrack (#25)
- Properly remove observer upon deconstruction (#26)
- feat: Expose setCodecPreferences/getCapabilities for android. (#61)
- fix: add WrappedVideoDecoderFactory.java. (#74)

## 5. Darwin improvements
webrtc-sdk/webrtc@a13ea17
- [Mac/iOS] feat: Add RTCYUVHelper for darwin. (#28)
- Cross-platform `RTCMTLVideoView` for both iOS / macOS (#40)
- rotationOverride should not be assign (#44)
- [ObjC] Expose properties / methods required for AV1 codec support
(#60)
- Workaround: Render PixelBuffer in RTCMTLVideoView (#58)
- Improve iOS/macOS H264 encoder (#70)
- fix: fix video encoder not resuming correctly upon foregrounding
(#75).
- add PrivacyInfo.xcprivacy to darwin frameworks. (#112)
- Add NSPrivacyCollectedDataTypes key to xcprivacy file (#114)
- Thread-safe `RTCInitFieldTrialDictionary` (#116)
- Set RTCCameraVideoCapturer initial zoom factor (#121)
- Unlock configuration before starting capture session (#122)

## 6. Desktop Capture for macOS.
webrtc-sdk/webrtc@841d78f
- [Mac] feat: Support screen capture for macOS. (#24) (#36)
- fix: Get thumbnails asynchronously. (#37)
- fix: Use CVPixelBuffer to build DesktopCapture Frame, fix the crash
caused by non-CVPixelBuffer frame in RTCVideoEncoderH264 that cannot be
cropped. (#63)
- Fix the crash when setting the fps of the virtual camera. (#62)

## 7. Frame Cryptor Support.
webrtc-sdk/webrtc@fc08745
- feat: Frame Cryptor (aes gcm/cbc). (#54)
- feat: key ratchet/derive. (#66)
- fix: skip invalid key when decryption failed. (#81)
- Improve e2ee, add setSharedKey to KeyProvider. (#88)
- add failure tolerance for framecryptor. (#91)
- fix h264 freeze. (#93)
- Fix/send frame cryptor events from signaling thread (#95)
- more improvements for E2EE. (#96)
- remove too verbose logs (#107)
- Add key ring size to keyProviderOptions. (#109)

## 8. Other improvements.
webrtc-sdk/webrtc@eed6c8a
- Added yuv_helper (#57)
- ABGRToI420, ARGBToI420 & ARGBToRGB24 (#65)
- more yuv wrappers (#87)
- Fix naming for yuv helper (#113)
- Fix missing `RTC_OBJC_TYPE` macros (#100)

---------

Co-authored-by: Hiroshi Horie <[email protected]>
Co-authored-by: David Zhao <[email protected]>
Co-authored-by: davidliu <[email protected]>
Co-authored-by: Angelika Serwa <[email protected]>
Co-authored-by: Théo Monnom <[email protected]>
# Conflicts:
#	README.md
#	media/engine/webrtc_video_engine.cc
#	media/engine/webrtc_video_engine.h
#	modules/audio_device/audio_device_impl.cc
#	sdk/BUILD.gn
#	sdk/android/BUILD.gn
#	sdk/android/api/org/webrtc/RtpParameters.java
#	sdk/android/api/org/webrtc/SimulcastVideoEncoder.java
#	sdk/android/api/org/webrtc/SimulcastVideoEncoderFactory.java
#	sdk/android/api/org/webrtc/VideoCodecInfo.java
#	sdk/android/src/jni/pc/rtp_parameters.cc
#	sdk/android/src/jni/simulcast_video_encoder.cc
#	sdk/android/src/jni/simulcast_video_encoder.h
#	sdk/android/src/jni/video_codec_info.cc
#	sdk/objc/api/peerconnection/RTCAudioDeviceModule+Private.h
#	sdk/objc/api/peerconnection/RTCAudioDeviceModule.h
#	sdk/objc/api/peerconnection/RTCAudioDeviceModule.mm
#	sdk/objc/api/peerconnection/RTCAudioTrack.mm
#	sdk/objc/api/peerconnection/RTCIODevice+Private.h
#	sdk/objc/api/peerconnection/RTCIODevice.mm
#	sdk/objc/api/peerconnection/RTCPeerConnectionFactory.h
#	sdk/objc/api/peerconnection/RTCPeerConnectionFactory.mm
#	sdk/objc/api/video_codec/RTCVideoEncoderSimulcast.h
#	sdk/objc/api/video_codec/RTCVideoEncoderSimulcast.mm
#	sdk/objc/base/RTCAudioRenderer.h
#	sdk/objc/components/video_codec/RTCVideoEncoderFactorySimulcast.h
#	sdk/objc/components/video_codec/RTCVideoEncoderFactorySimulcast.mm

* fix: duplicate simulcast entries

* remove duplicate declaration

* remove duplicate audioDeviceModule

* fix: removed livekit's external audio processor

* fix: add back simulcast factories

* Fix missing RTC_OBJC_TYPE macros

* Fix missing headers and Metal linking

# Conflicts:
#	sdk/BUILD.gn

* Fix Mac Catalyst `RTCCameraVideoCapturer` rotation (#126)

* Fix set frame transformer (#125)

* Fix webrtc_voice_engine not notifying mute change (#128)

Looks like this line was missed during the m125 update.

webrtc-sdk/webrtc@272127d#diff-56f5e0c459b287281ef3b0431d3f4129e8e4be4c6955d845bcb22210f08b7ba5R2289

Adding it back in so that mic is properly released when muted.
# Conflicts:
#	media/engine/webrtc_voice_engine.cc

* android: Allow for skipping checking the audio playstate if needed (#129)

Pausing/stopping the audio track can lead to a race condition against
the AudioTrackThread due to this assert. Normally this is fine since
directly pausing/stopping isn't possible, but user is using reflection
to workaround another audio issue (muted participants still have a
sending audio stream which keeps the audio alive, affecting global sound
if in the background).

Not a full fix, as would like to manually control the audio track
directly (needs a bigger fix to handle proper synchronization before
allowing public access), but this will work through reflection (user
takes responsibility for usage).

* Allow to pass in capture session to RTCCameraVideoCapturer (#132)

Expose initializers to pass in capture session to RTCCameraVideoCapturer
so we can use AVCaptureMultiCamSession etc to capture front and back
simultaneously for iOS.

* Fix NetworkMonitor race condition when dispatching native observers (#135)

There is a race condition in NetworkMonitor where native observers may
be removed concurrently with a notification being dispatched, leading to
a dangling pointer dereference (trying to dispatch an observer that was
already removed and destroyed), and from there a crash with access
violation.

By ensuring dispatching to native observers is done within the
synchronization lock that guards additions/removals of native observers
protects against this race condition. Since native observers callbacks
are posted to the networking thread in the C++ side anyway, there should
be no risk of deadlock/starvation due to long-running observers.

Bug: webrtc:15837
Change-Id: Id2b788f102dbd25de76ceed434c4cd68aa9a569e
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/338643
Reviewed-by: Taylor Brandstetter <[email protected]>
Commit-Queue: Harald Alvestrand <[email protected]>
Reviewed-by: Harald Alvestrand <[email protected]>
Cr-Commit-Position: refs/heads/main@{#42256}

Co-authored-by: Guy Hershenbaum <[email protected]>

* Support for Vision Pro (#131)

TODO:
- [x]  fix compile for RTCCameraVideoCapturer
- [ ]  fix RTCMTLRenderer ?

---------

Co-authored-by: Hiroshi Horie <[email protected]>

* Multicam support (#137)

TODO:
- [x] Return `.systemPreferredCamera` for devices (visionOS only).
- [x] Use `AVCaptureMultiCamSession` only if `isMultiCamSupported` is
true.
- [x] Silence statusBarOrientation warning.

---------

Co-authored-by: [email protected] <[email protected]>

* tvOS support (#139)

17.0+ only atm

---------

Co-authored-by: cloudwebrtc <[email protected]>

* Add isDisposed to MediaStreamTrack (#140)

* chore: handle invalid cipher from key size. (#142)

* Allow software AEC for Simulator (#143)

~Allow to use "googEchoCancellation" constraint for software AEC.
For devices "googEchoCancellation" should be false to use
VoiceProcessingIO.~

* Fix AudioRenderer crash & expose AVAudioPCMBuffer (#144)

* fix: Fix bug for bypass voice processing. (#147)

* chore: remove aes cbc for framecryptor. (#145)

* Change audio renderer output format (#149)

Instead of converting to Float, output original Int data without
conversion.
Output the raw format and convert when required.

* Fixed issue with missing network interfaces on iOS (#151)

Related issue: webrtc-sdk/webrtc#148
Cherry-pick :
https://webrtc.googlesource.com/src/+/fea60ef8e72fb17b4f8a5363aff7e63ab8027b4f

Fixed issue with network interfaces due to a missing return value in the
"nw_path_enumerate_interfaces(...)" block. Exposed in iOS 18,
RTCNetworkMonitor::initWithObserver will only enumerate the first
interface, instead of all device interfaces

Bug: webrtc:359245764
Change-Id: Ifb9f28c33306c0096476a4afb0cdb4d734e87b2c
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/359541
Auto-Submit: Corby <[email protected]>
Commit-Queue: Jonas Oreland <[email protected]>
Reviewed-by: Kári Helgason <[email protected]>
Reviewed-by: Jonas Oreland <[email protected]>
Cr-Commit-Position: refs/heads/main@{#42818}

Co-authored-by: Corby Hoback <[email protected]>

* Custom audio input for Android (#154)

# Conflicts:
#	sdk/android/api/org/webrtc/audio/JavaAudioDeviceModule.java
#	sdk/android/src/java/org/webrtc/audio/WebRtcAudioRecord.java

---------

Co-authored-by: CloudWebRTC <[email protected]>
Co-authored-by: Hiroshi Horie <[email protected]>
Co-authored-by: davidliu <[email protected]>
Co-authored-by: Guy Hershenbaum <[email protected]>
Co-authored-by: Corby Hoback <[email protected]>
* [AND-179] rename ExternalAudioProcessingFactory

* Return java's ExternalAudioProcessingFactory
@ipavlidakis ipavlidakis self-assigned this Sep 15, 2025
@ipavlidakis ipavlidakis added the enhancement New feature or request label Sep 15, 2025
@ipavlidakis ipavlidakis changed the base branch from main to develop September 15, 2025 14:15
@ipavlidakis ipavlidakis deleted the patch/m137.4 branch September 15, 2025 14:33
PratimMallick pushed a commit that referenced this pull request Sep 15, 2025
* Update to m125. (#119)

Use M125 as the latest version and migrate historical patches to m125

Patches Group:

## 1. Update README.md
webrtc-sdk/webrtc@b6c65fc
* Add Apache-2.0 license and some note to README.md. (#9)
* Updated readme detailing changes from original (#42)
* Adding membrane framework (#51)
* Updated readme (#83)

## 2. Audio Device Optimization
webrtc-sdk/webrtc@7454824
* allow listen-only mode in AudioUnit, adjust when category changes
(webrtc-sdk/webrtc#2)
* release mic when category changes
(webrtc-sdk/webrtc#5)
* Change defaults to iOS defaults
(webrtc-sdk/webrtc#7)
* Sync audio session config
(webrtc-sdk/webrtc#8)
* feat: support bypass voice processing for iOS.
(webrtc-sdk/webrtc#15)
* Remove MacBookPro audio pan right code
(webrtc-sdk/webrtc#22)
* fix: Fix can't open mic alone when built-in AEC is enabled.
(webrtc-sdk/webrtc#29)
* feat: add audio device changes detect for windows.
(webrtc-sdk/webrtc#41)
* fix Linux compile (webrtc-sdk/webrtc#47)
* AudioUnit: Don't rely on category switch for mic indicator to turn off
(webrtc-sdk/webrtc#52)
* Stop recording on mute (turn off mic indicator)
(webrtc-sdk/webrtc#55)
* Cherry pick audio selection from m97 release
(webrtc-sdk/webrtc#35)
* [Mac] Allow audio device selection
(webrtc-sdk/webrtc#21)
* RTCAudioDeviceModule.outputDevice / inputDevice getter and setter
(webrtc-sdk/webrtc#80)
* Allow custom audio processing by exposing AudioProcessingModule
(webrtc-sdk/webrtc#85)
* Expose audio sample buffers for Android
(webrtc-sdk/webrtc#89)
* feat: add external audio processor for android.
(webrtc-sdk/webrtc#103)
* android: make audio output attributes modifiable
(webrtc-sdk/webrtc#118)
* Fix external audio processor sample rate calculation
(webrtc-sdk/webrtc#108)
* Expose remote audio sample buffers on RTCAudioTrack
(webrtc-sdk/webrtc#84)
* Fix memory leak when creating audio CMSampleBuffer
webrtc-sdk/webrtc#86

## 3. Simulcast/SVC support for iOS/Android.
webrtc-sdk/webrtc@b0b9fe9

- Simulcast support for iOS SDK (#4)
- Support for simulcast in Android SDK (#3)
- include simulcast headers for mac also (#10)
- Fix simulcast using hardware encoder on Android (#48)
- Add scalabilityMode support for AV1/VP9. (#90)

## 4. Android improvements.
webrtc-sdk/webrtc@9aaaab5
- Start/Stop receiving stream method for VideoTrack (#25)
- Properly remove observer upon deconstruction (#26)
- feat: Expose setCodecPreferences/getCapabilities for android. (#61)
- fix: add WrappedVideoDecoderFactory.java. (#74)

## 5. Darwin improvements
webrtc-sdk/webrtc@a13ea17
- [Mac/iOS] feat: Add RTCYUVHelper for darwin. (#28)
- Cross-platform `RTCMTLVideoView` for both iOS / macOS (#40)
- rotationOverride should not be assign (#44)
- [ObjC] Expose properties / methods required for AV1 codec support
(#60)
- Workaround: Render PixelBuffer in RTCMTLVideoView (#58)
- Improve iOS/macOS H264 encoder (#70)
- fix: fix video encoder not resuming correctly upon foregrounding
(#75).
- add PrivacyInfo.xcprivacy to darwin frameworks. (#112)
- Add NSPrivacyCollectedDataTypes key to xcprivacy file (#114)
- Thread-safe `RTCInitFieldTrialDictionary` (#116)
- Set RTCCameraVideoCapturer initial zoom factor (#121)
- Unlock configuration before starting capture session (#122)

## 6. Desktop Capture for macOS.
webrtc-sdk/webrtc@841d78f
- [Mac] feat: Support screen capture for macOS. (#24) (#36)
- fix: Get thumbnails asynchronously. (#37)
- fix: Use CVPixelBuffer to build DesktopCapture Frame, fix the crash
caused by non-CVPixelBuffer frame in RTCVideoEncoderH264 that cannot be
cropped. (#63)
- Fix the crash when setting the fps of the virtual camera. (#62)

## 7. Frame Cryptor Support.
webrtc-sdk/webrtc@fc08745
- feat: Frame Cryptor (aes gcm/cbc). (#54)
- feat: key ratchet/derive. (#66)
- fix: skip invalid key when decryption failed. (#81)
- Improve e2ee, add setSharedKey to KeyProvider. (#88)
- add failure tolerance for framecryptor. (#91)
- fix h264 freeze. (#93)
- Fix/send frame cryptor events from signaling thread (#95)
- more improvements for E2EE. (#96)
- remove too verbose logs (#107)
- Add key ring size to keyProviderOptions. (#109)

## 8. Other improvements.
webrtc-sdk/webrtc@eed6c8a
- Added yuv_helper (#57)
- ABGRToI420, ARGBToI420 & ARGBToRGB24 (#65)
- more yuv wrappers (#87)
- Fix naming for yuv helper (#113)
- Fix missing `RTC_OBJC_TYPE` macros (#100)

---------

Co-authored-by: Hiroshi Horie <[email protected]>
Co-authored-by: David Zhao <[email protected]>
Co-authored-by: davidliu <[email protected]>
Co-authored-by: Angelika Serwa <[email protected]>
Co-authored-by: Théo Monnom <[email protected]>
# Conflicts:
#	README.md
#	media/engine/webrtc_video_engine.cc
#	media/engine/webrtc_video_engine.h
#	modules/audio_device/audio_device_impl.cc
#	sdk/BUILD.gn
#	sdk/android/BUILD.gn
#	sdk/android/api/org/webrtc/RtpParameters.java
#	sdk/android/api/org/webrtc/SimulcastVideoEncoder.java
#	sdk/android/api/org/webrtc/SimulcastVideoEncoderFactory.java
#	sdk/android/api/org/webrtc/VideoCodecInfo.java
#	sdk/android/src/jni/pc/rtp_parameters.cc
#	sdk/android/src/jni/simulcast_video_encoder.cc
#	sdk/android/src/jni/simulcast_video_encoder.h
#	sdk/android/src/jni/video_codec_info.cc
#	sdk/objc/api/peerconnection/RTCAudioDeviceModule+Private.h
#	sdk/objc/api/peerconnection/RTCAudioDeviceModule.h
#	sdk/objc/api/peerconnection/RTCAudioDeviceModule.mm
#	sdk/objc/api/peerconnection/RTCAudioTrack.mm
#	sdk/objc/api/peerconnection/RTCIODevice+Private.h
#	sdk/objc/api/peerconnection/RTCIODevice.mm
#	sdk/objc/api/peerconnection/RTCPeerConnectionFactory.h
#	sdk/objc/api/peerconnection/RTCPeerConnectionFactory.mm
#	sdk/objc/api/video_codec/RTCVideoEncoderSimulcast.h
#	sdk/objc/api/video_codec/RTCVideoEncoderSimulcast.mm
#	sdk/objc/base/RTCAudioRenderer.h
#	sdk/objc/components/video_codec/RTCVideoEncoderFactorySimulcast.h
#	sdk/objc/components/video_codec/RTCVideoEncoderFactorySimulcast.mm

* fix: duplicate simulcast entries

* remove duplicate declaration

* remove duplicate audioDeviceModule

* fix: removed livekit's external audio processor

* fix: add back simulcast factories

* Fix missing RTC_OBJC_TYPE macros

* Fix missing headers and Metal linking

# Conflicts:
#	sdk/BUILD.gn

* Fix Mac Catalyst `RTCCameraVideoCapturer` rotation (#126)

* Fix set frame transformer (#125)

* Fix webrtc_voice_engine not notifying mute change (#128)

Looks like this line was missed during the m125 update.

webrtc-sdk/webrtc@272127d#diff-56f5e0c459b287281ef3b0431d3f4129e8e4be4c6955d845bcb22210f08b7ba5R2289

Adding it back in so that mic is properly released when muted.
# Conflicts:
#	media/engine/webrtc_voice_engine.cc

* android: Allow for skipping checking the audio playstate if needed (#129)

Pausing/stopping the audio track can lead to a race condition against
the AudioTrackThread due to this assert. Normally this is fine since
directly pausing/stopping isn't possible, but user is using reflection
to workaround another audio issue (muted participants still have a
sending audio stream which keeps the audio alive, affecting global sound
if in the background).

Not a full fix, as would like to manually control the audio track
directly (needs a bigger fix to handle proper synchronization before
allowing public access), but this will work through reflection (user
takes responsibility for usage).

* Allow to pass in capture session to RTCCameraVideoCapturer (#132)

Expose initializers to pass in capture session to RTCCameraVideoCapturer
so we can use AVCaptureMultiCamSession etc to capture front and back
simultaneously for iOS.

* Fix NetworkMonitor race condition when dispatching native observers (#135)

There is a race condition in NetworkMonitor where native observers may
be removed concurrently with a notification being dispatched, leading to
a dangling pointer dereference (trying to dispatch an observer that was
already removed and destroyed), and from there a crash with access
violation.

By ensuring dispatching to native observers is done within the
synchronization lock that guards additions/removals of native observers
protects against this race condition. Since native observers callbacks
are posted to the networking thread in the C++ side anyway, there should
be no risk of deadlock/starvation due to long-running observers.

Bug: webrtc:15837
Change-Id: Id2b788f102dbd25de76ceed434c4cd68aa9a569e
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/338643
Reviewed-by: Taylor Brandstetter <[email protected]>
Commit-Queue: Harald Alvestrand <[email protected]>
Reviewed-by: Harald Alvestrand <[email protected]>
Cr-Commit-Position: refs/heads/main@{#42256}

Co-authored-by: Guy Hershenbaum <[email protected]>

* Support for Vision Pro (#131)

TODO:
- [x]  fix compile for RTCCameraVideoCapturer
- [ ]  fix RTCMTLRenderer ?

---------

Co-authored-by: Hiroshi Horie <[email protected]>

* Multicam support (#137)

TODO:
- [x] Return `.systemPreferredCamera` for devices (visionOS only).
- [x] Use `AVCaptureMultiCamSession` only if `isMultiCamSupported` is
true.
- [x] Silence statusBarOrientation warning.

---------

Co-authored-by: [email protected] <[email protected]>

* tvOS support (#139)

17.0+ only atm

---------

Co-authored-by: cloudwebrtc <[email protected]>

* Add isDisposed to MediaStreamTrack (#140)

* chore: handle invalid cipher from key size. (#142)

* Allow software AEC for Simulator (#143)

~Allow to use "googEchoCancellation" constraint for software AEC.
For devices "googEchoCancellation" should be false to use
VoiceProcessingIO.~

* Fix AudioRenderer crash & expose AVAudioPCMBuffer (#144)

* fix: Fix bug for bypass voice processing. (#147)

* chore: remove aes cbc for framecryptor. (#145)

* Change audio renderer output format (#149)

Instead of converting to Float, output original Int data without
conversion.
Output the raw format and convert when required.

* Fixed issue with missing network interfaces on iOS (#151)

Related issue: webrtc-sdk/webrtc#148
Cherry-pick :
https://webrtc.googlesource.com/src/+/fea60ef8e72fb17b4f8a5363aff7e63ab8027b4f

Fixed issue with network interfaces due to a missing return value in the
"nw_path_enumerate_interfaces(...)" block. Exposed in iOS 18,
RTCNetworkMonitor::initWithObserver will only enumerate the first
interface, instead of all device interfaces

Bug: webrtc:359245764
Change-Id: Ifb9f28c33306c0096476a4afb0cdb4d734e87b2c
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/359541
Auto-Submit: Corby <[email protected]>
Commit-Queue: Jonas Oreland <[email protected]>
Reviewed-by: Kári Helgason <[email protected]>
Reviewed-by: Jonas Oreland <[email protected]>
Cr-Commit-Position: refs/heads/main@{#42818}

Co-authored-by: Corby Hoback <[email protected]>

* Custom audio input for Android (#154)

# Conflicts:
#	sdk/android/api/org/webrtc/audio/JavaAudioDeviceModule.java
#	sdk/android/src/java/org/webrtc/audio/WebRtcAudioRecord.java

---------

Co-authored-by: CloudWebRTC <[email protected]>
Co-authored-by: Hiroshi Horie <[email protected]>
Co-authored-by: davidliu <[email protected]>
Co-authored-by: Guy Hershenbaum <[email protected]>
Co-authored-by: Corby Hoback <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.