Skip to content

chore: record rn-webrtc and livekit merge-bases#33

Merged
santhoshvai merged 114 commits intomasterfrom
sync/record-merge-bases
Apr 21, 2026
Merged

chore: record rn-webrtc and livekit merge-bases#33
santhoshvai merged 114 commits intomasterfrom
sync/record-merge-bases

Conversation

@santhoshvai
Copy link
Copy Markdown
Member

Summary

  • PR chore: merge with upstream  #31 was squash-merged, which flattened the two merge commits that advanced the merge-bases with rn-webrtc/master and livekit/master.
  • As a result, master's merge-base with both upstreams was reset to the original fork point — future git merge rn-webrtc/master or git merge livekit/master would replay all 40 + 72 upstream commits again.
  • This PR adds two ghost merge commits (git merge -s ours) that record the merge-bases without changing any files.

What this changes

  • Files changed: 0-s ours keeps our tree exactly as-is
  • Merge-bases advanced:
    • rn-webrtc/master: 8bd5e0a (original fork point) → f7b6382 (HEAD at sync time)
    • livekit/master: 09f609b (original fork point) → 4880685 (HEAD at sync time)
  • Divergence after merge: 0 upstream-only commits for both remotes

Why

Without these ghost merges, the next sync would have to re-triage all 112 upstream commits (including the ones we intentionally skipped like PIP, release bumps, and reverted changes).

Important

Do NOT squash-merge this PR. Use regular "Create a merge commit" to preserve the merge commits. Squash-merge would flatten them again and defeat the purpose.

Test plan

  • git diff master..HEAD shows no file changes
  • git log --oneline --right-only master...rn-webrtc/master returns 0 commits
  • git log --oneline --right-only master...livekit/master returns 0 commits

🤖 Generated with Claude Code

davidliu and others added 30 commits March 28, 2024 23:11
updated upstream react-native-webrtc to 118.0.4

