@granite-js/video 1.0.0

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 (54) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/GraniteVideo.podspec +72 -0
  3. package/android/README.md +232 -0
  4. package/android/build.gradle +117 -0
  5. package/android/gradle.properties +8 -0
  6. package/android/src/main/AndroidManifest.xml +2 -0
  7. package/android/src/main/java/run/granite/video/GraniteVideoModule.kt +70 -0
  8. package/android/src/main/java/run/granite/video/GraniteVideoPackage.kt +43 -0
  9. package/android/src/main/java/run/granite/video/GraniteVideoView.kt +384 -0
  10. package/android/src/main/java/run/granite/video/GraniteVideoViewManager.kt +318 -0
  11. package/android/src/main/java/run/granite/video/event/GraniteVideoEvents.kt +273 -0
  12. package/android/src/main/java/run/granite/video/event/VideoEventDispatcher.kt +66 -0
  13. package/android/src/main/java/run/granite/video/event/VideoEventListenerAdapter.kt +157 -0
  14. package/android/src/main/java/run/granite/video/provider/GraniteVideoProvider.kt +346 -0
  15. package/android/src/media3/AndroidManifest.xml +9 -0
  16. package/android/src/media3/java/run/granite/video/provider/media3/ExoPlayerProvider.kt +386 -0
  17. package/android/src/media3/java/run/granite/video/provider/media3/Media3ContentProvider.kt +29 -0
  18. package/android/src/media3/java/run/granite/video/provider/media3/Media3Initializer.kt +25 -0
  19. package/android/src/media3/java/run/granite/video/provider/media3/factory/ExoPlayerFactory.kt +32 -0
  20. package/android/src/media3/java/run/granite/video/provider/media3/factory/MediaSourceFactory.kt +61 -0
  21. package/android/src/media3/java/run/granite/video/provider/media3/factory/TrackSelectorFactory.kt +26 -0
  22. package/android/src/media3/java/run/granite/video/provider/media3/factory/VideoSurfaceFactory.kt +62 -0
  23. package/android/src/media3/java/run/granite/video/provider/media3/listener/ExoPlayerEventListener.kt +104 -0
  24. package/android/src/media3/java/run/granite/video/provider/media3/scheduler/ProgressScheduler.kt +56 -0
  25. package/android/src/test/java/run/granite/video/GraniteVideoViewRobolectricTest.kt +598 -0
  26. package/android/src/test/java/run/granite/video/event/VideoEventListenerAdapterTest.kt +319 -0
  27. package/android/src/test/java/run/granite/video/helpers/FakeGraniteVideoProvider.kt +161 -0
  28. package/android/src/test/java/run/granite/video/helpers/TestProgressScheduler.kt +42 -0
  29. package/android/src/test/java/run/granite/video/provider/GraniteVideoRegistryTest.kt +232 -0
  30. package/android/src/test/java/run/granite/video/provider/ProviderContractTest.kt +174 -0
  31. package/android/src/test/java/run/granite/video/provider/media3/listener/ExoPlayerEventListenerTest.kt +243 -0
  32. package/android/src/test/resources/kotest.properties +2 -0
  33. package/dist/module/GraniteVideo.js +458 -0
  34. package/dist/module/GraniteVideo.js.map +1 -0
  35. package/dist/module/GraniteVideoNativeComponent.ts +265 -0
  36. package/dist/module/index.js +7 -0
  37. package/dist/module/index.js.map +1 -0
  38. package/dist/module/package.json +1 -0
  39. package/dist/module/types.js +4 -0
  40. package/dist/module/types.js.map +1 -0
  41. package/dist/typescript/GraniteVideo.d.ts +12 -0
  42. package/dist/typescript/GraniteVideoNativeComponent.d.ts +189 -0
  43. package/dist/typescript/index.d.ts +5 -0
  44. package/dist/typescript/types.d.ts +328 -0
  45. package/ios/GraniteVideoComponentsProvider.h +10 -0
  46. package/ios/GraniteVideoProvider.swift +280 -0
  47. package/ios/GraniteVideoView.h +15 -0
  48. package/ios/GraniteVideoView.mm +661 -0
  49. package/ios/Providers/AVPlayerProvider.swift +541 -0
  50. package/package.json +106 -0
  51. package/src/GraniteVideo.tsx +575 -0
  52. package/src/GraniteVideoNativeComponent.ts +265 -0
  53. package/src/index.ts +8 -0
  54. package/src/types.ts +464 -0
