feat(m144 upgrade): patch from m137_release (#173)#217
Open
cloudwebrtc wants to merge 49 commits intom144_releasefrom
Open
feat(m144 upgrade): patch from m137_release (#173)#217cloudwebrtc wants to merge 49 commits intom144_releasefrom
cloudwebrtc wants to merge 49 commits intom144_releasefrom
Conversation
fixed VP9/AV1 encoder unusable. We have to apply this patch and publish new binary packages. Otherwise we can't use AV1/VP9 codec in Apple platform.
Co-authored-by: Hiroshi Horie <548776+hiroshihorie@users.noreply.github.com> Co-authored-by: Harsh Shandilya <122249239+harshs-dyte@users.noreply.github.com>
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 <86720177+pblazej@users.noreply.github.com>
TODO: - [x] Core Implementation - [x] Android JNI Wrapper - [x] Objective-C Wrapper --------- Co-authored-by: davidliu <davidliu@deviange.net>
8651b87 to
dac34fa
Compare
Adds a flag to override engine start/stop behavior, useful in scenarios such as CallKit, where the timing for starting AVAudioSession and AVAudioEngine is restricted.
Fixes crash when toggling audio rendering mode at run-time.
Check recording perm & AVAudioSession.category when enabling input for device rendering mode to avoid crashes.
… setup to prevent WebRTC deadlocks (#197) ## Description This PR makes two small but important changes to improve thread safety and reduce deadlock risk in the iOS bindings: ### 1. RTCAudioTrack.mm - Remove the explicit [self removeAllRenderers]. - Instead, iterate _adapters and remove each sink from the native audio track without switching threads, aligning the behavior with RTCVideoTrack.mm. - This simplifies teardown and avoids extra synchronization points. ### 2.RTCFrameCryptor.mm - Remove factory.signalingThread->BlockingCall around nativeRtpReceiver->SetDepacketizerToDecoderFrameTransformer(...). - The native call path already runs on the worker thread, so performing a BlockingCall from the signaling thread introduces an unnecessary signaling → worker hop that can increase deadlock risk in tight teardown/configuration sequences. ## Problem Solved - Redundant signaling → worker thread switching during audio renderer cleanup and frame-cryptor configuration could contribute to deadlocks under timing-sensitive conditions (e.g., track teardown overlapping with transformer setup). - By eliminating that extra hop, we reduce contention between signaling and worker threads without changing observable behavior. ## Impact - Lower likelihood of hangs/deadlocks on teardown/configuration paths. - Implementation now matches RTCVideoTrack.mm for audio cleanup. - No public API changes. --------- Co-authored-by: Hiroshi Horie <548776+hiroshihorie@users.noreply.github.com>
…oid (#205) These default values got changed from true to false in #178. On Android, the way the audio options are set is fairly janky, and actually relied on these initially defaulting to true. I'm not sure if other non iOS platforms rely on these initial default values as well, but that's something to be aware of for those platforms.
Alternative of #208
Set automaticallyConfiguresApplicationAudioSession to false just in case.
* Use enums for ducking level * Change default ducking level settings
8cf1d5c to
cfbcc6c
Compare
Contributor
|
🍏
|
pblazej
reviewed
Feb 12, 2026
|
|
||
| static webrtc::Environment CreateDefaultEnvironment() { | ||
| return webrtc::CreateEnvironment( | ||
| std::make_unique<webrtc::FieldTrials>("WebRTC-IceHandshakeDtls/Enabled/")); |
Contributor
There was a problem hiding this comment.
I think there's no way to pass it on Apple vs Kotlin RTCModule.kt via PeerConnectionFactory.Builder.setFieldTrials(), maybe we should invent one to avoid hardcoding?
cc @davidliu
Contributor
|
🍏 AV1 encoder is failing: The hypothesis is dimensions mismatch, but I could not reproduce that with VP (same cases): Logs: Upstream commit: |
Contributor
|
🍏
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.