react-native-skia-webgpu-video 0.1.0-beta.2 → 0.1.0-beta.4

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 (86) hide show
  1. package/LICENSE +0 -1
  2. package/README.md +62 -34
  3. package/android/BUILD_VALIDATION.md +1 -1
  4. package/android/CMakeLists.txt +3 -2
  5. package/android/cpp/ExportHintSession.cpp +114 -0
  6. package/android/cpp/ExportHintSession.h +35 -0
  7. package/android/cpp/VideoComposition.cpp +12 -0
  8. package/android/cpp/VideoCompositionFramesExtractor.cpp +6 -0
  9. package/android/cpp/VideoCompositionFramesExtractor.h +1 -0
  10. package/android/cpp/VideoCompositionFramesExtractorHostObject.cpp +1 -1
  11. package/android/cpp/VideoEncoderHostObject.cpp +76 -101
  12. package/android/cpp/VideoEncoderHostObject.h +14 -9
  13. package/android/cpp/VideoFrame.cpp +3 -5
  14. package/android/cpp/cpp-adapter.cpp +7 -4
  15. package/android/src/main/java/com/azzapp/rnskv/GLFrameExtractor.java +3 -9
  16. package/android/src/main/java/com/azzapp/rnskv/PreviewFrameRateVote.java +104 -0
  17. package/android/src/main/java/com/azzapp/rnskv/VideoComposition.java +4 -0
  18. package/android/src/main/java/com/azzapp/rnskv/VideoCompositionDecoder.java +8 -9
  19. package/android/src/main/java/com/azzapp/rnskv/VideoCompositionFramesExtractor.java +32 -0
  20. package/android/src/main/java/com/azzapp/rnskv/VideoEncoder.java +68 -28
  21. package/docs/FRAME_PIXEL_FORMAT.md +124 -0
  22. package/docs/MIGRATION.md +1 -1
  23. package/docs/UPSTREAM_NOTES.md +15 -2
  24. package/docs/VERIFICATION_0.1.0-beta.3.md +147 -0
  25. package/ios/NativeResourceStats.h +9 -0
  26. package/ios/RNSVColorSpace.h +35 -4
  27. package/ios/ReactNativeSkiaVideo.mm +4 -0
  28. package/ios/VideoComposition.h +20 -0
  29. package/ios/VideoCompositionFramesExtractorHostObject.h +5 -0
  30. package/ios/VideoCompositionFramesExtractorHostObject.mm +31 -2
  31. package/ios/VideoCompositionItemDecoder.mm +21 -8
  32. package/ios/VideoFrame.mm +6 -0
  33. package/lib/module/canvas.js +3 -5
  34. package/lib/module/canvas.js.map +1 -1
  35. package/lib/module/exportFrames.js +25 -20
  36. package/lib/module/exportFrames.js.map +1 -1
  37. package/lib/module/exportTarget.js +183 -40
  38. package/lib/module/exportTarget.js.map +1 -1
  39. package/lib/module/exportVideoComposition.js +53 -12
  40. package/lib/module/exportVideoComposition.js.map +1 -1
  41. package/lib/module/frameInterop.js +15 -12
  42. package/lib/module/frameInterop.js.map +1 -1
  43. package/lib/module/gpu.js +0 -2
  44. package/lib/module/gpu.js.map +1 -1
  45. package/lib/module/gpuDevice.js +12 -0
  46. package/lib/module/gpuDevice.js.map +1 -1
  47. package/lib/module/previewLifecycle.js +0 -1
  48. package/lib/module/previewLifecycle.js.map +1 -1
  49. package/lib/module/videoCompositionPlayer.js +13 -5
  50. package/lib/module/videoCompositionPlayer.js.map +1 -1
  51. package/lib/module/yuvBlit.js +98 -21
  52. package/lib/module/yuvBlit.js.map +1 -1
  53. package/lib/typescript/src/canvas.d.ts.map +1 -1
  54. package/lib/typescript/src/exportFrames.d.ts +11 -10
  55. package/lib/typescript/src/exportFrames.d.ts.map +1 -1
  56. package/lib/typescript/src/exportTarget.d.ts +53 -14
  57. package/lib/typescript/src/exportTarget.d.ts.map +1 -1
  58. package/lib/typescript/src/exportVideoComposition.d.ts +2 -1
  59. package/lib/typescript/src/exportVideoComposition.d.ts.map +1 -1
  60. package/lib/typescript/src/frameInterop.d.ts.map +1 -1
  61. package/lib/typescript/src/gpu.d.ts.map +1 -1
  62. package/lib/typescript/src/gpuDevice.d.ts +5 -1
  63. package/lib/typescript/src/gpuDevice.d.ts.map +1 -1
  64. package/lib/typescript/src/previewLifecycle.d.ts.map +1 -1
  65. package/lib/typescript/src/types.d.ts +36 -5
  66. package/lib/typescript/src/types.d.ts.map +1 -1
  67. package/lib/typescript/src/videoCompositionPlayer.d.ts.map +1 -1
  68. package/lib/typescript/src/yuvBlit.d.ts +26 -14
  69. package/lib/typescript/src/yuvBlit.d.ts.map +1 -1
  70. package/package.json +6 -6
  71. package/patches/react-native-skia+3.7.4.patch +146 -0
  72. package/scripts/skia-canvas-patch.json +22 -258
  73. package/src/canvas.ts +3 -7
  74. package/src/exportFrames.ts +53 -36
  75. package/src/exportTarget.ts +217 -56
  76. package/src/exportVideoComposition.ts +87 -26
  77. package/src/frameInterop.ts +26 -11
  78. package/src/gpu.ts +0 -2
  79. package/src/gpuDevice.ts +26 -1
  80. package/src/previewLifecycle.ts +0 -1
  81. package/src/types.ts +37 -5
  82. package/src/videoCompositionPlayer.ts +14 -4
  83. package/src/yuvBlit.ts +108 -27
  84. package/android/cpp/EncoderTargets.cpp +0 -226
  85. package/android/cpp/EncoderTargets.h +0 -70
  86. package/patches/react-native-skia+3.7.1.patch +0 -502
