Conversation
1a03f67 android: drop UVC camera support ( Saúl Ibarra Corretgé 2024-04-04 17:11:34 +0200)
* ios: update webrtc to 114.5735.10 * make podspec fuzzy
157729c ios: update webrtc to 114.5735.10 (#7) ( davidliu 2024-05-03 17:45:56 +0900) 495658d ci: fix build (react-native-webrtc#1562) ( davidliu 2024-05-03 17:18:31 +0900) 822cac7 release 118.0.7 ( Saúl Ibarra Corretgé 2024-04-18 13:32:21 +0200) 882f8b1 release 118.0.6 ( Saúl Ibarra Corretgé 2024-04-11 23:03:33 +0200) 8dfc9c3 Revert "android, ios: remove track when removed from peerconnection (react-native-webrtc#1525)" (react-native-webrtc#1550) ( Johnathon Weaver 2024-04-17 14:38:36 +0800) c0c446a ios: fix not being able to deactivate encodings ( Saúl Ibarra Corretgé 2024-04-11 22:31:38 +0200) 5d85486 android,ios: don't reject promise for getStats (react-native-webrtc#1541) ( davidliu 2024-04-11 00:58:52 +0900) f1bc9ff Update AndroidInstallation.md ( davidliu 2024-04-09 12:01:07 +0900)
4e442f1 Update android webrtc to 114.5735.11 ( davidliu 2024-05-22 15:47:12 +0900)
29210ac android: release audio device module after creating factory ( davidliu 2024-06-21 22:05:29 +0900)
* webrtc: update WebRTC to M124 * api: allow sdpMid / sdpLineIndex to be null in RTCIceCandidate Having both as null is still an error. Fixes: react-native-webrtc#1518 * ios: refactor rendering in RTCVideoView The way the renderer is implemented is as follows: there is a UIView which holds on to a RTCMTLVideoView, which does the actual rendering in metal. Rather than using our own home-grown mechanism to layout the views, just make sure the Metal view takes 100% of the space of our view, and then use the `videoContentMode` property to set it to cover or contain, matching the way a browser would do it. This greatly simplifies the code because we lonnger care about the video size, the Metal renderer makes the adjustments autmagically. In addition, the mirror and object-fit properties are only applied once, when they change, not on every layout change, which is unnecessary. * ios: add all available camera device types * preserve order * release 124.0.1 20cf1d5 preserve order ( Burak KIYAK 2024-05-03 13:41:59 +0200) 64e8298 ios: add all available camera device types ( Burak KIYAK 2024-04-30 12:30:38 +0200) f36b6b8 ios: refactor rendering in RTCVideoView ( Saúl Ibarra Corretgé 2024-06-11 09:35:36 +0200) * build(deps-dev): bump braces from 3.0.2 to 3.0.3 (react-native-webrtc#1578) Bumps [braces](https://github.com/micromatch/braces) from 3.0.2 to 3.0.3. - [Changelog](https://github.com/micromatch/braces/blob/master/CHANGELOG.md) - [Commits](micromatch/braces@3.0.2...3.0.3) --- updated-dependencies: - dependency-name: braces dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * mark for beta release --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: Saúl Ibarra Corretgé <saghul@jitsi.org> Co-authored-by: omerts <omerts3@gmail.com> Co-authored-by: Saúl Ibarra Corretgé <s@saghul.net> Co-authored-by: Burak KIYAK <brkkyk@gmail.com> Co-authored-by: Burak KIYAK <bkiyak@turnitin.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
49af0ad ios: Add audioProcessingModule to WebRTCModuleOptions (#13) ( davidliu 2024-07-26 14:22:57 +0900) 774f39e android: declare a dependency on androidx.core 1.7.0 ( davidliu 2024-06-25 19:37:49 +0900) 6986a6e Update README.md ( davidliu 2024-06-24 14:30:33 +0900) e0740f0 Update README.md to avoid confusion with the original ( davidliu 2024-06-24 14:30:17 +0900)
ffd5936 android,ios: update webrtc to 125.0.4 ( davidliu 2024-08-05 00:25:40 +0900) 09f609b release 124.0.3 ( Saúl Ibarra Corretgé 2024-07-08 10:43:08 +0200) 3e11c99 misc: ignore Android build files when releasing to npm ( Saúl Ibarra Corretgé 2024-07-08 10:42:23 +0200) a45efdc release 124.0.2 ( Saúl Ibarra Corretgé 2024-07-08 10:39:16 +0200) 160ece9 ios: fix compatibility with RN >= 0.73 ( Saúl Ibarra Corretgé 2024-06-27 23:04:49 +0200) 5fdb6ad android: declare dependency on androidx.core 1.7.0 (react-native-webrtc#1586) ( davidliu 2024-06-26 00:30:02 +0900) 0a36e9d android: release audio manager module after creating factory ( davidliu 2024-06-21 22:04:45 +0900) 54b5607 build(deps-dev): bump braces from 3.0.2 to 3.0.3 (react-native-webrtc#1578) ( dependabot[bot] 2024-06-13 17:59:14 +0800) 232fc06 release 124.0.1 ( Saúl Ibarra Corretgé 2024-06-13 10:45:44 +0200) 20cf1d5 preserve order ( Burak KIYAK 2024-05-03 13:41:59 +0200) 64e8298 ios: add all available camera device types ( Burak KIYAK 2024-04-30 12:30:38 +0200) f36b6b8 ios: refactor rendering in RTCVideoView ( Saúl Ibarra Corretgé 2024-06-11 09:35:36 +0200) bbd903c api: allow sdpMid / sdpLineIndex to be null in RTCIceCandidate ( omerts 2024-06-04 14:42:40 +0300) ff6110e webrtc: update WebRTC to M124 ( Saúl Ibarra Corretgé 2024-06-03 14:33:18 +0200)
* ios: add support for external cameras on iPad * ci: remove flipper from gumtestapp (react-native-webrtc#1608) These were causing build errors recently, and were generally unneeded anyways. * pc: align createDataChannel with standard - Throw TypeError if no argument passed - Stringify the label Fixes: react-native-webrtc#1605 * android: report actual size in camera MediaStreamTrack settings (react-native-webrtc#1598) * ios: fix exception in iOS 17+ w/ Xcode 15.4 * android: remove no longer used replace rule from manifest (react-native-webrtc#1609) * sender: fix serializing RTCRtpSendParameters It's possible for user code to replace encodings entirely. Thus, the resulting array will not have RTCRtpEncodingParameters object instances, but plain objects. Handle it by deep-cloning the objects with JSON.parse(JSON.stringify(x)) since that will take care of appropriately serializing them, no matter the type. * misc: make serialization more resilient Don't directly call toJSON, but rather rely on JSON serialization to do it when cloning. * release 124.0.4 89557ca misc: make serialization more resilient ( Saúl Ibarra Corretgé 2024-08-14 11:53:32 +0200) 6cfedd7 sender: fix serializing RTCRtpSendParameters ( Saúl Ibarra Corretgé 2024-08-14 11:11:08 +0200) ac7f578 android: remove no longer used replace rule from manifest (react-native-webrtc#1609) ( Saúl Ibarra Corretgé 2024-08-07 17:17:03 +0200) f6667c8 ios: fix exception in iOS 17+ w/ Xcode 15.4 ( mtdxc 2024-08-07 17:22:10 +0800) 4c34ae1 android: report actual size in camera MediaStreamTrack settings (react-native-webrtc#1598) ( davidliu 2024-08-07 17:56:57 +0900) fb02a5b pc: align createDataChannel with standard ( Saúl Ibarra Corretgé 2024-08-06 15:28:24 +0200) c0ddefd ci: remove flipper from gumtestapp (react-native-webrtc#1608) ( davidliu 2024-08-07 16:00:01 +0900) a1bb18a ios: add support for external cameras on iPad ( mtdxc 2024-07-10 20:25:23 +0800) * ios: Add RTCAudioSession helper methods needed for CallKit (react-native-webrtc#1614) * Fix package name references --------- Co-authored-by: mtdxc <mtdxc@126.com> Co-authored-by: Saúl Ibarra Corretgé <s@saghul.net> Co-authored-by: Saúl Ibarra Corretgé <saghul@jitsi.org>
PIP support is available via @stream-io/video-react-native-sdk, not this package. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Record merge to advance the merge-base so future merges from rn-webrtc/master only see new commits. All useful upstream changes were already cherry-picked in prior commits. Skipped commits (PIP, release bumps, duplicate features) resolved by keeping our versions. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
Caution Review failedThe pull request is closed. ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: ⛔ Files ignored due to path filters (1)
📒 Files selected for processing (81)
Disabled knowledge base sources:
📝 WalkthroughWalkthroughThis pull request introduces comprehensive frame cryptography support (frame cryptors, key providers, data packet cryptors), certificate generation and lifecycle management, and enhanced display media constraints for Android. It refactors event handler properties across TypeScript classes to use explicit getters/setters, vendors the event-target-shim module, and updates documentation for new audio device options and constraints handling. Changes
Estimated code review effort🎯 4 (Complex) | ⏱️ ~60 minutes The changes involve significant heterogeneous modifications across Android (Java), iOS (Objective-C), and TypeScript layers. Key complexity factors include: (1) new frame cryptography APIs with multi-layer native-JS integration, (2) certificate lifecycle management across platforms, (3) event handler refactoring affecting multiple TypeScript classes, (4) vendored event-target-shim with 1200+ lines of implementation, (5) constraint handling updates for display media, and (6) logic changes in camera selection and audio track configuration. While patterns repeat across files (event handler refactoring, formatting), they require individual reasoning per file due to context-specific implementations.
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
|
* pc: don't throw when applyConstraints on audio tracks * lint
…ivekit#33) * android,ios: add defaultTrackVolume control to WebRTCModuleOptions * fix android build
* Add AudioProcessingFactory to WebRTCModuleOptions * Expose media stream tracks for ios * Swift compatibility * Fix boost checksum error
Migrate from defineEventAttribute to getter/setter pattern matching the rest of the codebase. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* android data cryptor impl * ios: data packet cryptor * fixes * formattting * lint fix
Record merge to advance the merge-base so future merges from livekit/master only see new commits. All useful upstream changes were already cherry-picked in prior commits. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Fix duplicate audioProcessingFactory variable (merge both providers) - Remove AES_CBC reference (not in StreamWebRTC M137, only AES_GCM) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
LiveKit's code used FrameCryptionState* naming from an older WebRTC version. StreamWebRTC M137 uses RTCFrameCryptorState* prefix. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Reverts the remoteTracks.remove() from f1b8ff0. The didRemoveReceiver delegate can fire during renegotiation while the track is still active, causing remote tracks to become invisible. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Event type is 'framecryptorstatechanged' (no 'on' prefix). The getter/setter 'onframecryptorstatechanged' follows DOM convention where 'on' + event name = property name. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Master merged sync/upstream-cherry-picks via PR #31 while this branch had already merged the same branch directly (c4d93d3), producing a criss-cross topology. Rebase would have replayed 147 commits; merge handles the same-source reconciliation cleanly. Conflicts resolved: - Android PeerConnectionObserver + iOS WebRTCModule+RTCPeerConnection: audio-track add branch — kept both the AudioTrackAdapter attach and the upstream defaultTrackVolume setter (orthogonal concerns). - package.json: kept alpha.11 (higher). - package-lock.json: regenerated from package.json. Fixed silent 3-way merge artefact: removed duplicated generateCertificate static method that git auto-merge emitted twice in RTCPeerConnection.ts. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Summary
Sync with upstream rn-webrtc/master and livekit/master. Cherry-picked relevant commits, resolved conflicts, and advanced merge-bases so future syncs only see new commits.
Features
Bug fixes
Refactoring
Documentation
Housekeeping
Summary by CodeRabbit
Release Notes
New Features
Documentation