@stream-io/video-react-native-sdk 1.22.1-alpha.2 → 1.22.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (29) hide show
  1. package/CHANGELOG.md +2822 -0
  2. package/dist/commonjs/components/Participant/ParticipantView/VideoRenderer/TrackSubscriber.js +79 -0
  3. package/dist/commonjs/components/Participant/ParticipantView/VideoRenderer/TrackSubscriber.js.map +1 -0
  4. package/dist/commonjs/components/Participant/ParticipantView/{VideoRenderer.js → VideoRenderer/index.js} +16 -88
  5. package/dist/commonjs/components/Participant/ParticipantView/VideoRenderer/index.js.map +1 -0
  6. package/dist/commonjs/version.js +1 -1
  7. package/dist/commonjs/version.js.map +1 -1
  8. package/dist/module/components/Participant/ParticipantView/VideoRenderer/TrackSubscriber.js +73 -0
  9. package/dist/module/components/Participant/ParticipantView/VideoRenderer/TrackSubscriber.js.map +1 -0
  10. package/dist/module/components/Participant/ParticipantView/{VideoRenderer.js → VideoRenderer/index.js} +16 -89
  11. package/dist/module/components/Participant/ParticipantView/VideoRenderer/index.js.map +1 -0
  12. package/dist/module/version.js +1 -1
  13. package/dist/module/version.js.map +1 -1
  14. package/dist/typescript/components/Participant/ParticipantView/VideoRenderer/TrackSubscriber.d.ts +25 -0
  15. package/dist/typescript/components/Participant/ParticipantView/VideoRenderer/TrackSubscriber.d.ts.map +1 -0
  16. package/dist/typescript/components/Participant/ParticipantView/{VideoRenderer.d.ts → VideoRenderer/index.d.ts} +2 -2
  17. package/dist/typescript/components/Participant/ParticipantView/VideoRenderer/index.d.ts.map +1 -0
  18. package/dist/typescript/version.d.ts +1 -1
  19. package/dist/typescript/version.d.ts.map +1 -1
  20. package/ios/StreamInCallManager.swift +10 -23
  21. package/package.json +4 -4
  22. package/src/components/Participant/ParticipantView/VideoRenderer/TrackSubscriber.tsx +125 -0
  23. package/src/components/Participant/ParticipantView/{VideoRenderer.tsx → VideoRenderer/index.tsx} +18 -107
  24. package/src/version.ts +1 -1
  25. package/dist/commonjs/components/Participant/ParticipantView/VideoRenderer.js.map +0 -1
  26. package/dist/module/components/Participant/ParticipantView/VideoRenderer.js.map +0 -1
  27. package/dist/typescript/components/Participant/ParticipantView/VideoRenderer.d.ts.map +0 -1
  28. package/ios/StreamVideoReactNative.xcodeproj/project.xcworkspace/xcuserdata/santhoshvaiyapuri.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
  29. package/ios/StreamVideoReactNative.xcodeproj/xcuserdata/santhoshvaiyapuri.xcuserdatad/xcschemes/xcschememanagement.plist +0 -14