@@ -1 +1 @@
1
- {"version":3,"names":["getVideoCanvas","BlendMode","Skia","useSharedValue","useFrameCallback","runOnUI","useCallback","useEffect","useRef","useState","RNSkiaVideoModule","useEventListener","PixelRatio","scheduleOnRN","ownVideoFrames","releaseVideoFrameImage","frameByteSize","reserveVideoMemory","disposePreviewResources","useVideoComposition","composition","drawFrame","beforeDrawFrame","afterDrawFrame","width","height","autoPlay","isLooping","drawWhenPaused","redrawOnTime","splitImportAndDraw","onReadyToPlay","onComplete","onError","failedComposition","setFailedComposition","isErrored","session","setSession","framesExtractor","extractor","generation","nextGeneration","activeOnRN","activeGeneration","frameGeneration","sourcesGeneration","currentFrame","pendingSnapshot","pendingAfterDraw","previousSources","onCreationError","current","created","createVideoCompositionFramesExtractor","error","createdGeneration","value","releasePreview","failure","native","failed","console","warn","retry","errorHandler","isCurrentSession","prepare","play","surfaceSharedValue","canvasSharedValue","surfaceReservation","surfaceWidth","surfaceHeight","resources","surface","canvas","images","frames","Object","values","reservation","afterDraw","run","lastDrawnFramesVersion","lastDrawnTime","lastDrawnInputs","lastImportedVersion","drawDeferred","pixelRatio","get","pixelWidth","Math","floor","pixelHeight","isFinite","decodeCompositionFrames","key","previous","entries","producerId","currentTime","framesVersion","inputs","Array","isArray","inputsSame","last","length","i","timeSame","undefined","isPlaying","retired","retiredFailure","Surface","MakeOffscreen","Error","drawColor","Color","Clear","context","drawn","submitted","releaseContext","videoComposition","next","makeImageSnapshot","flush","modify","dispose","map","input","player"],"sourceRoot":"../../src","sources":["videoCompositionPlayer.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["getVideoCanvas","BlendMode","Skia","useSharedValue","useFrameCallback","runOnUI","useCallback","useEffect","useRef","useState","RNSkiaVideoModule","useEventListener","PixelRatio","scheduleOnRN","ownVideoFrames","releaseVideoFrameImage","frameByteSize","reserveVideoMemory","disposePreviewResources","useVideoComposition","composition","drawFrame","beforeDrawFrame","afterDrawFrame","width","height","autoPlay","isLooping","drawWhenPaused","redrawOnTime","splitImportAndDraw","onReadyToPlay","onComplete","onError","failedComposition","setFailedComposition","isErrored","session","setSession","framesExtractor","extractor","generation","nextGeneration","activeOnRN","activeGeneration","frameGeneration","sourcesGeneration","currentFrame","pendingSnapshot","pendingAfterDraw","previousSources","onCreationError","current","created","createVideoCompositionFramesExtractor","error","createdGeneration","value","releasePreview","failure","native","failed","console","warn","retry","errorHandler","isCurrentSession","prepare","play","surfaceSharedValue","canvasSharedValue","surfaceReservation","surfaceWidth","surfaceHeight","resources","surface","canvas","images","frames","Object","values","reservation","afterDraw","run","lastDrawnFramesVersion","lastDrawnTime","lastDrawnInputs","lastImportedVersion","drawDeferred","importedLastVsync","pixelRatio","get","pixelWidth","Math","floor","pixelHeight","isFinite","decodeCompositionFrames","key","previous","entries","producerId","currentTime","framesVersion","imported","importedBefore","inputs","Array","isArray","inputsSame","last","length","i","timeSame","undefined","isPlaying","retired","retiredFailure","Surface","MakeOffscreen","Error","drawColor","Color","Clear","context","drawn","submitted","releaseContext","videoComposition","next","makeImageSnapshot","flush","modify","dispose","map","input","player"],"sourceRoot":"../../src","sources":["videoCompositionPlayer.ts"],"mappings":"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","ignoreList":[]}
@@ -45,36 +45,42 @@ const sourceColorSpace = {
45
45
  transfer: "srgb"
46
46
  };
47
47
 
48
- /** The corner of a decoder buffer's crop rectangle once the buffer is turned
49
- * clockwise for display: the blit takes its source origin in that turned
50
- * space. Throws unless the rectangle lies in the buffer and turns into the
51
- * frame's display size. */
52
- export const yuvFrameOrigin = (region, rotation, buffer, frame) => {
48
+ /** A decoder buffer's crop rectangle once the buffer is turned clockwise for
49
+ * display: the blit samples that upright region, and draws it at the size of
50
+ * its target, which a capped or explicit frame size makes smaller. Throws
51
+ * unless the rectangle lies in the buffer. */
52
+ export const yuvFrameRegion = (region, rotation, buffer) => {
53
53
  "worklet";
54
54
 
55
55
  const turned = rotation === 90 || rotation === 270;
56
- if (rotation !== 0 && !turned && rotation !== 180 || region.x < 0 || region.y < 0 || region.x + region.width > buffer.width || region.y + region.height > buffer.height || (turned ? region.height : region.width) !== frame.width || (turned ? region.width : region.height) !== frame.height) {
56
+ if (rotation !== 0 && !turned && rotation !== 180 || region.x < 0 || region.y < 0 || region.width <= 0 || region.height <= 0 || region.x + region.width > buffer.width || region.y + region.height > buffer.height) {
57
57
  throw new Error("Native video buffer region or YUV layout mismatch");
58
58
  }
59
- const {
59
+ const width = turned ? region.height : region.width;
60
+ const height = turned ? region.width : region.height;
61
+ if (rotation === 90) return {
62
+ x: buffer.height - region.y - region.height,
63
+ y: region.x,
60
64
  width,
61
65
  height
62
- } = buffer;
63
- if (rotation === 90) return {
64
- x: height - region.y - region.height,
65
- y: region.x
66
66
  };
67
67
  if (rotation === 180) return {
68
- x: width - region.x - region.width,
69
- y: height - region.y - region.height
68
+ x: buffer.width - region.x - region.width,
69
+ y: buffer.height - region.y - region.height,
70
+ width,
71
+ height
70
72
  };
71
73
  if (rotation === 270) return {
72
74
  x: region.y,
73
- y: width - region.x - region.width
75
+ y: buffer.width - region.x - region.width,
76
+ width,
77
+ height
74
78
  };
75
79
  return {
76
80
  x: region.x,
77
- y: region.y
81
+ y: region.y,
82
+ width,
83
+ height
78
84
  };
79
85
  };
80
86
  const getYuvBlit = device => {
@@ -227,12 +233,13 @@ const importYuvBuffer = (device, blit, handle, rotation) => {
227
233
  };
228
234
 
229
235
  /**
230
- * Draws the upright `width`×`height` region at `origin` of a decoder buffer
231
- * into `target`, converting YUV to RGB; the buffer is imported on its first
232
- * frame. Submits the draw: the caller waits for it before releasing the
233
- * frame's lease or `source`, as after copyExternalImageToTexture.
236
+ * Draws the upright `region` of a decoder buffer (see yuvFrameRegion) into
237
+ * the whole of `target`, converting YUV to RGB and scaling it to the target's
238
+ * size; the buffer is imported on its first frame. Submits the draw: the
239
+ * caller waits for it before releasing the frame's lease or `source`, as
240
+ * after copyExternalImageToTexture.
234
241
  */
235
- export const blitYuvFrame = (device, imports, producer, source, rotation, origin, width, height, target) => {
242
+ export const blitYuvFrame = (device, imports, producer, source, rotation, region, target) => {
236
243
  "worklet";
237
244
 
238
245
  const blit = getYuvBlit(device);
@@ -261,7 +268,7 @@ export const blitYuvFrame = (device, imports, producer, source, rotation, origin
261
268
  const turned = rotation === 90 || rotation === 270;
262
269
  const frameWidth = turned ? source.height : source.width;
263
270
  const frameHeight = turned ? source.width : source.height;
264
- const mapping = [width / frameWidth, height / frameHeight, origin.x / frameWidth, origin.y / frameHeight];
271
+ const mapping = [region.width / frameWidth, region.height / frameHeight, region.x / frameWidth, region.y / frameHeight];
265
272
  if (mapping.some((value, i) => value !== entry.mapping[i])) {
266
273
  device.queue.writeBuffer(entry.uniforms, 0, new Float32Array(mapping));
267
274
  entry.mapping = mapping;
@@ -296,4 +303,74 @@ export const blitYuvFrame = (device, imports, producer, source, rotation, origin
296
303
  entry.wrapper.endAccess()?.fence.destroy();
297
304
  }
298
305
  };
306
+
307
+ /**
308
+ * iOS: draws a whole NV12 decoder buffer into `target`, converting YUV to RGB
309
+ * with the buffer's YCbCr matrix and range, in its decoded orientation (the
310
+ * frame's rotation applies when it is drawn, as for BGRA frames). Submits the
311
+ * draw. AVAssetReader hands out buffers from a pool rather than a fixed few,
312
+ * so each frame is imported for this draw alone, unlike Android's: the import
313
+ * ends right after the submit (Dawn keeps the surface for the in-flight
314
+ * draw), while the caller holds the frame's lease until the draw completed.
315
+ */
316
+ export const blitNv12Frame = (device, source, target) => {
317
+ "worklet";
318
+
319
+ const blit = getYuvBlit(device);
320
+ const pipeline = getPipeline(device, blit, target.format);
321
+ if (!blit.wholeFrame) {
322
+ blit.wholeFrame = device.createBuffer({
323
+ label: "video NV12 blit uniforms",
324
+ size: 16,
325
+ usage: videoUniformBufferUsage
326
+ });
327
+ device.queue.writeBuffer(blit.wholeFrame, 0, new Float32Array([1, 1, 0, 0]));
328
+ }
329
+ const external = device.importExternalTexture({
330
+ label: "video decoder buffer",
331
+ source,
332
+ sourceColorSpace
333
+ });
334
+ try {
335
+ const encoder = device.createCommandEncoder({
336
+ label: "video NV12 blit"
337
+ });
338
+ const pass = encoder.beginRenderPass({
339
+ label: "video NV12 blit",
340
+ colorAttachments: [{
341
+ view: target.createView(),
342
+ loadOp: "clear",
343
+ clearValue: {
344
+ r: 0,
345
+ g: 0,
346
+ b: 0,
347
+ a: 1
348
+ },
349
+ storeOp: "store"
350
+ }]
351
+ });
352
+ pass.setPipeline(pipeline);
353
+ pass.setBindGroup(0, device.createBindGroup({
354
+ label: "video NV12 blit",
355
+ layout: blit.layout,
356
+ entries: [{
357
+ binding: 0,
358
+ resource: external
359
+ }, {
360
+ binding: 1,
361
+ resource: blit.sampler
362
+ }, {
363
+ binding: 2,
364
+ resource: {
365
+ buffer: blit.wholeFrame
366
+ }
367
+ }]
368
+ }));
369
+ pass.draw(3);
370
+ pass.end();
371
+ device.queue.submit([encoder.finish()]);
372
+ } finally {
373
+ external.destroy?.();
374
+ }
375
+ };
299
376
  //# sourceMappingURL=yuvBlit.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["createNativeVideoGpuFrame","videoShaderStages","videoUniformBufferUsage","maxImportsPerProducer","shader","sourceColorSpace","primaries","transfer","yuvFrameOrigin","region","rotation","buffer","frame","turned","x","y","width","height","Error","getYuvBlit","device","runtime","globalThis","__rnskwgpuYuvBlit","layout","createBindGroupLayout","label","entries","binding","visibility","fragment","externalTexture","sampler","type","vertex","pipelineLayout","createPipelineLayout","bindGroupLayouts","createSampler","magFilter","minFilter","module","createShaderModule","code","pipelines","Map","getPipeline","blit","format","pipeline","get","createRenderPipeline","entryPoint","targets","primitive","topology","set","releaseYuvImport","entry","wrapper","destroy","uniforms","source","release","releaseYuvImports","imports","producer","key","undefined","length","shift","delete","importYuvBuffer","handle","createNativeBufferExternalTexture","mirrored","createBuffer","size","usage","bindGroup","createBindGroup","resource","mapping","error","blitYuvFrame","origin","target","index","findIndex","push","splice","frameWidth","frameHeight","some","value","i","queue","writeBuffer","Float32Array","beginAccess","encoder","createCommandEncoder","pass","beginRenderPass","colorAttachments","view","createView","loadOp","clearValue","r","g","b","a","storeOp","setPipeline","setBindGroup","draw","end","submit","finish","endAccess","fence"],"sourceRoot":"../../src","sources":["yuvBlit.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["createNativeVideoGpuFrame","videoShaderStages","videoUniformBufferUsage","maxImportsPerProducer","shader","sourceColorSpace","primaries","transfer","yuvFrameRegion","region","rotation","buffer","turned","x","y","width","height","Error","getYuvBlit","device","runtime","globalThis","__rnskwgpuYuvBlit","layout","createBindGroupLayout","label","entries","binding","visibility","fragment","externalTexture","sampler","type","vertex","pipelineLayout","createPipelineLayout","bindGroupLayouts","createSampler","magFilter","minFilter","module","createShaderModule","code","pipelines","Map","getPipeline","blit","format","pipeline","get","createRenderPipeline","entryPoint","targets","primitive","topology","set","releaseYuvImport","entry","wrapper","destroy","uniforms","source","release","releaseYuvImports","imports","producer","key","undefined","length","shift","delete","importYuvBuffer","handle","createNativeBufferExternalTexture","mirrored","createBuffer","size","usage","bindGroup","createBindGroup","resource","mapping","error","blitYuvFrame","target","index","findIndex","push","splice","frameWidth","frameHeight","some","value","i","queue","writeBuffer","Float32Array","beginAccess","encoder","createCommandEncoder","pass","beginRenderPass","colorAttachments","view","createView","loadOp","clearValue","r","g","b","a","storeOp","setPipeline","setBindGroup","draw","end","submit","finish","endAccess","fence","blitNv12Frame","wholeFrame","external","importExternalTexture"],"sourceRoot":"../../src","sources":["yuvBlit.ts"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"canvas.d.ts","sourceRoot":"","sources":["../../../src/canvas.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAE7D,sFAAsF;AACtF,eAAO,MAAM,cAAc,GAAI,SAAS,SAAS,KAAG,QAkBnD,CAAC"}
1
+ {"version":3,"file":"canvas.d.ts","sourceRoot":"","sources":["../../../src/canvas.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAE7D,sFAAsF;AACtF,eAAO,MAAM,cAAc,GAAI,SAAS,SAAS,KAAG,QAcnD,CAAC"}
@@ -2,10 +2,10 @@ import type { SkImage } from "react-native-skia";
2
2
  import type { GPUSharedTextureMemory, NativeVideoFrame } from "react-native-webgpu";
3
3
  import type { VideoFrame } from "./types.js";
4
4
  import type { YuvImport } from "./yuvBlit.js";
5
- /** A decoded frame sampled in place, without an owned snapshot: on iOS its
6
- * IOSurface, on Android its producer's RGBA texture, which the decoder
7
- * buffer was just converted into. The decoder lease stays open while the
8
- * image is in use. */
5
+ /** A decoded frame sampled in place, without an owned snapshot: a BGRA
6
+ * frame's IOSurface on iOS, or for a YUV frame (Android, iOS NV12) its
7
+ * producer's RGBA texture, which the decoder buffer was just converted into.
8
+ * The decoder lease stays open while the image is in use. */
9
9
  export type ExportFrameImport = {
10
10
  id: number;
11
11
  frame: VideoFrame;
@@ -17,7 +17,7 @@ export type ExportFrameImport = {
17
17
  /** Android: later leases of the same picture, already closed. */
18
18
  aliases?: WeakSet<VideoFrame>;
19
19
  };
20
- /** Android: the texture a producer's decoded frames are converted into. */
20
+ /** The texture a producer's YUV frames are converted into. */
21
21
  type ProducerTexture = {
22
22
  texture: GPUTexture;
23
23
  reservation: number;
@@ -30,7 +30,7 @@ export type ExportFrameImports = {
30
30
  producers: Set<number>;
31
31
  enabled: boolean;
32
32
  imported: boolean;
33
- /** Android: one RGBA texture per producer, rewritten by each frame. */
33
+ /** One RGBA texture per producer of YUV frames, rewritten by each frame. */
34
34
  textures: Map<number, ProducerTexture>;
35
35
  /** Android: decoder buffers imported once (see yuvBlit.ts). */
36
36
  yuv: Map<number, YuvImport[]>;
@@ -43,15 +43,16 @@ export declare const canImportInPlace: (frame: VideoFrame) => boolean;
43
43
  * then keep the lease and fail rather than recycle a buffer still in use. */
44
44
  export declare const releaseExportFrame: (entry: ExportFrameImport) => void;
45
45
  /** Wraps a decoded BGRA CVPixelBuffer's IOSurface as a Skia image, read-only.
46
- * The decoder already finished writing it; no producer fence is needed. On
47
- * Android, converts the decoded YUV frame instead (see importYuvExportFrame). */
46
+ * The decoder already finished writing it; no producer fence is needed. A
47
+ * YUV frame (Android, iOS NV12) is converted instead (see importYuvExportFrame). */
48
48
  export declare const importExportFrame: (frame: VideoFrame, imports?: ExportFrameImports) => ExportFrameImport;
49
49
  /** Releases every in-place frame; the last GPU recording must have completed. */
50
50
  export declare const releaseExportFrames: (imports: ExportFrameImports) => void;
51
51
  /** The export counterpart of ownVideoFrames on iOS: decoded frames are drawn
52
52
  * in place, and a producer's previous frame is released once its next one is
53
- * imported, since every exported frame ends with a checked GPU wait. Other
54
- * frames, or every frame after a first failed import, use `fallback`. */
53
+ * imported, since the export waits for the GPU to complete a frame before it
54
+ * imports the next one. Other frames, or every frame after a first failed
55
+ * import, use `fallback`. */
55
56
  export declare const ownExportFrames: (imports: ExportFrameImports, decoded: Record<string, VideoFrame>, fallback: (frames: Record<string, VideoFrame>) => Record<string, VideoFrame>) => Record<string, VideoFrame>;
56
57
  export {};
57
58
  //# sourceMappingURL=exportFrames.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"exportFrames.d.ts","sourceRoot":"","sources":["../../../src/exportFrames.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,KAAK,EACV,sBAAsB,EAEtB,gBAAgB,EACjB,MAAM,qBAAqB,CAAC;AAW7B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAS,CAAC;AAE1C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAW,CAAC;AAE3C;;;sBAGsB;AACtB,MAAM,MAAM,iBAAiB,GAAG;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,UAAU,CAAC;IAClB,WAAW,EAAE,gBAAgB,GAAG,IAAI,CAAC;IACrC,MAAM,EAAE,sBAAsB,GAAG,IAAI,CAAC;IACtC,OAAO,EAAE,UAAU,GAAG,IAAI,CAAC;IAC3B,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,OAAO,GAAG,IAAI,CAAC;IACtB,iEAAiE;IACjE,OAAO,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;CAC/B,CAAC;AAEF,2EAA2E;AAC3E,KAAK,eAAe,GAAG;IAAE,OAAO,EAAE,UAAU,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAAC;AAEpE;2DAC2D;AAC3D,MAAM,MAAM,kBAAkB,GAAG;IAC/B,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;IACxC,0EAA0E;IAC1E,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACvB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;IAClB,uEAAuE;IACvE,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IACvC,+DAA+D;IAC/D,GAAG,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;CAC/B,CAAC;AAmBF,eAAO,MAAM,wBAAwB,QAAO,kBAU3C,CAAC;AAEF,6EAA6E;AAC7E,eAAO,MAAM,gBAAgB,GAAI,OAAO,UAAU,KAAG,OAQpD,CAAC;AAGF;;6EAE6E;AAC7E,eAAO,MAAM,kBAAkB,GAAI,OAAO,iBAAiB,KAAG,IAiB7D,CAAC;AAqHF;;iFAEiF;AACjF,eAAO,MAAM,iBAAiB,GAC5B,OAAO,UAAU,EACjB,UAAU,kBAAkB,KAC3B,iBA0DF,CAAC;AAEF,iFAAiF;AACjF,eAAO,MAAM,mBAAmB,GAAI,SAAS,kBAAkB,KAAG,IAQjE,CAAC;AAEF;;;yEAGyE;AACzE,eAAO,MAAM,eAAe,GAC1B,SAAS,kBAAkB,EAC3B,SAAS,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,EACnC,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,KAAK,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,KAC3E,MAAM,CAAC,MAAM,EAAE,UAAU,CAqG3B,CAAC"}
1
+ {"version":3,"file":"exportFrames.d.ts","sourceRoot":"","sources":["../../../src/exportFrames.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,KAAK,EACV,sBAAsB,EAEtB,gBAAgB,EACjB,MAAM,qBAAqB,CAAC;AAW7B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAS,CAAC;AAO1C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAW,CAAC;AAE3C;;;6DAG6D;AAC7D,MAAM,MAAM,iBAAiB,GAAG;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,UAAU,CAAC;IAClB,WAAW,EAAE,gBAAgB,GAAG,IAAI,CAAC;IACrC,MAAM,EAAE,sBAAsB,GAAG,IAAI,CAAC;IACtC,OAAO,EAAE,UAAU,GAAG,IAAI,CAAC;IAC3B,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,OAAO,GAAG,IAAI,CAAC;IACtB,iEAAiE;IACjE,OAAO,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;CAC/B,CAAC;AAEF,8DAA8D;AAC9D,KAAK,eAAe,GAAG;IAAE,OAAO,EAAE,UAAU,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAAC;AAEpE;2DAC2D;AAC3D,MAAM,MAAM,kBAAkB,GAAG;IAC/B,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;IACxC,0EAA0E;IAC1E,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACvB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;IAClB,4EAA4E;IAC5E,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IACvC,+DAA+D;IAC/D,GAAG,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;CAC/B,CAAC;AAqBF,eAAO,MAAM,wBAAwB,QAAO,kBAU3C,CAAC;AAEF,6EAA6E;AAC7E,eAAO,MAAM,gBAAgB,GAAI,OAAO,UAAU,KAAG,OAQpD,CAAC;AAGF;;6EAE6E;AAC7E,eAAO,MAAM,kBAAkB,GAAI,OAAO,iBAAiB,KAAG,IAiB7D,CAAC;AA2HF;;oFAEoF;AACpF,eAAO,MAAM,iBAAiB,GAC5B,OAAO,UAAU,EACjB,UAAU,kBAAkB,KAC3B,iBA6DF,CAAC;AAEF,iFAAiF;AACjF,eAAO,MAAM,mBAAmB,GAAI,SAAS,kBAAkB,KAAG,IAQjE,CAAC;AAEF;;;;6BAI6B;AAC7B,eAAO,MAAM,eAAe,GAC1B,SAAS,kBAAkB,EAC3B,SAAS,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,EACnC,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,KAAK,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,KAC3E,MAAM,CAAC,MAAM,EAAE,UAAU,CAqG3B,CAAC"}
@@ -1,11 +1,12 @@
1
1
  import type { SkCanvas, SkSurface } from "react-native-skia";
2
- import type { GPUSharedTextureMemory, NativeVideoFrame } from "react-native-webgpu";
2
+ import type { GPUSharedTextureMemory, NativeVideoFrame, RNCanvasContext } from "react-native-webgpu";
3
3
  import type { VideoEncoder } from "./types.js";
4
- /** An encoder pool buffer that Skia draws into through WebGPU. */
4
+ /** A texture Skia draws an exported frame into through WebGPU: a lent
5
+ * encoder pool buffer on iOS, one of the encoder window's own textures on
6
+ * Android. */
5
7
  export type EncoderTarget = {
6
- pointer: bigint;
7
- /** Android: sync-fds ending the GPU access, handed over to the encoder. */
8
- fences: bigint[];
8
+ /** iOS: the lent CVPixelBuffer. */
9
+ pointer: bigint | null;
9
10
  frame: NativeVideoFrame | null;
10
11
  memory: GPUSharedTextureMemory | null;
11
12
  texture: GPUTexture | null;
@@ -13,16 +14,54 @@ export type EncoderTarget = {
13
14
  surface: SkSurface | null;
14
15
  canvas: SkCanvas | null;
15
16
  };
17
+ /** Android: a canvas context presenting to the codec's input Surface. Skia
18
+ * draws each frame into one of two textures of our own, which a GPU copy then
19
+ * puts into the window's texture. The window's textures are the codec's
20
+ * input buffers: the copy waits on the GPU for the codec to hand one back,
21
+ * while the export goes on with the next frame, rather than the frame's
22
+ * checked wait. */
23
+ export type EncoderWindow = {
24
+ context: RNCanvasContext;
25
+ device: GPUDevice;
26
+ configured: boolean;
27
+ /** Drawn into in turn, each copied into the window after its frame. */
28
+ slots: EncoderTarget[];
29
+ next: number;
30
+ reservations: number[];
31
+ /** The window texture the probe acquired, the first frame's copy target. */
32
+ pending: GPUTexture | null;
33
+ };
16
34
  export declare const supportsEncoderTargets: (encoder: VideoEncoder) => boolean;
17
- /** Ends GPU access; the lent buffer stays with the caller, to encode or
18
- * release. Call only after a checked flush(true) of its surface. With
19
- * `encoding`, Android keeps the access's sync-fds in `target.fences` for the
20
- * encoder, which owns and closes them: ending an AHB access submits a
21
- * release that flush(true) has not waited for. */
22
- export declare const closeEncoderTarget: (target: EncoderTarget, encoding?: boolean) => void;
23
- /** Lends the next pool buffer and wraps it as a Skia surface. */
35
+ /** iOS: ends GPU access; the lent buffer stays with the caller, to encode or
36
+ * release. Call only after a checked flush(true) of its surface. */
37
+ export declare const closeEncoderTarget: (target: EncoderTarget) => void;
38
+ /** iOS: lends the next pool buffer and wraps it as a Skia surface. */
24
39
  export declare const acquireEncoderTarget: (encoder: VideoEncoder, width: number, height: number) => EncoderTarget;
25
- /** Clears one lent buffer on the GPU, then returns it unencoded. Returns the
26
- * failure, or null when this device can export through encoder targets. */
40
+ /** iOS: clears one lent buffer on the GPU, then returns it unencoded.
41
+ * Returns the failure, or null when this device can export through encoder
42
+ * targets. */
27
43
  export declare const probeEncoderTarget: (encoder: VideoEncoder, width: number, height: number) => unknown;
44
+ /** Android: the slot the next frame draws into. Its previous copy completed:
45
+ * the checked wait the export makes before each frame's import covers the
46
+ * queue before it. */
47
+ export declare const acquireWindowTarget: (window: EncoderWindow) => EncoderTarget;
48
+ /** Android: copies the slot Skia drew into to the window's next texture and
49
+ * hands it to the encoder, with its time. Call once the slot's surface was
50
+ * flushed: the copy follows the drawing on the same queue. */
51
+ export declare const presentWindowTarget: (encoder: VideoEncoder, window: EncoderWindow, target: EncoderTarget, time: number) => void;
52
+ /** Android: the swapchain gives the codec its buffers back at once, rather
53
+ * than once the context is collected. Call before disposing the encoder. */
54
+ export declare const closeEncoderWindow: (window: EncoderWindow) => void;
55
+ /** Android: frees the window's own textures. Call once their last recording
56
+ * was submitted: a copy still in flight keeps its source alive. */
57
+ export declare const releaseEncoderWindow: (window: EncoderWindow) => void;
58
+ /** Android: opens a canvas context on the encoder's input window with its
59
+ * slots, acquires the window's first texture and draws a clear into the
60
+ * first slot: nothing reaches the encoder. Returns the window, or the
61
+ * failure, after which the window is closed and the export can fall back to
62
+ * readback. */
63
+ export declare const probeEncoderWindow: (encoder: VideoEncoder, width: number, height: number) => {
64
+ window: EncoderWindow | null;
65
+ failure: unknown;
66
+ };
28
67
  //# sourceMappingURL=exportTarget.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"exportTarget.d.ts","sourceRoot":"","sources":["../../../src/exportTarget.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,KAAK,EACV,sBAAsB,EAEtB,gBAAgB,EACjB,MAAM,qBAAqB,CAAC;AAG7B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAS,CAAC;AAE5C,kEAAkE;AAClE,MAAM,MAAM,aAAa,GAAG;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,2EAA2E;IAC3E,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,KAAK,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAC/B,MAAM,EAAE,sBAAsB,GAAG,IAAI,CAAC;IACtC,OAAO,EAAE,UAAU,GAAG,IAAI,CAAC;IAC3B,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,SAAS,GAAG,IAAI,CAAC;IAC1B,MAAM,EAAE,QAAQ,GAAG,IAAI,CAAC;CACzB,CAAC;AAYF,eAAO,MAAM,sBAAsB,GAAI,SAAS,YAAY,KAAG,OAM9D,CAAC;AAGF;;;;kDAIkD;AAClD,eAAO,MAAM,kBAAkB,GAC7B,QAAQ,aAAa,EACrB,kBAAgB,KACf,IAmCF,CAAC;AAEF,iEAAiE;AACjE,eAAO,MAAM,oBAAoB,GAC/B,SAAS,YAAY,EACrB,OAAO,MAAM,EACb,QAAQ,MAAM,KACb,aAwDF,CAAC;AAEF;2EAC2E;AAC3E,eAAO,MAAM,kBAAkB,GAC7B,SAAS,YAAY,EACrB,OAAO,MAAM,EACb,QAAQ,MAAM,KACb,OAmBF,CAAC"}
1
+ {"version":3,"file":"exportTarget.d.ts","sourceRoot":"","sources":["../../../src/exportTarget.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,KAAK,EACV,sBAAsB,EAEtB,gBAAgB,EAChB,eAAe,EAChB,MAAM,qBAAqB,CAAC;AAc7B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAS,CAAC;AAE5C;;cAEc;AACd,MAAM,MAAM,aAAa,GAAG;IAC1B,mCAAmC;IACnC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,KAAK,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAC/B,MAAM,EAAE,sBAAsB,GAAG,IAAI,CAAC;IACtC,OAAO,EAAE,UAAU,GAAG,IAAI,CAAC;IAC3B,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,SAAS,GAAG,IAAI,CAAC;IAC1B,MAAM,EAAE,QAAQ,GAAG,IAAI,CAAC;CACzB,CAAC;AAEF;;;;;mBAKmB;AACnB,MAAM,MAAM,aAAa,GAAG;IAC1B,OAAO,EAAE,eAAe,CAAC;IACzB,MAAM,EAAE,SAAS,CAAC;IAClB,UAAU,EAAE,OAAO,CAAC;IACpB,uEAAuE;IACvE,KAAK,EAAE,aAAa,EAAE,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,4EAA4E;IAC5E,OAAO,EAAE,UAAU,GAAG,IAAI,CAAC;CAC5B,CAAC;AAUF,eAAO,MAAM,sBAAsB,GAAI,SAAS,YAAY,KAAG,OAM9D,CAAC;AAGF;oEACoE;AACpE,eAAO,MAAM,kBAAkB,GAAI,QAAQ,aAAa,KAAG,IAsB1D,CAAC;AAEF,sEAAsE;AACtE,eAAO,MAAM,oBAAoB,GAC/B,SAAS,YAAY,EACrB,OAAO,MAAM,EACb,QAAQ,MAAM,KACb,aA6CF,CAAC;AAEF;;cAEc;AACd,eAAO,MAAM,kBAAkB,GAC7B,SAAS,YAAY,EACrB,OAAO,MAAM,EACb,QAAQ,MAAM,KACb,OAmBF,CAAC;AAqBF;;sBAEsB;AACtB,eAAO,MAAM,mBAAmB,GAAI,QAAQ,aAAa,KAAG,aAG3D,CAAC;AAEF;;8DAE8D;AAC9D,eAAO,MAAM,mBAAmB,GAC9B,SAAS,YAAY,EACrB,QAAQ,aAAa,EACrB,QAAQ,aAAa,EACrB,MAAM,MAAM,KACX,IAmBF,CAAC;AAEF;4EAC4E;AAC5E,eAAO,MAAM,kBAAkB,GAAI,QAAQ,aAAa,KAAG,IAM1D,CAAC;AAEF;mEACmE;AACnE,eAAO,MAAM,oBAAoB,GAAI,QAAQ,aAAa,KAAG,IAgB5D,CAAC;AAEF;;;;eAIe;AACf,eAAO,MAAM,kBAAkB,GAC7B,SAAS,YAAY,EACrB,OAAO,MAAM,EACb,QAAQ,MAAM,KACb;IAAE,MAAM,EAAE,aAAa,GAAG,IAAI,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAiElD,CAAC"}
@@ -31,7 +31,8 @@ export type ExportProfile = {
31
31
  targetMs: number;
32
32
  /** drawFrame, before/afterDrawFrame and progress scheduling. */
33
33
  drawMs: number;
34
- /** The checked flush(true): waiting for the GPU to complete the frame. */
34
+ /** The checked flush(true): waiting for the GPU to complete the frame,
35
+ * which Android's window export does once it decoded the next frame. */
35
36
  gpuMs: number;
36
37
  /** Readback when used, submission to the encoder including its
37
38
  * backpressure, and the final file write. */
@@ -1 +1 @@
1
- {"version":3,"file":"exportVideoComposition.d.ts","sourceRoot":"","sources":["../../../src/exportVideoComposition.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EACV,aAAa,EACb,WAAW,EACX,gBAAgB,EAGhB,UAAU,EACX,MAAM,YAAS,CAAC;AA4BjB,MAAM,MAAM,2BAA2B,GAAG;IACxC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACnC,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,WAAW,EAAE,MAAM,OAAO,CAAC;CAC5B,CAAC;AAEF;iEACiE;AACjE,MAAM,MAAM,mBAAmB,GAAG;IAChC,YAAY,EAAE,CAAC,OAAO,EAAE,2BAA2B,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7E;8EAC0E;IAC1E,OAAO,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACrC,CAAC;AAEF;yEACyE;AACzE,MAAM,MAAM,aAAa,GAAG;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,6CAA6C;IAC7C,QAAQ,EAAE,MAAM,CAAC;IACjB,8EAA8E;IAC9E,QAAQ,EAAE,MAAM,CAAC;IACjB,2CAA2C;IAC3C,SAAS,EAAE,MAAM,CAAC;IAClB;6CACyC;IACzC,QAAQ,EAAE,MAAM,CAAC;IACjB,gEAAgE;IAChE,MAAM,EAAE,MAAM,CAAC;IACf,0EAA0E;IAC1E,KAAK,EAAE,MAAM,CAAC;IACd;iDAC6C;IAC7C,QAAQ,EAAE,MAAM,CAAC;IACjB,0DAA0D;IAC1D,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,oBAAoB,CAAC,CAAC,GAAG,SAAS,IAAI,aAAa,GAAG;IAChE,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,SAAS,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC;IAC1B,eAAe,CAAC,EAAE,MAAM,CAAC,CAAC;IAC1B,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,IAAI,CAAC;IACtC,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE;QACtB,eAAe,EAAE,MAAM,CAAC;QACxB,QAAQ,EAAE,MAAM,CAAC;KAClB,KAAK,IAAI,CAAC;IACX,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B;uEACmE;IACnE,oBAAoB,CAAC,EAAE,CAAC,OAAO,EAAE;QAC/B,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,gBAAgB,EAAE,gBAAgB,CAAC;QACnC,WAAW,EAAE,MAAM,OAAO,CAAC;KAC5B,KAAK,mBAAmB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;IACzD;gFAC4E;IAC5E,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,aAAa,KAAK,IAAI,CAAC;CAC9C,CAAC;AAsDF;;kFAEkF;AAClF,eAAO,MAAM,sBAAsB,GAAI,CAAC,GAAG,SAAS,EAClD,MAAM,oBAAoB,CAAC,CAAC,CAAC,KAC5B,OAAO,CAAC,IAAI,CAA+D,CAAC"}
1
+ {"version":3,"file":"exportVideoComposition.d.ts","sourceRoot":"","sources":["../../../src/exportVideoComposition.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EACV,aAAa,EACb,WAAW,EACX,gBAAgB,EAGhB,UAAU,EACX,MAAM,YAAS,CAAC;AAkCjB,MAAM,MAAM,2BAA2B,GAAG;IACxC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACnC,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,WAAW,EAAE,MAAM,OAAO,CAAC;CAC5B,CAAC;AAEF;iEACiE;AACjE,MAAM,MAAM,mBAAmB,GAAG;IAChC,YAAY,EAAE,CAAC,OAAO,EAAE,2BAA2B,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7E;8EAC0E;IAC1E,OAAO,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACrC,CAAC;AAEF;yEACyE;AACzE,MAAM,MAAM,aAAa,GAAG;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,6CAA6C;IAC7C,QAAQ,EAAE,MAAM,CAAC;IACjB,8EAA8E;IAC9E,QAAQ,EAAE,MAAM,CAAC;IACjB,2CAA2C;IAC3C,SAAS,EAAE,MAAM,CAAC;IAClB;6CACyC;IACzC,QAAQ,EAAE,MAAM,CAAC;IACjB,gEAAgE;IAChE,MAAM,EAAE,MAAM,CAAC;IACf;4EACwE;IACxE,KAAK,EAAE,MAAM,CAAC;IACd;iDAC6C;IAC7C,QAAQ,EAAE,MAAM,CAAC;IACjB,0DAA0D;IAC1D,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,oBAAoB,CAAC,CAAC,GAAG,SAAS,IAAI,aAAa,GAAG;IAChE,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,SAAS,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC;IAC1B,eAAe,CAAC,EAAE,MAAM,CAAC,CAAC;IAC1B,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,IAAI,CAAC;IACtC,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE;QACtB,eAAe,EAAE,MAAM,CAAC;QACxB,QAAQ,EAAE,MAAM,CAAC;KAClB,KAAK,IAAI,CAAC;IACX,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B;uEACmE;IACnE,oBAAoB,CAAC,EAAE,CAAC,OAAO,EAAE;QAC/B,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,gBAAgB,EAAE,gBAAgB,CAAC;QACnC,WAAW,EAAE,MAAM,OAAO,CAAC;KAC5B,KAAK,mBAAmB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;IACzD;gFAC4E;IAC5E,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,aAAa,KAAK,IAAI,CAAC;CAC9C,CAAC;AA2DF;;kFAEkF;AAClF,eAAO,MAAM,sBAAsB,GAAI,CAAC,GAAG,SAAS,EAClD,MAAM,oBAAoB,CAAC,CAAC,CAAC,KAC5B,OAAO,CAAC,IAAI,CAA+D,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"frameInterop.d.ts","sourceRoot":"","sources":["../../../src/frameInterop.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAY,OAAO,EAAa,MAAM,mBAAmB,CAAC;AACtE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAS,CAAC;AAiJ1C;;4EAE4E;AAC5E,eAAO,MAAM,qBAAqB,GAAI,+BAA6B,KAAG,IA8BrE,CAAC;AAEF,+EAA+E;AAC/E,eAAO,MAAM,sBAAsB,GAAI,OAAO,UAAU,KAAG,IAmB1D,CAAC;AAEF;;;oFAGoF;AACpF,eAAO,MAAM,mBAAmB,GAAI,OAAO,UAAU,KAAG,OAAO,GAAG,IAiXjE,CAAC;AAEF;yEACyE;AACzE,eAAO,MAAM,cAAc,GACzB,QAAQ,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,KACjC,MAAM,CAAC,MAAM,EAAE,UAAU,CAkG3B,CAAC"}
1
+ {"version":3,"file":"frameInterop.d.ts","sourceRoot":"","sources":["../../../src/frameInterop.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAY,OAAO,EAAa,MAAM,mBAAmB,CAAC;AACtE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAS,CAAC;AAuJ1C;;4EAE4E;AAC5E,eAAO,MAAM,qBAAqB,GAAI,+BAA6B,KAAG,IA8BrE,CAAC;AAEF,+EAA+E;AAC/E,eAAO,MAAM,sBAAsB,GAAI,OAAO,UAAU,KAAG,IAmB1D,CAAC;AAEF;;;oFAGoF;AACpF,eAAO,MAAM,mBAAmB,GAAI,OAAO,UAAU,KAAG,OAAO,GAAG,IA0XjE,CAAC;AAEF;yEACyE;AACzE,eAAO,MAAM,cAAc,GACzB,QAAQ,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,KACjC,MAAM,CAAC,MAAM,EAAE,UAAU,CAkG3B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"gpu.d.ts","sourceRoot":"","sources":["../../../src/gpu.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAKtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAa,CAAC;AAEhD,MAAM,MAAM,qBAAqB,GAC7B,YAAY,GACZ,YAAY,GACZ,aAAa,GACb,SAAS,GACT,aAAa,GACb,cAAc,CAAC;AACnB,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC;IAC7B,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAAC;IAC/B,QAAQ,CAAC,OAAO,EAAE,SAAS,GAAG,IAAI,CAAC;IACnC,QAAQ,CAAC,MAAM,EAAE,QAAQ,GAAG,IAAI,CAAC;CAClC,CAAC;AACF,MAAM,MAAM,sBAAsB,GAAG;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,qBAAqB,CAAC;IAC/B,KAAK,CAAC,EAAE,oBAAoB,CAAC;IAC7B;6EACyE;IACzE,IAAI,CAAC,EAAE,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;IACpC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AACF,MAAM,MAAM,aAAa,GAAG;IAC1B,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IAC3B,aAAa,EAAE,CAAC,OAAO,EAAE,sBAAsB,KAAK,cAAc,CAAC;IACnE,YAAY,EAAE,CAAC,UAAU,EAAE,mBAAmB,KAAK,SAAS,CAAC;IAC7D,uEAAuE;IACvE,KAAK,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;IAClD,iFAAiF;IACjF,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3B;gFAC4E;IAC5E,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9B,CAAC;AAWF;;gFAEgF;AAChF,eAAO,MAAM,mBAAmB,GAAI,UAAU;IAC5C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,KAAG,aAqOH,CAAC"}
1
+ {"version":3,"file":"gpu.d.ts","sourceRoot":"","sources":["../../../src/gpu.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAKtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAa,CAAC;AAEhD,MAAM,MAAM,qBAAqB,GAC7B,YAAY,GACZ,YAAY,GACZ,aAAa,GACb,SAAS,GACT,aAAa,GACb,cAAc,CAAC;AACnB,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC;IAC7B,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAAC;IAC/B,QAAQ,CAAC,OAAO,EAAE,SAAS,GAAG,IAAI,CAAC;IACnC,QAAQ,CAAC,MAAM,EAAE,QAAQ,GAAG,IAAI,CAAC;CAClC,CAAC;AACF,MAAM,MAAM,sBAAsB,GAAG;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,qBAAqB,CAAC;IAC/B,KAAK,CAAC,EAAE,oBAAoB,CAAC;IAC7B;6EACyE;IACzE,IAAI,CAAC,EAAE,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;IACpC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AACF,MAAM,MAAM,aAAa,GAAG;IAC1B,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IAC3B,aAAa,EAAE,CAAC,OAAO,EAAE,sBAAsB,KAAK,cAAc,CAAC;IACnE,YAAY,EAAE,CAAC,UAAU,EAAE,mBAAmB,KAAK,SAAS,CAAC;IAC7D,uEAAuE;IACvE,KAAK,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;IAClD,iFAAiF;IACjF,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3B;gFAC4E;IAC5E,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9B,CAAC;AAWF;;gFAEgF;AAChF,eAAO,MAAM,mBAAmB,GAAI,UAAU;IAC5C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,KAAG,aAmOH,CAAC"}
@@ -1,7 +1,11 @@
1
- import type { NativeVideoFrame } from "react-native-webgpu";
1
+ import type { NativeVideoFrame, RNCanvasContext } from "react-native-webgpu";
2
2
  export declare const getVideoGpuDevice: () => GPUDevice;
3
3
  export declare const createNativeVideoGpuFrame: (pointer: bigint) => NativeVideoFrame;
4
+ /** Android: a canvas context presenting to a native window that is not a
5
+ * view, such as an encoder's input Surface. */
6
+ export declare const createNativeWindowGpuContext: (window: bigint, width: number, height: number) => RNCanvasContext;
4
7
  export declare const nativeVideoTextureUsage: number;
8
+ export declare const encoderWindowTextureUsage: number;
5
9
  export declare const rgbaVideoTextureUsage: number;
6
10
  export declare const videoShaderStages: {
7
11
  vertex: number;
@@ -1 +1 @@
1
- {"version":3,"file":"gpuDevice.d.ts","sourceRoot":"","sources":["../../../src/gpuDevice.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAsC5D,eAAO,MAAM,iBAAiB,QAAO,SAIpC,CAAC;AAEF,eAAO,MAAM,yBAAyB,GACpC,SAAS,MAAM,KACd,gBAKF,CAAC;AAEF,eAAO,MAAM,uBAAuB,QAGV,CAAC;AAI3B,eAAO,MAAM,qBAAqB,QACkB,CAAC;AAGrD,eAAO,MAAM,iBAAiB;;;CAG7B,CAAC;AACF,eAAO,MAAM,uBAAuB,QACc,CAAC"}
1
+ {"version":3,"file":"gpuDevice.d.ts","sourceRoot":"","sources":["../../../src/gpuDevice.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAsC7E,eAAO,MAAM,iBAAiB,QAAO,SAIpC,CAAC;AAEF,eAAO,MAAM,yBAAyB,GACpC,SAAS,MAAM,KACd,gBAKF,CAAC;AAEF;+CAC+C;AAC/C,eAAO,MAAM,4BAA4B,GACvC,QAAQ,MAAM,EACd,OAAO,MAAM,EACb,QAAQ,MAAM,KACb,eAaF,CAAC;AAEF,eAAO,MAAM,uBAAuB,QAGV,CAAC;AAG3B,eAAO,MAAM,yBAAyB,QACwB,CAAC;AAI/D,eAAO,MAAM,qBAAqB,QACkB,CAAC;AAGrD,eAAO,MAAM,iBAAiB;;;CAG7B,CAAC;AACF,eAAO,MAAM,uBAAuB,QACc,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"previewLifecycle.d.ts","sourceRoot":"","sources":["../../../src/previewLifecycle.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAGtE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAS,CAAC;AAE1C,KAAK,gBAAgB,GAAG;IACtB,OAAO,CAAC,EAAE,SAAS,GAAG,IAAI,CAAC;IAC3B,MAAM,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAC;IACzB,MAAM,CAAC,EAAE,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;IAC/B,MAAM,CAAC,EAAE,UAAU,EAAE,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI,CAAC;IAChC,MAAM,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,IAAI,CAAA;KAAE,GAAG,IAAI,CAAC;CACzC,CAAC;AAEF;;gFAEgF;AAChF,eAAO,MAAM,uBAAuB,GAAI,WAAW,gBAAgB;;WAEZ,OAAO;CAuC7D,CAAC"}
1
+ {"version":3,"file":"previewLifecycle.d.ts","sourceRoot":"","sources":["../../../src/previewLifecycle.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAGtE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAS,CAAC;AAE1C,KAAK,gBAAgB,GAAG;IACtB,OAAO,CAAC,EAAE,SAAS,GAAG,IAAI,CAAC;IAC3B,MAAM,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAC;IACzB,MAAM,CAAC,EAAE,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;IAC/B,MAAM,CAAC,EAAE,UAAU,EAAE,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI,CAAC;IAChC,MAAM,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,IAAI,CAAA;KAAE,GAAG,IAAI,CAAC;CACzC,CAAC;AAEF;;gFAEgF;AAChF,eAAO,MAAM,uBAAuB,GAAI,WAAW,gBAAgB;;WAEZ,OAAO;CAsC7D,CAAC"}
@@ -141,6 +141,25 @@ export type VideoPlayer = {
141
141
  */
142
142
  on(name: "error", listener: (error: any) => void): () => void;
143
143
  };
144
+ /**
145
+ * The pixel format decoded frames are handed over in, before they are drawn.
146
+ *
147
+ * - `yuv`: the decoder's own YUV 4:2:0 buffers, converted to RGB on the GPU
148
+ * when a frame is drawn. A frame takes 1.5 bytes a pixel rather than 4
149
+ * (12.4 MB rather than 33.2 MB in 4K), so the decoder holds more frames
150
+ * ahead for the same memory. On Android only 8-bit SDR tracks decoded at
151
+ * their own size; other tracks stay `rgba`.
152
+ * - `rgba`: frames converted to RGB as they are decoded (iOS: by VideoToolbox,
153
+ * Android: by an OpenGL pass), which a GPU export samples in place.
154
+ * - `auto`: `yuv`, on both platforms.
155
+ *
156
+ * Camera footage (Rec.709, or HLG tone mapped to Rec.709) renders the same
157
+ * either way: both convert with the frame's YCbCr matrix and range. On iOS,
158
+ * `rgba` also converts a file tagged with other primaries or another SDR
159
+ * transfer function (Display P3, sRGB) to Rec.709; `yuv` takes its samples as
160
+ * Rec.709, as Android does in both formats.
161
+ */
162
+ export type VideoFramePixelFormat = "auto" | "yuv" | "rgba";
144
163
  /**
145
164
  * Represents a video composition.
146
165
  */
@@ -163,6 +182,13 @@ export type VideoComposition = {
163
182
  * until its decoder has opened. The export always waits for it.
164
183
  */
165
184
  lazyDecoders?: boolean;
185
+ /**
186
+ * The pixel format the video items' frames are decoded into, for the
187
+ * preview and the export, see {@link VideoFramePixelFormat}.
188
+ *
189
+ * @default 'auto'
190
+ */
191
+ framePixelFormat?: VideoFramePixelFormat;
166
192
  };
167
193
  type VideoCompositionItemBase = {
168
194
  /**
@@ -382,14 +408,19 @@ export type VideoEncoder = {
382
408
  */
383
409
  encodeFrame(texture: unknown, time: number): void;
384
410
  /**
385
- * Lends the next pool buffer to draw into on the GPU: a CVPixelBuffer on
386
- * iOS, an RGBA AHardwareBuffer on Android. Pass it back as a native-buffer
387
- * frame (on Android with the sync-fds ending its GPU access, in `fences`),
388
- * or release it. One at a time.
411
+ * iOS: lends the next pool buffer (a CVPixelBuffer) to draw into on the
412
+ * GPU. Pass it back as a native-buffer frame, or release it. One at a time.
389
413
  */
390
414
  acquireFrameBuffer?(): bigint;
391
- /** Returns a lent buffer that will not be encoded. */
415
+ /** iOS: returns a lent buffer that will not be encoded. */
392
416
  releaseFrameBuffer?(): void;
417
+ /**
418
+ * Android: the codec's input Surface, as an ANativeWindow pointer for a
419
+ * WebGPU canvas context to present to. Each frame is then encoded as
420
+ * `{ kind: "window", present }`: the encoder sets the frame's time on the
421
+ * window and calls `present`, which presents the context.
422
+ */
423
+ acquireInputWindow?(): bigint;
393
424
  finishWriting(): void;
394
425
  /**
395
426
  * Disposes of the video composition encoder.