f1b8ff0 android, ios: remove track from remoteTracks in onRemoveTrack (#6)  ( davidliu 2024-03-28 23:11:34 +0900)
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)
651373e android: only change capture format for screen if dimen actually changed (#8)  ( davidliu 2024-05-25 20:57:36 +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>
2d153e1 Merge upstream and update webrtc to M125 (#9)  ( davidliu 2024-06-24 11:20:10 +0900)
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>
c10087e Merge upstream 124.0.4 into master (#16)  ( davidliu 2024-08-19 14:45:18 +0900)
1121257 ci: fix ios compile (#14)  ( davidliu 2024-08-05 14:30:17 +0900)
saghul and others added 28 commits October 9, 2025 16:48
503ec7f ios: fix crash in iOS 26 simulator  ( Saúl Ibarra Corretgé 2025-10-07 17:00:30 +0200)
ea08b32 Update building WebRTC docs  ( Kota 2025-09-20 22:59:25 +0900)
0ab26cb fix: typo in _validatePermissionDescriptor method name  ( yoohaso 2025-09-05 18:38:40 +0900)
bf0c944 pc: handle null when normalizing options  ( Saúl Ibarra Corretgé 2025-08-13 10:56:11 +0200)
de82ad3 android: fix NPE in gUM  ( Saúl Ibarra Corretgé 2025-08-06 14:12:36 +0200)
We need to get the video track in the executor to make sure all
operations are serialized, but rather than blocking the UI thread to
wait for the result, post the result back to the UI thread after we get
it.
Browsers (Chrome, Firefox, Safari) throw an InvalidStateError when
addIceCandidate is called on a closed RTCPeerConnection, as per the
W3C WebRTC spec. This change aligns react-native-webrtc with that
behavior by throwing an error instead of silently proceeding.

This is consistent with how addTrack and removeTrack already handle
the closed state in this codebase.

Fixes: react-native-webrtc#1795
The '/index' suffix in the imports is unnecessary as the package resolves correctly without it. This change simplifies the import statements across multiple files.
… event attributes

Updated MediaDevices, MediaStream, MediaStreamTrack, RTCDataChannel, and RTCPeerConnection classes to use getter and setter methods for event attributes instead of the defineEventAttribute function. This change enhances code readability and maintainability.
Bumps [flatted](https://github.com/WebReflection/flatted) from 3.2.7 to 3.4.2.
- [Commits](WebReflection/flatted@v3.2.7...v3.4.2)

---
updated-dependencies:
- dependency-name: flatted
  dependency-version: 3.4.2
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
124.0.7 plus vendored event-target-shim

---------

Signed-off-by: dependabot[bot] <support@github.com>
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>
Co-authored-by: Saba <msabaeian@gmail.com>
Co-authored-by: Dmitry <dimon.fly.mail@mail.ru>
Co-authored-by: YUN HANSOL <46476678+yoohaso@users.noreply.github.com>
Co-authored-by: yoohaso <solhanyun@gmail.com>
Co-authored-by: Johnathon Weaver <weaver123_johnathon@hotmail.com>
Co-authored-by: Oliver Lazoroski <oliver.lazoroski@gmail.com>
Co-authored-by: Rakesh Merugu <mrakesh0608@outlook.com>
Co-authored-by: hmeerlo <herman@meerlo.com>
Co-authored-by: Kota <kota@yatagai.com>
Co-authored-by: Martin Liu <m@rtin.sh>
Co-authored-by: naveenkirugulige <naveenkirugulige@gmail.com>
Co-authored-by: wuxinfei <wuxinfei@bytedance.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: davidliu <davidliu@deviange.net>
fe4ce0f upgrade libwebrtc to m144 (livekit#68) ( Hiroshi Horie 2026-03-25
18:09:01 +0900)
Bumps [picomatch](https://github.com/micromatch/picomatch) from 2.3.1 to 2.3.2.
- [Release notes](https://github.com/micromatch/picomatch/releases)
- [Changelog](https://github.com/micromatch/picomatch/blob/master/CHANGELOG.md)
- [Commits](micromatch/picomatch@2.3.1...2.3.2)

---
updated-dependencies:
- dependency-name: picomatch
  dependency-version: 2.3.2
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
134ca86 Expose audio engine APIs (livekit#62) ( Hiroshi Horie 2026-03-31
17:21:03 +0800)
Co-authored-by: wuxinfei <wuxinfei@bytedance.com>
# Why

The current iOS implementation uses a compile-time simulator guard that always skips camera capture setup on Simulator. That makes simulator behavior diverge from runtime capability and blocks valid camera flows when a runtime video source is available.

# How

This change replaces the unconditional simulator skip in `createVideoTrack(...)` with a simulator-only runtime camera availability check:

- Add a runtime guard on Simulator using `AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo`.
- Keep camera capture setup enabled when a runtime video device is available.
- Preserve fallback behavior when no runtime video device is available.
- Leave non-simulator platforms unchanged.

# Test Plan

- iOS Simulator without a runtime video device: verify `getUserMedia({ video: true })` keeps existing no-camera fallback behavior (no capture controller setup).
- iOS Simulator with a runtime video device available: verify `getUserMedia({ video: true })` follows normal camera capture setup and starts capture.
- Physical iOS device: verify camera track creation behavior remains unchanged.

Validation attempted in this checkout:
- Code-path validation via focused diff review.
- No device/simulator runtime execution performed in this environment.
Squash-merge of PR #31 flattened the merge commits that advanced the
merge-base. This ghost merge (-s ours) records that master has seen
rn-webrtc/master up to this point without changing any files.
All upstream changes were already cherry-picked into master.
Squash-merge of PR #31 flattened the merge commits that advanced the
merge-base. This ghost merge (-s ours) records that master has seen
livekit/master up to this point without changing any files.
All relevant changes were already cherry-picked into master.
@santhoshvai santhoshvai merged commit d66ff60 into master Apr 21, 2026
2 checks passed
@santhoshvai santhoshvai deleted the sync/record-merge-bases branch April 21, 2026 09:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.