@@ -0,0 +1,458 @@
1
+ "use strict";
2
+
3
+ import React, { forwardRef, useRef, useImperativeHandle, useCallback } from 'react';
4
+ import { Platform, StyleSheet, View, Image, findNodeHandle, NativeModules } from 'react-native';
5
+ import NativeGraniteVideoView, { Commands } from './GraniteVideoNativeComponent';
6
+ import { jsx as _jsx } from "react/jsx-runtime";
7
+ const {
8
+ GraniteVideoModule
9
+ } = NativeModules;
10
+
11
+ // For Fabric (New Architecture), the component is always available through codegenNativeComponent
12
+ // We don't need to check UIManager.getViewManagerConfig which is Old Architecture only
13
+
14
+ function normalizeSource(source) {
15
+ if (typeof source === 'number') {
16
+ // require() - not yet supported in native
17
+ return undefined;
18
+ }
19
+ return {
20
+ uri: source.uri,
21
+ type: source.type,
22
+ startPosition: source.startPosition,
23
+ cropStart: source.cropStart,
24
+ cropEnd: source.cropEnd
25
+ };
26
+ }
27
+ function normalizeSelectedTrack(track) {
28
+ if (!track) {
29
+ return undefined;
30
+ }
31
+ return {
32
+ type: track.type,
33
+ value: track.value?.toString()
34
+ };
35
+ }
36
+ function normalizeSelectedVideoTrack(track) {
37
+ if (!track) {
38
+ return undefined;
39
+ }
40
+ return {
41
+ type: track.type,
42
+ value: track.value
43
+ };
44
+ }
45
+ function normalizeDrm(drm) {
46
+ if (!drm) {
47
+ return undefined;
48
+ }
49
+ return {
50
+ type: drm.type,
51
+ licenseServer: drm.licenseServer,
52
+ contentId: drm.contentId,
53
+ certificateUrl: drm.certificateUrl,
54
+ base64Certificate: drm.base64Certificate
55
+ };
56
+ }
57
+ function normalizeBufferConfig(config) {
58
+ if (!config) {
59
+ return undefined;
60
+ }
61
+ return {
62
+ minBufferMs: config.minBufferMs,
63
+ maxBufferMs: config.maxBufferMs,
64
+ bufferForPlaybackMs: config.bufferForPlaybackMs,
65
+ bufferForPlaybackAfterRebufferMs: config.bufferForPlaybackAfterRebufferMs,
66
+ backBufferDurationMs: config.backBufferDurationMs,
67
+ cacheSizeMB: config.cacheSizeMB
68
+ };
69
+ }
70
+ function getPosterUri(poster) {
71
+ if (!poster) {
72
+ return undefined;
73
+ }
74
+ if (typeof poster === 'string') {
75
+ return poster;
76
+ }
77
+ if (typeof poster === 'object' && 'uri' in poster && poster.uri) {
78
+ return poster.uri;
79
+ }
80
+ const resolved = Image.resolveAssetSource(poster);
81
+ return resolved?.uri;
82
+ }
83
+ const VideoBase = /*#__PURE__*/forwardRef((props, ref) => {
84
+ const {
85
+ // Test ID
86
+ testID,
87
+ // Style
88
+ style,
89
+ // Source
90
+ source,
91
+ // Poster
92
+ poster,
93
+ posterResizeMode = 'contain',
94
+ // Playback Control
95
+ paused = false,
96
+ muted = false,
97
+ volume = 1.0,
98
+ rate = 1.0,
99
+ repeat = false,
100
+ playInBackground = false,
101
+ playWhenInactive = false,
102
+ automaticallyWaitsToMinimizeStalling = true,
103
+ shutterColor,
104
+ // Display
105
+ resizeMode = 'contain',
106
+ viewType = 'surface',
107
+ useTextureView = false,
108
+ useSecureView = false,
109
+ // Buffering
110
+ bufferConfig,
111
+ minLoadRetryCount = 3,
112
+ maxBitRate,
113
+ preferredForwardBufferDuration,
114
+ // Track Selection
115
+ selectedAudioTrack,
116
+ selectedTextTrack,
117
+ selectedVideoTrack,
118
+ // DRM
119
+ drm,
120
+ localSourceEncryptionKeyScheme,
121
+ // Ads
122
+ adTagUrl,
123
+ adLanguage,
124
+ // Controls
125
+ controls = false,
126
+ showNotificationControls = false,
127
+ disableFocus = false,
128
+ disableDisconnectError = false,
129
+ focusable = true,
130
+ hideShutterView = false,
131
+ preventsDisplaySleepDuringVideoPlayback = true,
132
+ // Fullscreen
133
+ fullscreen = false,
134
+ fullscreenAutorotate = true,
135
+ fullscreenOrientation = 'all',
136
+ // Picture in Picture
137
+ pictureInPicture = false,
138
+ // Content
139
+ contentStartTime,
140
+ allowsExternalPlayback = true,
141
+ audioOutput = 'speaker',
142
+ ignoreSilentSwitch = 'inherit',
143
+ mixWithOthers = 'inherit',
144
+ // Debug
145
+ debug,
146
+ // Events
147
+ onLoadStart,
148
+ onLoad,
149
+ onError,
150
+ onProgress,
151
+ onSeek,
152
+ onEnd,
153
+ onBuffer,
154
+ onBandwidthUpdate,
155
+ onPlaybackStateChanged,
156
+ onPlaybackRateChange,
157
+ onVolumeChange,
158
+ onIdle,
159
+ onReadyForDisplay,
160
+ onAudioFocusChanged,
161
+ onAudioBecomingNoisy,
162
+ onFullscreenPlayerWillPresent,
163
+ onFullscreenPlayerDidPresent,
164
+ onFullscreenPlayerWillDismiss,
165
+ onFullscreenPlayerDidDismiss,
166
+ onPictureInPictureStatusChanged,
167
+ onRestoreUserInterfaceForPictureInPictureStop,
168
+ onControlsVisibilityChange,
169
+ onExternalPlaybackChange,
170
+ onAspectRatio,
171
+ onTransferEnd
172
+ } = props;
173
+ const nativeRef = useRef(null);
174
+
175
+ // === Imperative Handle ===
176
+ useImperativeHandle(ref, () => ({
177
+ seek: (time, tolerance) => {
178
+ if (nativeRef.current) {
179
+ Commands.seek(nativeRef.current, time, tolerance ?? 0);
180
+ }
181
+ },
182
+ pause: () => {
183
+ if (nativeRef.current) {
184
+ Commands.pause(nativeRef.current);
185
+ }
186
+ },
187
+ resume: () => {
188
+ if (nativeRef.current) {
189
+ Commands.resume(nativeRef.current);
190
+ }
191
+ },
192
+ setVolume: vol => {
193
+ if (nativeRef.current) {
194
+ Commands.adjustVolume(nativeRef.current, vol);
195
+ }
196
+ },
197
+ setFullScreen: fs => {
198
+ if (nativeRef.current) {
199
+ Commands.setFullScreen(nativeRef.current, fs);
200
+ }
201
+ },
202
+ presentFullscreenPlayer: () => {
203
+ if (nativeRef.current) {
204
+ Commands.setFullScreen(nativeRef.current, true);
205
+ }
206
+ },
207
+ dismissFullscreenPlayer: () => {
208
+ if (nativeRef.current) {
209
+ Commands.setFullScreen(nativeRef.current, false);
210
+ }
211
+ },
212
+ enterPictureInPicture: () => {
213
+ if (nativeRef.current) {
214
+ Commands.enterPictureInPicture(nativeRef.current);
215
+ }
216
+ },
217
+ exitPictureInPicture: () => {
218
+ if (nativeRef.current) {
219
+ Commands.exitPictureInPicture(nativeRef.current);
220
+ }
221
+ },
222
+ setSource: newSource => {
223
+ if (nativeRef.current && newSource.uri) {
224
+ Commands.loadSource(nativeRef.current, newSource.uri);
225
+ }
226
+ },
227
+ getCurrentPosition: async () => {
228
+ const handle = findNodeHandle(nativeRef.current);
229
+ if (handle && GraniteVideoModule?.getCurrentPosition) {
230
+ return GraniteVideoModule.getCurrentPosition(handle);
231
+ }
232
+ return 0;
233
+ },
234
+ save: async options => {
235
+ const handle = findNodeHandle(nativeRef.current);
236
+ if (handle && GraniteVideoModule?.save) {
237
+ return GraniteVideoModule.save(handle, options ?? {});
238
+ }
239
+ return {
240
+ uri: ''
241
+ };
242
+ },
243
+ restoreUserInterfaceForPictureInPictureStopCompleted: () => {
244
+ // iOS specific - handled internally
245
+ }
246
+ }));
247
+
248
+ // === Event Handlers ===
249
+ const handleLoadStart = useCallback(event => {
250
+ onLoadStart?.(event.nativeEvent);
251
+ }, [onLoadStart]);
252
+ const handleLoad = useCallback(event => {
253
+ const nativeEvent = event.nativeEvent;
254
+ const loadData = {
255
+ ...nativeEvent,
256
+ naturalSize: {
257
+ ...nativeEvent.naturalSize,
258
+ orientation: nativeEvent.naturalSize.orientation
259
+ },
260
+ audioTracks: [],
261
+ textTracks: [],
262
+ videoTracks: []
263
+ };
264
+ onLoad?.(loadData);
265
+ }, [onLoad]);
266
+ const handleError = useCallback(event => {
267
+ onError?.(event.nativeEvent);
268
+ }, [onError]);
269
+ const handleProgress = useCallback(event => {
270
+ onProgress?.(event.nativeEvent);
271
+ }, [onProgress]);
272
+ const handleSeek = useCallback(event => {
273
+ onSeek?.(event.nativeEvent);
274
+ }, [onSeek]);
275
+ const handleEnd = useCallback(() => {
276
+ onEnd?.();
277
+ }, [onEnd]);
278
+ const handleBuffer = useCallback(event => {
279
+ onBuffer?.(event.nativeEvent);
280
+ }, [onBuffer]);
281
+ const handleBandwidthUpdate = useCallback(event => {
282
+ onBandwidthUpdate?.(event.nativeEvent);
283
+ }, [onBandwidthUpdate]);
284
+ const handlePlaybackStateChanged = useCallback(event => {
285
+ onPlaybackStateChanged?.(event.nativeEvent);
286
+ }, [onPlaybackStateChanged]);
287
+ const handlePlaybackRateChange = useCallback(event => {
288
+ onPlaybackRateChange?.(event.nativeEvent);
289
+ }, [onPlaybackRateChange]);
290
+ const handleVolumeChange = useCallback(event => {
291
+ onVolumeChange?.(event.nativeEvent);
292
+ }, [onVolumeChange]);
293
+ const handleIdle = useCallback(() => {
294
+ onIdle?.();
295
+ }, [onIdle]);
296
+ const handleReadyForDisplay = useCallback(() => {
297
+ onReadyForDisplay?.();
298
+ }, [onReadyForDisplay]);
299
+ const handleAudioFocusChanged = useCallback(event => {
300
+ onAudioFocusChanged?.(event.nativeEvent);
301
+ }, [onAudioFocusChanged]);
302
+ const handleAudioBecomingNoisy = useCallback(() => {
303
+ onAudioBecomingNoisy?.();
304
+ }, [onAudioBecomingNoisy]);
305
+ const handleFullscreenPlayerWillPresent = useCallback(() => {
306
+ onFullscreenPlayerWillPresent?.();
307
+ }, [onFullscreenPlayerWillPresent]);
308
+ const handleFullscreenPlayerDidPresent = useCallback(() => {
309
+ onFullscreenPlayerDidPresent?.();
310
+ }, [onFullscreenPlayerDidPresent]);
311
+ const handleFullscreenPlayerWillDismiss = useCallback(() => {
312
+ onFullscreenPlayerWillDismiss?.();
313
+ }, [onFullscreenPlayerWillDismiss]);
314
+ const handleFullscreenPlayerDidDismiss = useCallback(() => {
315
+ onFullscreenPlayerDidDismiss?.();
316
+ }, [onFullscreenPlayerDidDismiss]);
317
+ const handlePictureInPictureStatusChanged = useCallback(event => {
318
+ onPictureInPictureStatusChanged?.(event.nativeEvent);
319
+ }, [onPictureInPictureStatusChanged]);
320
+ const handleRestoreUserInterfaceForPictureInPictureStop = useCallback(() => {
321
+ onRestoreUserInterfaceForPictureInPictureStop?.();
322
+ }, [onRestoreUserInterfaceForPictureInPictureStop]);
323
+ const handleControlsVisibilityChange = useCallback(event => {
324
+ onControlsVisibilityChange?.(event.nativeEvent);
325
+ }, [onControlsVisibilityChange]);
326
+ const handleExternalPlaybackChange = useCallback(event => {
327
+ onExternalPlaybackChange?.(event.nativeEvent);
328
+ }, [onExternalPlaybackChange]);
329
+ const handleAspectRatio = useCallback(event => {
330
+ onAspectRatio?.(event.nativeEvent);
331
+ }, [onAspectRatio]);
332
+ const handleTransferEnd = useCallback(event => {
333
+ onTransferEnd?.(event.nativeEvent);
334
+ }, [onTransferEnd]);
335
+
336
+ // === Render ===
337
+ const containerStyle = [styles.container, style];
338
+ return /*#__PURE__*/_jsx(View, {
339
+ style: containerStyle,
340
+ testID: testID,
341
+ children: /*#__PURE__*/_jsx(NativeGraniteVideoView, {
342
+ ref: nativeRef,
343
+ style: styles.video,
344
+ source: normalizeSource(source),
345
+ poster: getPosterUri(poster),
346
+ posterResizeMode: posterResizeMode,
347
+ paused: paused,
348
+ muted: muted,
349
+ volume: volume,
350
+ rate: rate,
351
+ repeat: repeat,
352
+ playInBackground: playInBackground,
353
+ playWhenInactive: playWhenInactive,
354
+ automaticallyWaitsToMinimizeStalling: automaticallyWaitsToMinimizeStalling,
355
+ shutterColor: shutterColor,
356
+ resizeMode: resizeMode,
357
+ viewType: viewType,
358
+ useTextureView: useTextureView,
359
+ useSecureView: useSecureView,
360
+ bufferConfig: normalizeBufferConfig(bufferConfig),
361
+ minLoadRetryCount: minLoadRetryCount,
362
+ maxBitRate: maxBitRate,
363
+ preferredForwardBufferDuration: preferredForwardBufferDuration,
364
+ selectedAudioTrack: normalizeSelectedTrack(selectedAudioTrack),
365
+ selectedTextTrack: normalizeSelectedTrack(selectedTextTrack),
366
+ selectedVideoTrack: normalizeSelectedVideoTrack(selectedVideoTrack),
367
+ drm: normalizeDrm(drm),
368
+ localSourceEncryptionKeyScheme: localSourceEncryptionKeyScheme,
369
+ adTagUrl: adTagUrl,
370
+ adLanguage: adLanguage,
371
+ controls: controls,
372
+ showNotificationControls: showNotificationControls,
373
+ disableFocus: disableFocus,
374
+ disableDisconnectError: disableDisconnectError,
375
+ focusable: focusable,
376
+ hideShutterView: hideShutterView,
377
+ preventsDisplaySleepDuringVideoPlayback: preventsDisplaySleepDuringVideoPlayback,
378
+ fullscreen: fullscreen,
379
+ fullscreenAutorotate: fullscreenAutorotate,
380
+ fullscreenOrientation: fullscreenOrientation,
381
+ pictureInPicture: pictureInPicture,
382
+ contentStartTime: contentStartTime,
383
+ allowsExternalPlayback: allowsExternalPlayback,
384
+ audioOutput: audioOutput,
385
+ ignoreSilentSwitch: ignoreSilentSwitch,
386
+ mixWithOthers: mixWithOthers,
387
+ enableDebug: debug?.enable,
388
+ enableDebugThread: debug?.thread,
389
+ onVideoLoadStart: handleLoadStart,
390
+ onVideoLoad: handleLoad,
391
+ onVideoError: handleError,
392
+ onVideoProgress: handleProgress,
393
+ onVideoSeek: handleSeek,
394
+ onVideoEnd: handleEnd,
395
+ onVideoBuffer: handleBuffer,
396
+ onVideoBandwidthUpdate: handleBandwidthUpdate,
397
+ onVideoPlaybackStateChanged: handlePlaybackStateChanged,
398
+ onVideoPlaybackRateChange: handlePlaybackRateChange,
399
+ onVideoVolumeChange: handleVolumeChange,
400
+ onVideoIdle: handleIdle,
401
+ onVideoReadyForDisplay: handleReadyForDisplay,
402
+ onVideoAudioFocusChanged: handleAudioFocusChanged,
403
+ onVideoAudioBecomingNoisy: handleAudioBecomingNoisy,
404
+ onVideoFullscreenPlayerWillPresent: handleFullscreenPlayerWillPresent,
405
+ onVideoFullscreenPlayerDidPresent: handleFullscreenPlayerDidPresent,
406
+ onVideoFullscreenPlayerWillDismiss: handleFullscreenPlayerWillDismiss,
407
+ onVideoFullscreenPlayerDidDismiss: handleFullscreenPlayerDidDismiss,
408
+ onVideoPictureInPictureStatusChanged: handlePictureInPictureStatusChanged,
409
+ onVideoRestoreUserInterfaceForPictureInPictureStop: handleRestoreUserInterfaceForPictureInPictureStop,
410
+ onVideoControlsVisibilityChange: handleControlsVisibilityChange,
411
+ onVideoExternalPlaybackChange: handleExternalPlaybackChange,
412
+ onVideoAspectRatio: handleAspectRatio,
413
+ onTransferEnd: handleTransferEnd
414
+ })
415
+ });
416
+ });
417
+ VideoBase.displayName = 'Video';
418
+
419
+ // Type for GraniteVideo with static properties
420
+
421
+ // Static property to indicate availability
422
+ // For Fabric (New Architecture), the component is always available
423
+ VideoBase.isAvailable = true;
424
+ export const Video = VideoBase;
425
+ const styles = StyleSheet.create({
426
+ container: {
427
+ overflow: 'hidden'
428
+ },
429
+ video: {
430
+ ...StyleSheet.absoluteFillObject
431
+ }
432
+ });
433
+
434
+ // === Static Methods ===
435
+ export async function clearCache() {
436
+ if (GraniteVideoModule?.clearCache) {
437
+ return GraniteVideoModule.clearCache();
438
+ }
439
+ }
440
+ export async function getWidevineLevel() {
441
+ if (Platform.OS === 'android' && GraniteVideoModule?.getWidevineLevel) {
442
+ return GraniteVideoModule.getWidevineLevel();
443
+ }
444
+ return 0;
445
+ }
446
+ export async function isCodecSupported(mimeType, width, height) {
447
+ if (GraniteVideoModule?.isCodecSupported) {
448
+ return GraniteVideoModule.isCodecSupported(mimeType, width, height);
449
+ }
450
+ return false;
451
+ }
452
+ export async function isHEVCSupported() {
453
+ if (GraniteVideoModule?.isHEVCSupported) {
454
+ return GraniteVideoModule.isHEVCSupported();
455
+ }
456
+ return false;
457
+ }
458
+ //# sourceMappingURL=GraniteVideo.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","forwardRef","useRef","useImperativeHandle","useCallback","Platform","StyleSheet","View","Image","findNodeHandle","NativeModules","NativeGraniteVideoView","Commands","jsx","_jsx","GraniteVideoModule","normalizeSource","source","undefined","uri","type","startPosition","cropStart","cropEnd","normalizeSelectedTrack","track","value","toString","normalizeSelectedVideoTrack","normalizeDrm","drm","licenseServer","contentId","certificateUrl","base64Certificate","normalizeBufferConfig","config","minBufferMs","maxBufferMs","bufferForPlaybackMs","bufferForPlaybackAfterRebufferMs","backBufferDurationMs","cacheSizeMB","getPosterUri","poster","resolved","resolveAssetSource","VideoBase","props","ref","testID","style","posterResizeMode","paused","muted","volume","rate","repeat","playInBackground","playWhenInactive","automaticallyWaitsToMinimizeStalling","shutterColor","resizeMode","viewType","useTextureView","useSecureView","bufferConfig","minLoadRetryCount","maxBitRate","preferredForwardBufferDuration","selectedAudioTrack","selectedTextTrack","selectedVideoTrack","localSourceEncryptionKeyScheme","adTagUrl","adLanguage","controls","showNotificationControls","disableFocus","disableDisconnectError","focusable","hideShutterView","preventsDisplaySleepDuringVideoPlayback","fullscreen","fullscreenAutorotate","fullscreenOrientation","pictureInPicture","contentStartTime","allowsExternalPlayback","audioOutput","ignoreSilentSwitch","mixWithOthers","debug","onLoadStart","onLoad","onError","onProgress","onSeek","onEnd","onBuffer","onBandwidthUpdate","onPlaybackStateChanged","onPlaybackRateChange","onVolumeChange","onIdle","onReadyForDisplay","onAudioFocusChanged","onAudioBecomingNoisy","onFullscreenPlayerWillPresent","onFullscreenPlayerDidPresent","onFullscreenPlayerWillDismiss","onFullscreenPlayerDidDismiss","onPictureInPictureStatusChanged","onRestoreUserInterfaceForPictureInPictureStop","onControlsVisibilityChange","onExternalPlaybackChange","onAspectRatio","onTransferEnd","nativeRef","seek","time","tolerance","current","pause","resume","setVolume","vol","adjustVolume","setFullScreen","fs","presentFullscreenPlayer","dismissFullscreenPlayer","enterPictureInPicture","exitPictureInPicture","setSource","newSource","loadSource","getCurrentPosition","handle","save","options","restoreUserInterfaceForPictureInPictureStopCompleted","handleLoadStart","event","nativeEvent","handleLoad","loadData","naturalSize","orientation","audioTracks","textTracks","videoTracks","handleError","handleProgress","handleSeek","handleEnd","handleBuffer","handleBandwidthUpdate","handlePlaybackStateChanged","handlePlaybackRateChange","handleVolumeChange","handleIdle","handleReadyForDisplay","handleAudioFocusChanged","handleAudioBecomingNoisy","handleFullscreenPlayerWillPresent","handleFullscreenPlayerDidPresent","handleFullscreenPlayerWillDismiss","handleFullscreenPlayerDidDismiss","handlePictureInPictureStatusChanged","handleRestoreUserInterfaceForPictureInPictureStop","handleControlsVisibilityChange","handleExternalPlaybackChange","handleAspectRatio","handleTransferEnd","containerStyle","styles","container","children","video","enableDebug","enable","enableDebugThread","thread","onVideoLoadStart","onVideoLoad","onVideoError","onVideoProgress","onVideoSeek","onVideoEnd","onVideoBuffer","onVideoBandwidthUpdate","onVideoPlaybackStateChanged","onVideoPlaybackRateChange","onVideoVolumeChange","onVideoIdle","onVideoReadyForDisplay","onVideoAudioFocusChanged","onVideoAudioBecomingNoisy","onVideoFullscreenPlayerWillPresent","onVideoFullscreenPlayerDidPresent","onVideoFullscreenPlayerWillDismiss","onVideoFullscreenPlayerDidDismiss","onVideoPictureInPictureStatusChanged","onVideoRestoreUserInterfaceForPictureInPictureStop","onVideoControlsVisibilityChange","onVideoExternalPlaybackChange","onVideoAspectRatio","displayName","isAvailable","Video","create","overflow","absoluteFillObject","clearCache","getWidevineLevel","OS","isCodecSupported","mimeType","width","height","isHEVCSupported"],"sourceRoot":"../../src","sources":["GraniteVideo.tsx"],"mappings":"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","ignoreList":[]}