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.
- package/LICENSE +0 -1
- package/README.md +62 -34
- package/android/BUILD_VALIDATION.md +1 -1
- package/android/CMakeLists.txt +3 -2
- package/android/cpp/ExportHintSession.cpp +114 -0
- package/android/cpp/ExportHintSession.h +35 -0
- package/android/cpp/VideoComposition.cpp +12 -0
- package/android/cpp/VideoCompositionFramesExtractor.cpp +6 -0
- package/android/cpp/VideoCompositionFramesExtractor.h +1 -0
- package/android/cpp/VideoCompositionFramesExtractorHostObject.cpp +1 -1
- package/android/cpp/VideoEncoderHostObject.cpp +76 -101
- package/android/cpp/VideoEncoderHostObject.h +14 -9
- package/android/cpp/VideoFrame.cpp +3 -5
- package/android/cpp/cpp-adapter.cpp +7 -4
- package/android/src/main/java/com/azzapp/rnskv/GLFrameExtractor.java +3 -9
- package/android/src/main/java/com/azzapp/rnskv/PreviewFrameRateVote.java +104 -0
- package/android/src/main/java/com/azzapp/rnskv/VideoComposition.java +4 -0
- package/android/src/main/java/com/azzapp/rnskv/VideoCompositionDecoder.java +8 -9
- package/android/src/main/java/com/azzapp/rnskv/VideoCompositionFramesExtractor.java +32 -0
- package/android/src/main/java/com/azzapp/rnskv/VideoEncoder.java +68 -28
- package/docs/FRAME_PIXEL_FORMAT.md +124 -0
- package/docs/MIGRATION.md +1 -1
- package/docs/UPSTREAM_NOTES.md +15 -2
- package/docs/VERIFICATION_0.1.0-beta.3.md +147 -0
- package/ios/NativeResourceStats.h +9 -0
- package/ios/RNSVColorSpace.h +35 -4
- package/ios/ReactNativeSkiaVideo.mm +4 -0
- package/ios/VideoComposition.h +20 -0
- package/ios/VideoCompositionFramesExtractorHostObject.h +5 -0
- package/ios/VideoCompositionFramesExtractorHostObject.mm +31 -2
- package/ios/VideoCompositionItemDecoder.mm +21 -8
- package/ios/VideoFrame.mm +6 -0
- package/lib/module/canvas.js +3 -5
- package/lib/module/canvas.js.map +1 -1
- package/lib/module/exportFrames.js +25 -20
- package/lib/module/exportFrames.js.map +1 -1
- package/lib/module/exportTarget.js +183 -40
- package/lib/module/exportTarget.js.map +1 -1
- package/lib/module/exportVideoComposition.js +53 -12
- package/lib/module/exportVideoComposition.js.map +1 -1
- package/lib/module/frameInterop.js +15 -12
- package/lib/module/frameInterop.js.map +1 -1
- package/lib/module/gpu.js +0 -2
- package/lib/module/gpu.js.map +1 -1
- package/lib/module/gpuDevice.js +12 -0
- package/lib/module/gpuDevice.js.map +1 -1
- package/lib/module/previewLifecycle.js +0 -1
- package/lib/module/previewLifecycle.js.map +1 -1
- package/lib/module/videoCompositionPlayer.js +13 -5
- package/lib/module/videoCompositionPlayer.js.map +1 -1
- package/lib/module/yuvBlit.js +98 -21
- package/lib/module/yuvBlit.js.map +1 -1
- package/lib/typescript/src/canvas.d.ts.map +1 -1
- package/lib/typescript/src/exportFrames.d.ts +11 -10
- package/lib/typescript/src/exportFrames.d.ts.map +1 -1
- package/lib/typescript/src/exportTarget.d.ts +53 -14
- package/lib/typescript/src/exportTarget.d.ts.map +1 -1
- package/lib/typescript/src/exportVideoComposition.d.ts +2 -1
- package/lib/typescript/src/exportVideoComposition.d.ts.map +1 -1
- package/lib/typescript/src/frameInterop.d.ts.map +1 -1
- package/lib/typescript/src/gpu.d.ts.map +1 -1
- package/lib/typescript/src/gpuDevice.d.ts +5 -1
- package/lib/typescript/src/gpuDevice.d.ts.map +1 -1
- package/lib/typescript/src/previewLifecycle.d.ts.map +1 -1
- package/lib/typescript/src/types.d.ts +36 -5
- package/lib/typescript/src/types.d.ts.map +1 -1
- package/lib/typescript/src/videoCompositionPlayer.d.ts.map +1 -1
- package/lib/typescript/src/yuvBlit.d.ts +26 -14
- package/lib/typescript/src/yuvBlit.d.ts.map +1 -1
- package/package.json +6 -6
- package/patches/react-native-skia+3.7.4.patch +146 -0
- package/scripts/skia-canvas-patch.json +22 -258
- package/src/canvas.ts +3 -7
- package/src/exportFrames.ts +53 -36
- package/src/exportTarget.ts +217 -56
- package/src/exportVideoComposition.ts +87 -26
- package/src/frameInterop.ts +26 -11
- package/src/gpu.ts +0 -2
- package/src/gpuDevice.ts +26 -1
- package/src/previewLifecycle.ts +0 -1
- package/src/types.ts +37 -5
- package/src/videoCompositionPlayer.ts +14 -4
- package/src/yuvBlit.ts +108 -27
- package/android/cpp/EncoderTargets.cpp +0 -226
- package/android/cpp/EncoderTargets.h +0 -70
- 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":[]}
|
package/lib/module/yuvBlit.js
CHANGED
|
@@ -45,36 +45,42 @@ const sourceColorSpace = {
|
|
|
45
45
|
transfer: "srgb"
|
|
46
46
|
};
|
|
47
47
|
|
|
48
|
-
/**
|
|
49
|
-
*
|
|
50
|
-
*
|
|
51
|
-
*
|
|
52
|
-
export const
|
|
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.
|
|
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 `
|
|
231
|
-
*
|
|
232
|
-
*
|
|
233
|
-
* frame's lease or `source`, as
|
|
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,
|
|
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,
|
|
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,
|
|
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:
|
|
6
|
-
* IOSurface
|
|
7
|
-
*
|
|
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
|
-
/**
|
|
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
|
-
/**
|
|
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.
|
|
47
|
-
* Android,
|
|
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
|
|
54
|
-
* frames, or every frame after a first failed
|
|
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;
|
|
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
|
-
/**
|
|
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
|
-
|
|
7
|
-
|
|
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
|
-
/**
|
|
18
|
-
* release. Call only after a checked flush(true) of its surface.
|
|
19
|
-
|
|
20
|
-
|
|
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
|
-
/**
|
|
26
|
-
* failure, or null when this device can export through encoder
|
|
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":"
|
|
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;
|
|
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;
|
|
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,
|
|
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;
|
|
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;
|
|
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
|
-
*
|
|
386
|
-
*
|
|
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
|
-
/**
|
|
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.
|