@@ -19,7 +19,7 @@ enum DefaultAudioDevice {
19
19
  @objc(StreamInCallManager)
20
20
  class StreamInCallManager: RCTEventEmitter {
21
21
 
22
- private let audioSessionQueue = DispatchQueue(label: "io.getstream.rn.audioSessionQueue", qos: .userInitiated)
22
+ private let audioSessionQueue = DispatchQueue(label: "io.getstream.rn.audioSessionQueue")
23
23
 
24
24
  private var audioManagerActivated = false
25
25
  private var callAudioRole: CallAudioRole = .communicator
@@ -118,23 +118,13 @@ class StreamInCallManager: RCTEventEmitter {
118
118
 
119
119
  if (defaultAudioDevice == .speaker) {
120
120
  // defaultToSpeaker will route to speaker if nothing else is connected
121
- intendedOptions = [.allowBluetoothHFP, .defaultToSpeaker]
121
+ intendedOptions = [.allowBluetooth, .defaultToSpeaker]
122
122
  } else {
123
123
  // having no defaultToSpeaker makes sure audio goes to earpiece if nothing is connected
124
- intendedOptions = [.allowBluetoothHFP]
124
+ intendedOptions = [.allowBluetooth]
125
125
  }
126
126
  }
127
127
 
128
- // STEP 1: Configure iOS native audio session FIRST (this does the pre-warming so that webrtc worker thread isnt stalled on audio unit initialisation)
129
- let nativeSession = AVAudioSession.sharedInstance()
130
- do {
131
- try nativeSession.setCategory(intendedCategory, mode: intendedMode, options: intendedOptions)
132
- try nativeSession.setActive(true)
133
- log("configureAudioSession: Native AVAudioSession configured successfully")
134
- } catch {
135
- log("configureAudioSession: Failed to configure native session: \(error.localizedDescription)")
136
- }
137
-
138
128
  // START: set the config that webrtc must use when it takes control
139
129
  let rtcConfig = RTCAudioSessionConfiguration.webRTC()
140
130
  rtcConfig.category = intendedCategory.rawValue
@@ -143,7 +133,6 @@ class StreamInCallManager: RCTEventEmitter {
143
133
  RTCAudioSessionConfiguration.setWebRTC(rtcConfig)
144
134
  // END
145
135
 
146
-
147
136
  // START: compare current audio session with intended, and update if different
148
137
  let session = RTCAudioSession.sharedInstance()
149
138
  let currentCategory = session.category
@@ -153,7 +142,6 @@ class StreamInCallManager: RCTEventEmitter {
153
142
 
154
143
  if currentCategory != intendedCategory.rawValue || currentMode != intendedMode.rawValue || currentOptions != intendedOptions || !currentIsActive {
155
144
  session.lockForConfiguration()
156
- defer { session.unlockForConfiguration() }
157
145
  do {
158
146
  try session.setCategory(intendedCategory, mode: intendedMode, options: intendedOptions)
159
147
  try session.setActive(true)
@@ -168,6 +156,7 @@ class StreamInCallManager: RCTEventEmitter {
168
156
  log("configureAudioSession: Error setting mode: \(error.localizedDescription)")
169
157
  }
170
158
  }
159
+ session.unlockForConfiguration()
171
160
  } else {
172
161
  log("configureAudioSession: no change needed")
173
162
  }
@@ -191,14 +180,12 @@ class StreamInCallManager: RCTEventEmitter {
191
180
 
192
181
  @objc(setForceSpeakerphoneOn:)
193
182
  func setForceSpeakerphoneOn(enable: Bool) {
194
- audioSessionQueue.async {
195
- let session = AVAudioSession.sharedInstance()
196
- do {
197
- try session.overrideOutputAudioPort(enable ? .speaker : .none)
198
- try session.setActive(true)
199
- } catch {
200
- self.log("Error setting speakerphone: \(error)")
201
- }
183
+ let session = AVAudioSession.sharedInstance()
184
+ do {
185
+ try session.overrideOutputAudioPort(enable ? .speaker : .none)
186
+ try session.setActive(true)
187
+ } catch {
188
+ log("Error setting speakerphone: \(error)")
202
189
  }
203
190
  }
204
191
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stream-io/video-react-native-sdk",
3
- "version": "1.22.1-alpha.2",
3
+ "version": "1.22.2",
4
4
  "description": "Stream Video SDK for React Native",
5
5
  "author": "https://getstream.io",
6
6
  "homepage": "https://getstream.io/video/docs/react-native/",
@@ -125,9 +125,9 @@
125
125
  "@react-native-firebase/app": "^23.4.0",
126
126
  "@react-native-firebase/messaging": "^23.4.0",
127
127
  "@react-native/babel-preset": "^0.81.4",
128
- "@stream-io/noise-cancellation-react-native": "workspace:^",
128
+ "@stream-io/noise-cancellation-react-native": "^0.4.0",
129
129
  "@stream-io/react-native-webrtc": "125.4.4",
130
- "@stream-io/video-filters-react-native": "workspace:^",
130
+ "@stream-io/video-filters-react-native": "^0.8.0",
131
131
  "@testing-library/jest-native": "^5.4.3",
132
132
  "@testing-library/react-native": "13.3.3",
133
133
  "@tsconfig/node18": "^18.2.4",
@@ -162,4 +162,4 @@
162
162
  "typescript"
163
163
  ]
164
164
  }
165
- }
165
+ }
@@ -0,0 +1,125 @@
1
+ import { forwardRef, useImperativeHandle, useEffect, useMemo } from 'react';
2
+ import { LayoutChangeEvent } from 'react-native';
3
+ import {
4
+ Call,
5
+ CallingState,
6
+ hasScreenShare,
7
+ hasVideo,
8
+ SfuModels,
9
+ type VideoTrackType,
10
+ DebounceType,
11
+ } from '@stream-io/video-client';
12
+ import {
13
+ BehaviorSubject,
14
+ combineLatest,
15
+ distinctUntilChanged,
16
+ distinctUntilKeyChanged,
17
+ map,
18
+ takeWhile,
19
+ } from 'rxjs';
20
+ export type TrackSubscriberHandle = {
21
+ onLayoutUpdate: (event: LayoutChangeEvent) => void;
22
+ };
23
+
24
+ type TrackSubscriberProps = {
25
+ participantSessionId: string;
26
+ call: Call;
27
+ trackType: VideoTrackType;
28
+ isVisible: boolean;
29
+ };
30
+
31
+ /**
32
+ * This component is used to subscribe to the video + audio track of the participant in the following cases:
33
+ * 1. When the participant starts publishing the video track
34
+ * 2. When the participant changes the video track dimensions
35
+ * 3. When the participant becomes visible
36
+ * 4. On joined callingState, this handles reconnection
37
+
38
+ * This component is used to unsubscribe to video track and subscribe only to the audio track of the participant (by passing undefined dimensions) in the following cases:
39
+ * 1. When the participant stops publishing the video track
40
+ * 2. When the participant becomes invisible
41
+ */
42
+ const TrackSubscriber = forwardRef<TrackSubscriberHandle, TrackSubscriberProps>(
43
+ (props, ref) => {
44
+ const { call, participantSessionId, trackType, isVisible } = props;
45
+ const dimensions$ = useMemo(() => {
46
+ return new BehaviorSubject<SfuModels.VideoDimension | undefined>(
47
+ undefined,
48
+ );
49
+ }, []);
50
+
51
+ useEffect(() => {
52
+ const requestTrackWithDimensions = (
53
+ debounceType: DebounceType,
54
+ dimension: SfuModels.VideoDimension | undefined,
55
+ ) => {
56
+ if (dimension && (dimension.width === 0 || dimension.height === 0)) {
57
+ // ignore 0x0 dimensions. this can happen when the video element
58
+ // is not visible (e.g., has display: none).
59
+ // we treat this as "unsubscription" as we don't want to keep
60
+ // consuming bandwidth for a video that is not visible on the screen.
61
+ dimension = undefined;
62
+ }
63
+ call.state.updateParticipantTracks(trackType, {
64
+ [participantSessionId]: { dimension },
65
+ });
66
+ call.dynascaleManager.applyTrackSubscriptions(debounceType);
67
+ };
68
+ const isPublishingTrack$ = call.state.participants$.pipe(
69
+ map((ps) => ps.find((p) => p.sessionId === participantSessionId)),
70
+ takeWhile((p) => !!p),
71
+ distinctUntilChanged(),
72
+ distinctUntilKeyChanged('publishedTracks'),
73
+ map((p) =>
74
+ trackType === 'videoTrack' ? hasVideo(p) : hasScreenShare(p),
75
+ ),
76
+ distinctUntilChanged(),
77
+ );
78
+ const isJoinedState$ = call.state.callingState$.pipe(
79
+ map((callingState) => callingState === CallingState.JOINED),
80
+ );
81
+
82
+ const subscription = combineLatest([
83
+ dimensions$,
84
+ isPublishingTrack$,
85
+ isJoinedState$,
86
+ ]).subscribe(([dimension, isPublishing, isJoined]) => {
87
+ if (isJoined && isPublishing && !isVisible) {
88
+ // the participant is publishing and we are not visible, so we unsubscribe from the video track
89
+ requestTrackWithDimensions(DebounceType.FAST, undefined);
90
+ } else if (isJoined && isPublishing && isVisible && dimension) {
91
+ // the participant is publishing and we are visible and have valid dimensions, so we subscribe to the video track
92
+ requestTrackWithDimensions(DebounceType.IMMEDIATE, dimension);
93
+ } else if (isJoined && !isPublishing) {
94
+ // the participant stopped publishing a track, so we unsubscribe from the video track
95
+ requestTrackWithDimensions(DebounceType.FAST, undefined);
96
+ }
97
+ // if isPublishing but no dimension yet, we wait for dimensions
98
+ });
99
+
100
+ return () => {
101
+ subscription.unsubscribe();
102
+ };
103
+ }, [call, participantSessionId, trackType, isVisible, dimensions$]);
104
+
105
+ useImperativeHandle(
106
+ ref,
107
+ () => ({
108
+ onLayoutUpdate: (event) => {
109
+ const dimension = {
110
+ width: Math.trunc(event.nativeEvent.layout.width),
111
+ height: Math.trunc(event.nativeEvent.layout.height),
112
+ };
113
+ dimensions$.next(dimension);
114
+ },
115
+ }),
116
+ [dimensions$],
117
+ );
118
+
119
+ return null;
120
+ },
121
+ );
122
+
123
+ TrackSubscriber.displayName = 'TrackSubscriber';
124
+
125
+ export default TrackSubscriber;
@@ -2,21 +2,20 @@ import React, { useEffect, useRef } from 'react';
2
2
  import { Platform, StyleSheet, View } from 'react-native';
3
3
  import type { MediaStream } from '@stream-io/react-native-webrtc';
4
4
  import { RTCView } from '@stream-io/react-native-webrtc';
5
- import type { ParticipantViewProps } from './ParticipantView';
5
+ import type { ParticipantViewProps } from '../ParticipantView';
6
6
  import {
7
- CallingState,
8
7
  hasPausedTrack,
9
8
  hasScreenShare,
10
9
  hasVideo,
11
- SfuModels,
12
10
  type VideoTrackType,
13
11
  VisibilityState,
14
12
  } from '@stream-io/video-client';
15
13
  import { useCall, useCallStateHooks } from '@stream-io/video-react-bindings';
16
- import { ParticipantVideoFallback as DefaultParticipantVideoFallback } from './ParticipantVideoFallback';
17
- import { useTheme } from '../../../contexts/ThemeContext';
18
- import { useTrackDimensions } from '../../../hooks/useTrackDimensions';
19
- import { useScreenshotIosContext } from '../../../contexts/internal/ScreenshotIosContext';
14
+ import { ParticipantVideoFallback as DefaultParticipantVideoFallback } from '../ParticipantVideoFallback';
15
+ import { useTheme } from '../../../../contexts/ThemeContext';
16
+ import { useTrackDimensions } from '../../../../hooks/useTrackDimensions';
17
+ import { useScreenshotIosContext } from '../../../../contexts/internal/ScreenshotIosContext';
18
+ import TrackSubscriber, { TrackSubscriberHandle } from './TrackSubscriber';
20
19
 
21
20
  const DEFAULT_VIEWPORT_VISIBILITY_STATE: Record<
22
21
  VideoTrackType,
@@ -56,16 +55,9 @@ export const VideoRenderer = ({
56
55
  theme: { videoRenderer },
57
56
  } = useTheme();
58
57
  const call = useCall();
59
- const { useCallCallingState, useCameraState, useIncomingVideoSettings } =
60
- useCallStateHooks();
58
+ const { useCameraState, useIncomingVideoSettings } = useCallStateHooks();
59
+ const trackSubscriberRef = useRef<TrackSubscriberHandle>(null);
61
60
  const { isParticipantVideoEnabled } = useIncomingVideoSettings();
62
- const callingState = useCallCallingState();
63
- const pendingVideoLayoutRef = useRef<SfuModels.VideoDimension | undefined>(
64
- undefined,
65
- );
66
- const subscribedVideoLayoutRef = useRef<SfuModels.VideoDimension | undefined>(
67
- undefined,
68
- );
69
61
  const { direction } = useCameraState();
70
62
  const viewRef = useRef(null);
71
63
  const {
@@ -91,7 +83,6 @@ export const VideoRenderer = ({
91
83
  ? hasScreenShare(participant)
92
84
  : hasVideo(participant);
93
85
 
94
- const hasJoinedCall = callingState === CallingState.JOINED;
95
86
  const videoStreamToRender = (isScreenSharing
96
87
  ? screenShareStream
97
88
  : videoStream) as unknown as MediaStream | undefined;
@@ -179,11 +170,6 @@ export const VideoRenderer = ({
179
170
  },
180
171
  }));
181
172
  }
182
- if (subscribedVideoLayoutRef.current) {
183
- // when video is enabled again, we want to use the last subscribed dimension to resubscribe
184
- pendingVideoLayoutRef.current = subscribedVideoLayoutRef.current;
185
- subscribedVideoLayoutRef.current = undefined;
186
- }
187
173
  }
188
174
  }, [
189
175
  sessionId,
@@ -194,94 +180,10 @@ export const VideoRenderer = ({
194
180
  isLocalParticipant,
195
181
  ]);
196
182
 
197
- useEffect(() => {
198
- if (!hasJoinedCall && subscribedVideoLayoutRef.current) {
199
- // when call is joined again, we want to use the last subscribed dimension to resubscribe
200
- pendingVideoLayoutRef.current = subscribedVideoLayoutRef.current;
201
- subscribedVideoLayoutRef.current = undefined;
202
- }
203
- }, [hasJoinedCall]);
204
-
205
- /**
206
- * This effect updates the subscription either
207
- * 1. when video tracks are published and was unpublished before
208
- * 2. when the view's visibility changes
209
- * 3. when call was rejoined
210
- */
211
- useEffect(() => {
212
- if (!call || isLocalParticipant) {
213
- return;
214
- }
215
- // NOTE: We only want to update the subscription if the pendingVideoLayoutRef is set
216
- const updateIsNeeded = pendingVideoLayoutRef.current;
217
-
218
- if (!updateIsNeeded || !isPublishingVideoTrack || !hasJoinedCall) {
219
- return;
220
- }
221
-
222
- // NOTE: When the view is not visible, we want to subscribe to audio only.
223
- // We unsubscribe their video by setting the dimension to undefined
224
- const dimension = isVisible ? pendingVideoLayoutRef.current : undefined;
225
- call.state.updateParticipantTracks(trackType, {
226
- [sessionId]: { dimension },
227
- });
228
- call.dynascaleManager.applyTrackSubscriptions();
229
-
230
- if (dimension) {
231
- subscribedVideoLayoutRef.current = pendingVideoLayoutRef.current;
232
- pendingVideoLayoutRef.current = undefined;
233
- }
234
- }, [
235
- call,
236
- isPublishingVideoTrack,
237
- trackType,
238
- isVisible,
239
- sessionId,
240
- hasJoinedCall,
241
- isLocalParticipant,
242
- ]);
243
-
244
- useEffect(() => {
245
- return () => {
246
- subscribedVideoLayoutRef.current = undefined;
247
- pendingVideoLayoutRef.current = undefined;
248
- };
249
- }, [trackType, sessionId]);
250
-
251
183
  const onLayout: React.ComponentProps<typeof RTCView>['onLayout'] = (
252
184
  event,
253
185
  ) => {
254
- if (!call || isLocalParticipant) {
255
- return;
256
- }
257
- const dimension = {
258
- width: Math.trunc(event.nativeEvent.layout.width),
259
- height: Math.trunc(event.nativeEvent.layout.height),
260
- };
261
-
262
- // NOTE: If the participant hasn't published a video track yet,
263
- // or the view is not viewable, we store the dimensions and handle it
264
- // when the track is published or the video is enabled.
265
- if (!isPublishingVideoTrack || !isVisible || !hasJoinedCall) {
266
- pendingVideoLayoutRef.current = dimension;
267
- return;
268
- }
269
-
270
- // NOTE: We don't want to update the subscription if the dimension hasn't changed
271
- if (
272
- subscribedVideoLayoutRef.current?.width === dimension.width &&
273
- subscribedVideoLayoutRef.current?.height === dimension.height
274
- ) {
275
- return;
276
- }
277
- call.state.updateParticipantTracks(trackType, {
278
- [sessionId]: {
279
- dimension,
280
- },
281
- });
282
- call.dynascaleManager.applyTrackSubscriptions();
283
- subscribedVideoLayoutRef.current = dimension;
284
- pendingVideoLayoutRef.current = undefined;
186
+ trackSubscriberRef.current?.onLayoutUpdate(event);
285
187
  };
286
188
 
287
189
  return (
@@ -289,6 +191,15 @@ export const VideoRenderer = ({
289
191
  onLayout={onLayout}
290
192
  style={[styles.container, videoRenderer.container]}
291
193
  >
194
+ {call && !isLocalParticipant && (
195
+ <TrackSubscriber
196
+ ref={trackSubscriberRef}
197
+ call={call}
198
+ participantSessionId={sessionId}
199
+ trackType={trackType}
200
+ isVisible={isVisible}
201
+ />
202
+ )}
292
203
  {canShowVideo &&
293
204
  videoStreamToRender &&
294
205
  (objectFit || isVideoDimensionsValid) ? (
package/src/version.ts CHANGED
@@ -1 +1 @@
1
- export const version = '1.22.1-alpha.2';
1
+ export const version = '1.22.2';
@@ -1 +0,0 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_reactNativeWebrtc","_videoClient","_videoReactBindings","_ParticipantVideoFallback","_ThemeContext","_useTrackDimensions","_ScreenshotIosContext","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","DEFAULT_VIEWPORT_VISIBILITY_STATE","videoTrack","VisibilityState","UNKNOWN","screenShareTrack","VideoRenderer","trackType","participant","isVisible","ParticipantVideoFallback","DefaultParticipantVideoFallback","objectFit","videoZOrder","theme","videoRenderer","useTheme","useCall","useCallCallingState","useCameraState","useIncomingVideoSettings","useCallStateHooks","isParticipantVideoEnabled","callingState","pendingVideoLayoutRef","useRef","undefined","subscribedVideoLayoutRef","direction","viewRef","register","registerIosScreenshot","deregister","deregisterIosScreenshot","useScreenshotIosContext","videoDimensions","useTrackDimensions","isVideoDimensionsValid","width","height","isLocalParticipant","sessionId","viewportVisibilityState","videoStream","screenShareStream","isScreenSharing","isPublishingVideoTrack","hasScreenShare","hasVideo","hasJoinedCall","CallingState","JOINED","videoStreamToRender","canShowVideo","hasPausedTrack","useEffect","Platform","OS","mirror","VISIBLE","state","updateParticipant","p","INVISIBLE","current","updateIsNeeded","dimension","updateParticipantTracks","dynascaleManager","applyTrackSubscriptions","onLayout","event","Math","trunc","nativeEvent","layout","createElement","View","style","styles","container","RTCView","streamURL","toURL","ref","zOrder","exports","StyleSheet","create","absoluteFillObject"],"sourceRoot":"../../../../../src","sources":["components/Participant/ParticipantView/VideoRenderer.tsx"],"mappings":"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","ignoreList":[]}
@@ -1 +0,0 @@
1
- {"version":3,"names":["React","useEffect","useRef","Platform","StyleSheet","View","RTCView","CallingState","hasPausedTrack","hasScreenShare","hasVideo","VisibilityState","useCall","useCallStateHooks","ParticipantVideoFallback","DefaultParticipantVideoFallback","useTheme","useTrackDimensions","useScreenshotIosContext","DEFAULT_VIEWPORT_VISIBILITY_STATE","videoTrack","UNKNOWN","screenShareTrack","VideoRenderer","trackType","participant","isVisible","objectFit","videoZOrder","theme","videoRenderer","call","useCallCallingState","useCameraState","useIncomingVideoSettings","isParticipantVideoEnabled","callingState","pendingVideoLayoutRef","undefined","subscribedVideoLayoutRef","direction","viewRef","register","registerIosScreenshot","deregister","deregisterIosScreenshot","videoDimensions","isVideoDimensionsValid","width","height","isLocalParticipant","sessionId","viewportVisibilityState","videoStream","screenShareStream","isScreenSharing","isPublishingVideoTrack","hasJoinedCall","JOINED","videoStreamToRender","canShowVideo","OS","mirror","VISIBLE","state","updateParticipant","p","INVISIBLE","current","updateIsNeeded","dimension","updateParticipantTracks","dynascaleManager","applyTrackSubscriptions","onLayout","event","Math","trunc","nativeEvent","layout","createElement","style","styles","container","streamURL","toURL","ref","zOrder","create","absoluteFillObject"],"sourceRoot":"../../../../../src","sources":["components/Participant/ParticipantView/VideoRenderer.tsx"],"mappings":"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","ignoreList":[]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"VideoRenderer.d.ts","sourceRoot":"","sources":["../../../../../src/components/Participant/ParticipantView/VideoRenderer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4B,MAAM,OAAO,CAAC;AAIjD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAwB9D;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG,IAAI,CACnC,oBAAoB,EAClB,0BAA0B,GAC1B,WAAW,GACX,aAAa,GACb,WAAW,GACX,WAAW,GACX,aAAa,CAChB,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,aAAa,GAAI,0FAO3B,kBAAkB,sBAqQpB,CAAC"}
@@ -1,14 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3
- <plist version="1.0">
4
- <dict>
5
- <key>SchemeUserState</key>
6
- <dict>
7
- <key>StreamVideoReactNative.xcscheme_^#shared#^_</key>
8
- <dict>
9
- <key>orderHint</key>
10
- <integer>0</integer>
11
- </dict>
12
- </dict>
13
- </dict>
14
- </plist>