react-native-skia-webgpu-video 0.1.0-beta.3 → 0.1.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.
- package/README.md +48 -43
- 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/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/VideoCompositionDecoder.java +8 -11
- package/android/src/main/java/com/azzapp/rnskv/VideoEncoder.java +68 -28
- package/docs/FRAME_PIXEL_FORMAT.md +17 -2
- package/docs/MIGRATION.md +1 -1
- package/docs/UPSTREAM_NOTES.md +42 -2
- package/ios/RNSVColorSpace.h +8 -3
- package/lib/module/canvas.js +3 -5
- package/lib/module/canvas.js.map +1 -1
- package/lib/module/exportFrames.js +8 -10
- 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 +78 -35
- package/lib/module/exportVideoComposition.js.map +1 -1
- package/lib/module/frameInterop.js +323 -82
- package/lib/module/frameInterop.js.map +1 -1
- package/lib/module/gpu.js +1 -3
- 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/memory.js +7 -0
- package/lib/module/memory.js.map +1 -1
- package/lib/module/previewLifecycle.js +2 -1
- package/lib/module/previewLifecycle.js.map +1 -1
- package/lib/module/videoCompositionPlayer.js +65 -14
- package/lib/module/videoCompositionPlayer.js.map +1 -1
- package/lib/module/videoFrameImage.js +1 -1
- package/lib/module/yuvBlit.js +31 -24
- 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 +3 -2
- 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 +16 -5
- 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/memory.d.ts +2 -0
- package/lib/typescript/src/memory.d.ts.map +1 -1
- package/lib/typescript/src/previewLifecycle.d.ts +2 -0
- package/lib/typescript/src/previewLifecycle.d.ts.map +1 -1
- package/lib/typescript/src/types.d.ts +18 -12
- package/lib/typescript/src/types.d.ts.map +1 -1
- package/lib/typescript/src/videoCompositionPlayer.d.ts +4 -5
- package/lib/typescript/src/videoCompositionPlayer.d.ts.map +1 -1
- package/lib/typescript/src/videoFrameImage.d.ts +1 -1
- package/lib/typescript/src/yuvBlit.d.ts +16 -14
- package/lib/typescript/src/yuvBlit.d.ts.map +1 -1
- package/package.json +6 -6
- package/patches/react-native-skia+3.10.0.patch +150 -0
- package/scripts/skia-canvas-patch.json +22 -258
- package/src/canvas.ts +3 -7
- package/src/exportFrames.ts +10 -11
- package/src/exportTarget.ts +217 -56
- package/src/exportVideoComposition.ts +130 -85
- package/src/frameInterop.ts +389 -96
- package/src/gpu.ts +1 -3
- package/src/gpuDevice.ts +26 -1
- package/src/memory.ts +6 -0
- package/src/previewLifecycle.ts +4 -1
- package/src/types.ts +18 -12
- package/src/videoCompositionPlayer.ts +76 -23
- package/src/videoFrameImage.ts +1 -1
- package/src/yuvBlit.ts +46 -31
- 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
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);
|
|
@@ -245,7 +252,7 @@ export const blitYuvFrame = (device, imports, producer, source, rotation, origin
|
|
|
245
252
|
let index = entries.findIndex(entry => entry.handle === source.handle && entry.rotation === rotation);
|
|
246
253
|
if (index < 0) {
|
|
247
254
|
// The least recently drawn buffer goes first. Its last frame completed:
|
|
248
|
-
//
|
|
255
|
+
// fewer imports than this are ever on the GPU (see frameInterop.ts).
|
|
249
256
|
if (entries.length >= maxImportsPerProducer) {
|
|
250
257
|
releaseYuvImport(entries[0]);
|
|
251
258
|
entries.shift();
|
|
@@ -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;
|
|
@@ -291,8 +298,8 @@ export const blitYuvFrame = (device, imports, producer, source, rotation, origin
|
|
|
291
298
|
pass.end();
|
|
292
299
|
device.queue.submit([encoder.finish()]);
|
|
293
300
|
} finally {
|
|
294
|
-
// The caller
|
|
295
|
-
//
|
|
301
|
+
// The caller hands the decoder buffer back once the GPU is done with the
|
|
302
|
+
// draw; the release fence is not needed for that.
|
|
296
303
|
entry.wrapper.endAccess()?.fence.destroy();
|
|
297
304
|
}
|
|
298
305
|
};
|
|
@@ -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","blitNv12Frame","wholeFrame","external","importExternalTexture"],"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"}
|
|
@@ -50,8 +50,9 @@ export declare const importExportFrame: (frame: VideoFrame, imports?: ExportFram
|
|
|
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;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;
|
|
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;AA6CF;;kFAEkF;AAClF,eAAO,MAAM,sBAAsB,GAAI,CAAC,GAAG,SAAS,EAClD,MAAM,oBAAoB,CAAC,CAAC,CAAC,KAC5B,OAAO,CAAC,IAAI,CAA+D,CAAC"}
|
|
@@ -1,15 +1,26 @@
|
|
|
1
1
|
import type { SkImage } from "react-native-skia";
|
|
2
2
|
import type { VideoFrame } from "./types.js";
|
|
3
|
+
/** The checked GPU waits this runtime's imports have made so far, and the
|
|
4
|
+
* completions the GPU reported for them. Each one covers all the GPU work
|
|
5
|
+
* submitted before it, on the shared context. */
|
|
6
|
+
export declare const videoFrameImportWaits: () => number;
|
|
3
7
|
/** Clear a runtime's imported images after ending all its producers.
|
|
4
8
|
* Do not clear a paused producer's current frame: its native source has
|
|
5
|
-
* already been released, and
|
|
9
|
+
* already been released, and its image's texture is its remaining pixels. */
|
|
6
10
|
export declare const clearVideoFrameImages: (releaseStagingSurface?: boolean) => void;
|
|
7
11
|
/** Release an item which has left a composition or a producer being closed. */
|
|
8
12
|
export declare const releaseVideoFrameImage: (frame: VideoFrame) => void;
|
|
9
|
-
/** Returns
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
+
/** Returns owned pixels. WebGPU uploads Android RGBA pixels or blits native
|
|
14
|
+
* buffers into a texture of the frame's producer, which the image wraps: no
|
|
15
|
+
* copy into a snapshot, and no entry in the raster ImageProvider's LRU.
|
|
16
|
+
* Sources go back once the GPU is done with them.
|
|
17
|
+
*
|
|
18
|
+
* The image is the producer's until its next frame is imported, which
|
|
19
|
+
* disposes it. A producer has two textures and writes its frames into them in
|
|
20
|
+
* turn, so the texture of an image is only written again by the import after
|
|
21
|
+
* the one that disposed it; with a memory budget too short for a second
|
|
22
|
+
* texture, the next frame is written over it, in queue order after the draws
|
|
23
|
+
* already submitted. */
|
|
13
24
|
export declare const imageFromVideoFrame: (frame: VideoFrame) => SkImage | null;
|
|
14
25
|
/** Stage all issued frames, including items a callback currently hides.
|
|
15
26
|
* This releases decoder leases promptly instead of waiting for JS GC. */
|
|
@@ -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;AAoY1C;;iDAEiD;AACjD,eAAO,MAAM,qBAAqB,QAAO,MAGxC,CAAC;AAEF;;6EAE6E;AAC7E,eAAO,MAAM,qBAAqB,GAAI,+BAA6B,KAAG,IA+BrE,CAAC;AAEF,+EAA+E;AAC/E,eAAO,MAAM,sBAAsB,GAAI,OAAO,UAAU,KAAG,IAwB1D,CAAC;AAEF;;;;;;;;;;wBAUwB;AACxB,eAAO,MAAM,mBAAmB,GAAI,OAAO,UAAU,KAAG,OAAO,GAAG,IA+ZjE,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"}
|
|
@@ -20,6 +20,8 @@ export declare const getVideoResourceStats: () => {
|
|
|
20
20
|
backend: Record<string, string | number | boolean> | null;
|
|
21
21
|
};
|
|
22
22
|
export declare const frameByteSize: (width: number, height: number) => number;
|
|
23
|
+
/** The budget's counters, from any runtime; null without them. */
|
|
24
|
+
export declare const videoMemoryBudget: () => VideoMemoryStats | null;
|
|
23
25
|
export declare const reserveVideoMemory: (bytes: number, label: string) => number;
|
|
24
26
|
export declare const releaseVideoMemory: (reservation: number) => void;
|
|
25
27
|
//# sourceMappingURL=memory.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../../../src/memory.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,gBAAgB,GAAG;IAC7B,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF;sEACsE;AACtE,eAAO,MAAM,oBAAoB,GAAI,cAAc;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,SAKtE,CAAC;AAEF,eAAO,MAAM,qBAAqB;;;;;;;;;CAIhC,CAAC;AAEH,eAAO,MAAM,aAAa,GAAI,OAAO,MAAM,EAAE,QAAQ,MAAM,KAAG,MAa7D,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAAI,OAAO,MAAM,EAAE,OAAO,MAAM,KAAG,MAGjE,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAAI,aAAa,MAAM,KAAG,IAGxD,CAAC"}
|
|
1
|
+
{"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../../../src/memory.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,gBAAgB,GAAG;IAC7B,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF;sEACsE;AACtE,eAAO,MAAM,oBAAoB,GAAI,cAAc;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,SAKtE,CAAC;AAEF,eAAO,MAAM,qBAAqB;;;;;;;;;CAIhC,CAAC;AAEH,eAAO,MAAM,aAAa,GAAI,OAAO,MAAM,EAAE,QAAQ,MAAM,KAAG,MAa7D,CAAC;AAEF,kEAAkE;AAClE,eAAO,MAAM,iBAAiB,QAAO,gBAAgB,GAAG,IAGvD,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAAI,OAAO,MAAM,EAAE,OAAO,MAAM,KAAG,MAGjE,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAAI,aAAa,MAAM,KAAG,IAGxD,CAAC"}
|
|
@@ -2,6 +2,8 @@ import type { SkCanvas, SkImage, SkSurface } from "react-native-skia";
|
|
|
2
2
|
import type { VideoFrame } from "./types.js";
|
|
3
3
|
type PreviewResources = {
|
|
4
4
|
surface?: SkSurface | null;
|
|
5
|
+
/** The preview's second buffer (see useVideoCompositionPlayer). */
|
|
6
|
+
spareSurface?: SkSurface | null;
|
|
5
7
|
canvas?: SkCanvas | null;
|
|
6
8
|
images?: Array<SkImage | null>;
|
|
7
9
|
frames?: VideoFrame[];
|
|
@@ -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,mEAAmE;IACnE,YAAY,CAAC,EAAE,SAAS,GAAG,IAAI,CAAC;IAChC,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;CAwC7D,CAAC"}
|
|
@@ -149,15 +149,16 @@ export type VideoPlayer = {
|
|
|
149
149
|
* (12.4 MB rather than 33.2 MB in 4K), so the decoder holds more frames
|
|
150
150
|
* ahead for the same memory. On Android only 8-bit SDR tracks decoded at
|
|
151
151
|
* their own size; other tracks stay `rgba`.
|
|
152
|
-
* - `rgba
|
|
153
|
-
* Android: by an OpenGL pass)
|
|
152
|
+
* - `rgba` (deprecated): frames converted to RGB as they are decoded (iOS: by
|
|
153
|
+
* VideoToolbox, Android: by an OpenGL pass). It no longer has an advantage:
|
|
154
|
+
* exports run as fast in `yuv`, which renders the same colors, and a 4K60
|
|
155
|
+
* preview keeps fewer frames on screen in `rgba`, whose frames take 4 bytes
|
|
156
|
+
* a pixel. It still works; use `auto`.
|
|
154
157
|
* - `auto`: `yuv`, on both platforms.
|
|
155
158
|
*
|
|
156
|
-
*
|
|
157
|
-
*
|
|
158
|
-
*
|
|
159
|
-
* transfer function (Display P3, sRGB) to Rec.709; `yuv` takes its samples as
|
|
160
|
-
* Rec.709, as Android does in both formats.
|
|
159
|
+
* Both convert with the frame's YCbCr matrix and range. On iOS, both convert
|
|
160
|
+
* HDR (HLG, PQ), BT.2020, Display P3 and sRGB files to Rec.709 through
|
|
161
|
+
* AVFoundation. Android takes SDR samples as Rec.709 in both formats.
|
|
161
162
|
*/
|
|
162
163
|
export type VideoFramePixelFormat = "auto" | "yuv" | "rgba";
|
|
163
164
|
/**
|
|
@@ -408,14 +409,19 @@ export type VideoEncoder = {
|
|
|
408
409
|
*/
|
|
409
410
|
encodeFrame(texture: unknown, time: number): void;
|
|
410
411
|
/**
|
|
411
|
-
*
|
|
412
|
-
*
|
|
413
|
-
* frame (on Android with the sync-fds ending its GPU access, in `fences`),
|
|
414
|
-
* or release it. One at a time.
|
|
412
|
+
* iOS: lends the next pool buffer (a CVPixelBuffer) to draw into on the
|
|
413
|
+
* GPU. Pass it back as a native-buffer frame, or release it. One at a time.
|
|
415
414
|
*/
|
|
416
415
|
acquireFrameBuffer?(): bigint;
|
|
417
|
-
/**
|
|
416
|
+
/** iOS: returns a lent buffer that will not be encoded. */
|
|
418
417
|
releaseFrameBuffer?(): void;
|
|
418
|
+
/**
|
|
419
|
+
* Android: the codec's input Surface, as an ANativeWindow pointer for a
|
|
420
|
+
* WebGPU canvas context to present to. Each frame is then encoded as
|
|
421
|
+
* `{ kind: "window", present }`: the encoder sets the frame's time on the
|
|
422
|
+
* window and calls `present`, which presents the context.
|
|
423
|
+
*/
|
|
424
|
+
acquireInputWindow?(): bigint;
|
|
419
425
|
finishWriting(): void;
|
|
420
426
|
/**
|
|
421
427
|
* Disposes of the video composition encoder.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -65,11 +65,10 @@ type UseVideoCompositionPlayerOptions<T = undefined> = {
|
|
|
65
65
|
/**
|
|
66
66
|
* Import a newly decoded frame in one vsync and draw it in the next, instead
|
|
67
67
|
* of both in the same one. On Android the import (YUV blit and its checked
|
|
68
|
-
* GPU wait) and the draw
|
|
69
|
-
*
|
|
70
|
-
*
|
|
71
|
-
*
|
|
72
|
-
* as it is imported.
|
|
68
|
+
* GPU wait) and the draw cost about as much as each other, and together they
|
|
69
|
+
* overrun a 90–120 Hz frame budget on the UI thread. The option applies on
|
|
70
|
+
* iOS too. The picture then trails the clock by one vsync. The first frame
|
|
71
|
+
* of a session is still drawn as soon as it is imported.
|
|
73
72
|
* @default false
|
|
74
73
|
*/
|
|
75
74
|
splitImportAndDraw?: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"videoCompositionPlayer.d.ts","sourceRoot":"","sources":["../../../src/videoCompositionPlayer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAY,OAAO,EAAa,MAAM,mBAAmB,CAAC;AAEtE,OAAO,EAIL,KAAK,YAAY,EACjB,KAAK,WAAW,EACjB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,KAAK,EACV,WAAW,EAEX,gBAAgB,EAChB,+BAA+B,EAChC,MAAM,YAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"videoCompositionPlayer.d.ts","sourceRoot":"","sources":["../../../src/videoCompositionPlayer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAY,OAAO,EAAa,MAAM,mBAAmB,CAAC;AAEtE,OAAO,EAIL,KAAK,YAAY,EACjB,KAAK,WAAW,EACjB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,KAAK,EACV,WAAW,EAEX,gBAAgB,EAChB,+BAA+B,EAChC,MAAM,YAAS,CAAC;AAiBjB,KAAK,gCAAgC,CAAC,CAAC,GAAG,SAAS,IAAI;IACrD;;;OAGG;IACH,WAAW,EAAE,gBAAgB,GAAG,IAAI,CAAC;IACrC;;OAEG;IACH,SAAS,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC;IAC1B;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC,CAAC;IAC1B;;;;OAIG;IACH,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,IAAI,CAAC;IACtC;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;;;;;;;;;OAWG;IACH,cAAc,CAAC,EAAE,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC;IAClD;;;;;;;;;OASG;IACH,YAAY,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,KAAK,OAAO,CAAC;IACtE;;;;;;;;OAQG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IAC3B;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;IACxB;;;;OAIG;IACH,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,IAAI,KAAK,IAAI,CAAC;CACnD,CAAC;AAEF,KAAK,gCAAgC,GAAG,IAAI,CAC1C,+BAA+B,EAC/B,aAAa,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,WAAW,CAC1D,CAAC;AAEF,KAAK,mCAAmC,GAAG;IACzC;;OAEG;IACH,YAAY,EAAE,YAAY,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;IAC3C;;OAEG;IACH,MAAM,EAAE,gCAAgC,GAAG,IAAI,CAAC;CACjD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,mBAAmB,GAAI,CAAC,GAAG,SAAS,EAAE,wLAehD,gCAAgC,CAAC,CAAC,CAAC,KAAG,mCA8dxC,CAAC"}
|
|
@@ -36,7 +36,7 @@ export type VideoFrameFit = "fill" | "cover" | "contain";
|
|
|
36
36
|
*
|
|
37
37
|
* @param frame the frame, drawn in the tick it was handed out in
|
|
38
38
|
* @param output an image returned for a previous frame, recycled rather than
|
|
39
|
-
* allocating a new wrapper. Accepted for compatibility;
|
|
39
|
+
* allocating a new wrapper. Accepted for compatibility; the image wraps a texture the library owns
|
|
40
40
|
* @returns the image and its picture, or null when the frame has no texture
|
|
41
41
|
*/
|
|
42
42
|
export declare const makeVideoFrameImage: (frame: VideoFrame, _output?: SkImage | null) => VideoFrameImage | null;
|
|
@@ -13,11 +13,11 @@ export type YuvImport = {
|
|
|
13
13
|
/** uv scale and offset last written to `uniforms`. */
|
|
14
14
|
mapping: number[];
|
|
15
15
|
};
|
|
16
|
-
/**
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
export declare const
|
|
16
|
+
/** A decoder buffer's crop rectangle once the buffer is turned clockwise for
|
|
17
|
+
* display: the blit samples that upright region, and draws it at the size of
|
|
18
|
+
* its target, which a capped or explicit frame size makes smaller. Throws
|
|
19
|
+
* unless the rectangle lies in the buffer. */
|
|
20
|
+
export declare const yuvFrameRegion: (region: {
|
|
21
21
|
x: number;
|
|
22
22
|
y: number;
|
|
23
23
|
width: number;
|
|
@@ -25,12 +25,11 @@ export declare const yuvFrameOrigin: (region: {
|
|
|
25
25
|
}, rotation: number, buffer: {
|
|
26
26
|
width: number;
|
|
27
27
|
height: number;
|
|
28
|
-
}, frame: {
|
|
29
|
-
width: number;
|
|
30
|
-
height: number;
|
|
31
28
|
}) => {
|
|
32
29
|
x: number;
|
|
33
30
|
y: number;
|
|
31
|
+
width: number;
|
|
32
|
+
height: number;
|
|
34
33
|
};
|
|
35
34
|
/** Call only once the GPU work sampling the buffer has completed. */
|
|
36
35
|
export declare const releaseYuvImport: (entry: YuvImport) => void;
|
|
@@ -38,15 +37,18 @@ export declare const releaseYuvImport: (entry: YuvImport) => void;
|
|
|
38
37
|
* work sampling them has completed (a checked flush). */
|
|
39
38
|
export declare const releaseYuvImports: (imports: Map<number, YuvImport[]>, producer?: number) => void;
|
|
40
39
|
/**
|
|
41
|
-
* Draws the upright `
|
|
42
|
-
*
|
|
43
|
-
*
|
|
44
|
-
* frame's lease or `source`, as
|
|
40
|
+
* Draws the upright `region` of a decoder buffer (see yuvFrameRegion) into
|
|
41
|
+
* the whole of `target`, converting YUV to RGB and scaling it to the target's
|
|
42
|
+
* size; the buffer is imported on its first frame. Submits the draw: the
|
|
43
|
+
* caller waits for it before releasing the frame's lease or `source`, as
|
|
44
|
+
* after copyExternalImageToTexture.
|
|
45
45
|
*/
|
|
46
|
-
export declare const blitYuvFrame: (device: GPUDevice, imports: Map<number, YuvImport[]>, producer: number, source: NativeVideoFrame, rotation: number,
|
|
46
|
+
export declare const blitYuvFrame: (device: GPUDevice, imports: Map<number, YuvImport[]>, producer: number, source: NativeVideoFrame, rotation: number, region: {
|
|
47
47
|
x: number;
|
|
48
48
|
y: number;
|
|
49
|
-
|
|
49
|
+
width: number;
|
|
50
|
+
height: number;
|
|
51
|
+
}, target: GPUTexture) => void;
|
|
50
52
|
/**
|
|
51
53
|
* iOS: draws a whole NV12 decoder buffer into `target`, converting YUV to RGB
|
|
52
54
|
* with the buffer's YCbCr matrix and range, in its decoded orientation (the
|