Commit b4c7c6f
Sync with livekit's m125 (#42)
* 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 <548776+hiroshihorie@users.noreply.github.com>
Co-authored-by: David Zhao <dz@livekit.io>
Co-authored-by: davidliu <davidliu@deviange.net>
Co-authored-by: Angelika Serwa <angelika.serwa@gmail.com>
Co-authored-by: Théo Monnom <theo.monnom@outlook.com>
# 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 <deadbeef@webrtc.org>
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42256}
Co-authored-by: Guy Hershenbaum <hershi@meta.com>
* Support for Vision Pro (#131)
TODO:
- [x] fix compile for RTCCameraVideoCapturer
- [ ] fix RTCMTLRenderer ?
---------
Co-authored-by: Hiroshi Horie <548776+hiroshihorie@users.noreply.github.com>
* 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: duanweiwei1982@gmail.com <duanweiwei1982@gmail.com>
* tvOS support (#139)
17.0+ only atm
---------
Co-authored-by: cloudwebrtc <duanweiwei1982@gmail.com>
* 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 <corby.hoback@gmail.com>
Commit-Queue: Jonas Oreland <jonaso@webrtc.org>
Reviewed-by: Kári Helgason <kthelgason@webrtc.org>
Reviewed-by: Jonas Oreland <jonaso@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42818}
Co-authored-by: Corby Hoback <corby.hoback@gmail.com>
* 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 <duanweiwei1982@gmail.com>
Co-authored-by: Hiroshi Horie <548776+hiroshihorie@users.noreply.github.com>
Co-authored-by: davidliu <davidliu@deviange.net>
Co-authored-by: Guy Hershenbaum <hershi@meta.com>
Co-authored-by: Corby Hoback <corby.hoback@gmail.com>1 parent ae75362 commit b4c7c6f
File tree
8 files changed
+54
-21
lines changed- sdk
- android
- objc
- api/peerconnection
- base
- components
- audio
- capturer
8 files changed
+54
-21
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
119 | 119 | | |
120 | 120 | | |
121 | 121 | | |
| 122 | + | |
122 | 123 | | |
123 | 124 | | |
124 | 125 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
924 | 924 | | |
925 | 925 | | |
926 | 926 | | |
927 | | - | |
928 | | - | |
929 | | - | |
930 | | - | |
931 | | - | |
932 | | - | |
933 | | - | |
934 | | - | |
935 | | - | |
936 | | - | |
937 | | - | |
938 | | - | |
939 | | - | |
940 | | - | |
941 | | - | |
942 | | - | |
943 | | - | |
944 | 927 | | |
945 | 928 | | |
946 | 929 | | |
| |||
971 | 954 | | |
972 | 955 | | |
973 | 956 | | |
974 | | - | |
| 957 | + | |
| 958 | + | |
| 959 | + | |
975 | 960 | | |
976 | 961 | | |
977 | 962 | | |
| |||
993 | 978 | | |
994 | 979 | | |
995 | 980 | | |
996 | | - | |
997 | 981 | | |
998 | 982 | | |
999 | 983 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
29 | 29 | | |
30 | 30 | | |
31 | 31 | | |
32 | | - | |
33 | | - | |
34 | 32 | | |
35 | 33 | | |
36 | 34 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
102 | 102 | | |
103 | 103 | | |
104 | 104 | | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
105 | 108 | | |
106 | 109 | | |
107 | 110 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
16 | 16 | | |
17 | 17 | | |
18 | 18 | | |
| 19 | + | |
| 20 | + | |
19 | 21 | | |
20 | 22 | | |
21 | 23 | | |
| |||
125 | 127 | | |
126 | 128 | | |
127 | 129 | | |
| 130 | + | |
| 131 | + | |
128 | 132 | | |
129 | 133 | | |
130 | 134 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
32 | 32 | | |
33 | 33 | | |
34 | 34 | | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
35 | 40 | | |
36 | 41 | | |
37 | 42 | | |
| |||
Lines changed: 27 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
97 | 97 | | |
98 | 98 | | |
99 | 99 | | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
| 125 | + | |
| 126 | + | |
100 | 127 | | |
101 | 128 | | |
102 | 129 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
36 | 36 | | |
37 | 37 | | |
38 | 38 | | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
39 | 50 | | |
40 | 51 | | |
41 | 52 | | |
| |||
0 commit comments