@browser-mc/webcodecs-color 0.0.1 → 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 +34 -11
- package/dist/formats.d.ts +18 -0
- package/dist/formats.d.ts.map +1 -0
- package/dist/formats.js +83 -0
- package/dist/formats.js.map +1 -0
- package/dist/index.d.ts +13 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +110 -65
- package/dist/index.js.map +1 -1
- package/package.json +10 -5
package/README.md
CHANGED
|
@@ -22,22 +22,26 @@ console.log(classifyFrameColor(frame));
|
|
|
22
22
|
frame.close();
|
|
23
23
|
```
|
|
24
24
|
|
|
25
|
-
##
|
|
25
|
+
## Resize Planar VideoFrame
|
|
26
26
|
|
|
27
27
|
```ts
|
|
28
|
-
import {
|
|
28
|
+
import { resizeFramePlanar } from '@browser-mc/webcodecs-color';
|
|
29
29
|
|
|
30
|
-
const
|
|
30
|
+
const resized4208 = await resizeFramePlanar(frame, {
|
|
31
31
|
width: 1024,
|
|
32
32
|
height: 682,
|
|
33
|
+
chromaSubsampling: '420',
|
|
34
|
+
bitDepth: 8,
|
|
33
35
|
algorithm: 'bilinear',
|
|
34
36
|
});
|
|
35
37
|
|
|
36
|
-
console.log(
|
|
37
|
-
|
|
38
|
+
console.log(resized4208.inspection);
|
|
39
|
+
resized4208.frame.close();
|
|
38
40
|
```
|
|
39
41
|
|
|
40
|
-
`
|
|
42
|
+
`resizeFramePlanar` uses `VideoFrame.copyTo()` and creates a new `VideoFrame` from processed planar data. It copies only the source `visibleRect`, so coded padding rows/columns are not fed into processing. For supported planar YUV frames, it does resize, chroma downsampling, and bit-depth conversion in one pass over the copied data. It does not use `HTMLCanvasElement`, `OffscreenCanvas`, WebGL, or WebGPU.
|
|
43
|
+
|
|
44
|
+
Packed formats such as `RGBA` and `BGRA` are intentionally out of scope for this helper; use the Canvas helpers for those paths.
|
|
41
45
|
|
|
42
46
|
### Why Not WebGPU?
|
|
43
47
|
|
|
@@ -48,7 +52,11 @@ WebGPU may become useful if the pipeline can keep frames on the GPU for several
|
|
|
48
52
|
## Comparison Helpers
|
|
49
53
|
|
|
50
54
|
```ts
|
|
51
|
-
import {
|
|
55
|
+
import {
|
|
56
|
+
convertFrameToCanvasSdr,
|
|
57
|
+
copyFrameToRgba,
|
|
58
|
+
resizeFrameWithCanvas,
|
|
59
|
+
} from '@browser-mc/webcodecs-color';
|
|
52
60
|
|
|
53
61
|
const rgba = await copyFrameToRgba(frame, { colorSpace: 'display-p3' });
|
|
54
62
|
const canvasResized = resizeFrameWithCanvas(frame, { width: 1024, height: 682 });
|
|
@@ -57,10 +65,25 @@ const canvasSdr = convertFrameToCanvasSdr(frame);
|
|
|
57
65
|
|
|
58
66
|
`convertFrameToCanvasSdr` draws through an sRGB `OffscreenCanvas` path and returns an RGBA `VideoFrame` marked as BT.709 SDR. It is a practical browser conversion helper, not a dedicated HDR tone-mapping engine.
|
|
59
67
|
|
|
60
|
-
## Supported
|
|
68
|
+
## Supported Planar Formats
|
|
69
|
+
|
|
70
|
+
- 8-bit: `I420`, `I422`, `I444`
|
|
71
|
+
- 10-bit: `I420P10`, `I422P10`, `I444P10`
|
|
72
|
+
- 12-bit: `I420P12`, `I422P12`, `I444P12`
|
|
73
|
+
- Alpha variants: `I420A`, `I420AP10`, `I420AP12`, `I422A`, `I422AP10`, `I422AP12`, `I444A`, `I444AP10`, `I444AP12`
|
|
74
|
+
|
|
75
|
+
Alpha-plane processing preserves alpha inside the returned `VideoFrame`. AVIF still stores alpha as an auxiliary image item, so callers that encode to AVIF should keep using the AVIF encoder's alpha handling.
|
|
76
|
+
|
|
77
|
+
## Format Helpers
|
|
78
|
+
|
|
79
|
+
```ts
|
|
80
|
+
import {
|
|
81
|
+
describePlanarFormat,
|
|
82
|
+
frameFormatCanHaveAlpha,
|
|
83
|
+
} from '@browser-mc/webcodecs-color';
|
|
84
|
+
```
|
|
61
85
|
|
|
62
|
-
- `
|
|
63
|
-
- Chromium 10-bit formats observed via WebCodecs: `I420P10`, `I422P10`, `I444P10`
|
|
86
|
+
`describePlanarFormat(format)` returns planar bit depth, chroma layout, alpha presence, bytes per sample, and plane layout metadata for the supported planar YUV/YUVA formats. `frameFormatCanHaveAlpha(frame)` returns `true` for alpha-capable `VideoFrame` formats such as `RGBA`, `BGRA`, and planar `*A` variants. Unknown `VideoFrame.format` values are treated conservatively as alpha-capable.
|
|
64
87
|
|
|
65
88
|
## Commands
|
|
66
89
|
|
|
@@ -70,4 +93,4 @@ pnpm --filter @browser-mc/webcodecs-color typecheck
|
|
|
70
93
|
pnpm --filter @browser-mc/webcodecs-color test:electron
|
|
71
94
|
```
|
|
72
95
|
|
|
73
|
-
`test:electron` uses `hdrrec2020.avif`. Current result keeps
|
|
96
|
+
`test:electron` uses `hdrrec2020.avif`. Current result keeps BT.2020 metadata through raw resize and planar conversion.
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export type PlanarChromaSubsampling = '420' | '422' | '444';
|
|
2
|
+
export type PlanarBitDepth = 8 | 10 | 12;
|
|
3
|
+
export type PlanarFormatDescriptor = {
|
|
4
|
+
bytesPerSample: 1 | 2;
|
|
5
|
+
bitDepth: PlanarBitDepth;
|
|
6
|
+
hasAlpha: boolean;
|
|
7
|
+
planes: Array<{
|
|
8
|
+
subsampleX: number;
|
|
9
|
+
subsampleY: number;
|
|
10
|
+
samplesPerPixel?: 1 | 2;
|
|
11
|
+
}>;
|
|
12
|
+
};
|
|
13
|
+
export declare function frameFormatCanHaveAlpha(frame: VideoFrame): boolean;
|
|
14
|
+
export declare function describePlanarFormat(format: string): PlanarFormatDescriptor | null;
|
|
15
|
+
export declare function chromaSubsamplingFor(descriptor: PlanarFormatDescriptor): PlanarChromaSubsampling;
|
|
16
|
+
export declare function bitDepthFor(descriptor: PlanarFormatDescriptor): PlanarBitDepth;
|
|
17
|
+
export declare function planarFormatFor(chromaSubsampling: PlanarChromaSubsampling, bitDepth: PlanarBitDepth, hasAlpha: boolean): string;
|
|
18
|
+
//# sourceMappingURL=formats.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"formats.d.ts","sourceRoot":"","sources":["../src/formats.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,uBAAuB,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC;AAE5D,MAAM,MAAM,cAAc,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC;AAEzC,MAAM,MAAM,sBAAsB,GAAG;IACnC,cAAc,EAAE,CAAC,GAAG,CAAC,CAAC;IACtB,QAAQ,EAAE,cAAc,CAAC;IACzB,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,KAAK,CAAC;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,eAAe,CAAC,EAAE,CAAC,GAAG,CAAC,CAAA;KAAE,CAAC,CAAC;CACpF,CAAC;AAEF,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,UAAU,WAMxD;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,sBAAsB,GAAG,IAAI,CAyClF;AAED,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,sBAAsB,GAAG,uBAAuB,CAMhG;AAED,wBAAgB,WAAW,CAAC,UAAU,EAAE,sBAAsB,GAAG,cAAc,CAE9E;AAED,wBAAgB,eAAe,CAAC,iBAAiB,EAAE,uBAAuB,EAAE,QAAQ,EAAE,cAAc,EAAE,QAAQ,EAAE,OAAO,UAKtH"}
|
package/dist/formats.js
ADDED
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
export function frameFormatCanHaveAlpha(frame) {
|
|
2
|
+
const format = frame.format;
|
|
3
|
+
if (format === null)
|
|
4
|
+
return true;
|
|
5
|
+
return format === 'RGBA'
|
|
6
|
+
|| format === 'BGRA'
|
|
7
|
+
|| describePlanarFormat(format)?.hasAlpha === true;
|
|
8
|
+
}
|
|
9
|
+
export function describePlanarFormat(format) {
|
|
10
|
+
switch (format) {
|
|
11
|
+
case 'I420':
|
|
12
|
+
return planarDescriptor(8, false, 2, 2);
|
|
13
|
+
case 'I420P10':
|
|
14
|
+
return planarDescriptor(10, false, 2, 2);
|
|
15
|
+
case 'I420P12':
|
|
16
|
+
return planarDescriptor(12, false, 2, 2);
|
|
17
|
+
case 'I420A':
|
|
18
|
+
return planarDescriptor(8, true, 2, 2);
|
|
19
|
+
case 'I420AP10':
|
|
20
|
+
return planarDescriptor(10, true, 2, 2);
|
|
21
|
+
case 'I420AP12':
|
|
22
|
+
return planarDescriptor(12, true, 2, 2);
|
|
23
|
+
case 'I422':
|
|
24
|
+
return planarDescriptor(8, false, 2, 1);
|
|
25
|
+
case 'I422P10':
|
|
26
|
+
return planarDescriptor(10, false, 2, 1);
|
|
27
|
+
case 'I422P12':
|
|
28
|
+
return planarDescriptor(12, false, 2, 1);
|
|
29
|
+
case 'I422A':
|
|
30
|
+
return planarDescriptor(8, true, 2, 1);
|
|
31
|
+
case 'I422AP10':
|
|
32
|
+
return planarDescriptor(10, true, 2, 1);
|
|
33
|
+
case 'I422AP12':
|
|
34
|
+
return planarDescriptor(12, true, 2, 1);
|
|
35
|
+
case 'I444':
|
|
36
|
+
return planarDescriptor(8, false, 1, 1);
|
|
37
|
+
case 'I444P10':
|
|
38
|
+
return planarDescriptor(10, false, 1, 1);
|
|
39
|
+
case 'I444P12':
|
|
40
|
+
return planarDescriptor(12, false, 1, 1);
|
|
41
|
+
case 'I444A':
|
|
42
|
+
return planarDescriptor(8, true, 1, 1);
|
|
43
|
+
case 'I444AP10':
|
|
44
|
+
return planarDescriptor(10, true, 1, 1);
|
|
45
|
+
case 'I444AP12':
|
|
46
|
+
return planarDescriptor(12, true, 1, 1);
|
|
47
|
+
default:
|
|
48
|
+
return null;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
export function chromaSubsamplingFor(descriptor) {
|
|
52
|
+
const chroma = descriptor.planes[1];
|
|
53
|
+
if (chroma.subsampleX === 2 && chroma.subsampleY === 2)
|
|
54
|
+
return '420';
|
|
55
|
+
if (chroma.subsampleX === 2 && chroma.subsampleY === 1)
|
|
56
|
+
return '422';
|
|
57
|
+
if (chroma.subsampleX === 1 && chroma.subsampleY === 1)
|
|
58
|
+
return '444';
|
|
59
|
+
throw new Error(`Unsupported planar chroma layout ${chroma.subsampleX}:${chroma.subsampleY}`);
|
|
60
|
+
}
|
|
61
|
+
export function bitDepthFor(descriptor) {
|
|
62
|
+
return descriptor.bitDepth;
|
|
63
|
+
}
|
|
64
|
+
export function planarFormatFor(chromaSubsampling, bitDepth, hasAlpha) {
|
|
65
|
+
const base = chromaSubsampling === '420' ? 'I420' : chromaSubsampling === '422' ? 'I422' : 'I444';
|
|
66
|
+
const alpha = hasAlpha ? 'A' : '';
|
|
67
|
+
const suffix = bitDepth === 8 ? '' : `P${bitDepth}`;
|
|
68
|
+
return `${base}${alpha}${suffix}`;
|
|
69
|
+
}
|
|
70
|
+
function planarDescriptor(bitDepth, hasAlpha, chromaSubsampleX, chromaSubsampleY) {
|
|
71
|
+
return {
|
|
72
|
+
bytesPerSample: bitDepth === 8 ? 1 : 2,
|
|
73
|
+
bitDepth,
|
|
74
|
+
hasAlpha,
|
|
75
|
+
planes: [
|
|
76
|
+
{ subsampleX: 1, subsampleY: 1 },
|
|
77
|
+
{ subsampleX: chromaSubsampleX, subsampleY: chromaSubsampleY },
|
|
78
|
+
{ subsampleX: chromaSubsampleX, subsampleY: chromaSubsampleY },
|
|
79
|
+
...(hasAlpha ? [{ subsampleX: 1, subsampleY: 1 }] : []),
|
|
80
|
+
],
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
//# sourceMappingURL=formats.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"formats.js","sourceRoot":"","sources":["../src/formats.ts"],"names":[],"mappings":"AAWA,MAAM,UAAU,uBAAuB,CAAC,KAAiB;IACvD,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;IAC5B,IAAI,MAAM,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IACjC,OAAO,MAAM,KAAK,MAAM;WACnB,MAAM,KAAK,MAAM;WACjB,oBAAoB,CAAC,MAAM,CAAC,EAAE,QAAQ,KAAK,IAAI,CAAC;AACvD,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,MAAc;IACjD,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,MAAM;YACT,OAAO,gBAAgB,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAC1C,KAAK,SAAS;YACZ,OAAO,gBAAgB,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAC3C,KAAK,SAAS;YACZ,OAAO,gBAAgB,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAC3C,KAAK,OAAO;YACV,OAAO,gBAAgB,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QACzC,KAAK,UAAU;YACb,OAAO,gBAAgB,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAC1C,KAAK,UAAU;YACb,OAAO,gBAAgB,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAC1C,KAAK,MAAM;YACT,OAAO,gBAAgB,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAC1C,KAAK,SAAS;YACZ,OAAO,gBAAgB,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAC3C,KAAK,SAAS;YACZ,OAAO,gBAAgB,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAC3C,KAAK,OAAO;YACV,OAAO,gBAAgB,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QACzC,KAAK,UAAU;YACb,OAAO,gBAAgB,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAC1C,KAAK,UAAU;YACb,OAAO,gBAAgB,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAC1C,KAAK,MAAM;YACT,OAAO,gBAAgB,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAC1C,KAAK,SAAS;YACZ,OAAO,gBAAgB,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAC3C,KAAK,SAAS;YACZ,OAAO,gBAAgB,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAC3C,KAAK,OAAO;YACV,OAAO,gBAAgB,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QACzC,KAAK,UAAU;YACb,OAAO,gBAAgB,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAC1C,KAAK,UAAU;YACb,OAAO,gBAAgB,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAC1C;YACE,OAAO,IAAI,CAAC;IAChB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,UAAkC;IACrE,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACpC,IAAI,MAAM,CAAC,UAAU,KAAK,CAAC,IAAI,MAAM,CAAC,UAAU,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACrE,IAAI,MAAM,CAAC,UAAU,KAAK,CAAC,IAAI,MAAM,CAAC,UAAU,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACrE,IAAI,MAAM,CAAC,UAAU,KAAK,CAAC,IAAI,MAAM,CAAC,UAAU,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACrE,MAAM,IAAI,KAAK,CAAC,oCAAoC,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;AAChG,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,UAAkC;IAC5D,OAAO,UAAU,CAAC,QAAQ,CAAC;AAC7B,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,iBAA0C,EAAE,QAAwB,EAAE,QAAiB;IACrH,MAAM,IAAI,GAAG,iBAAiB,KAAK,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,iBAAiB,KAAK,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;IAClG,MAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IAClC,MAAM,MAAM,GAAG,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,QAAQ,EAAE,CAAC;IACpD,OAAO,GAAG,IAAI,GAAG,KAAK,GAAG,MAAM,EAAE,CAAC;AACpC,CAAC;AAED,SAAS,gBAAgB,CACvB,QAAwB,EACxB,QAAiB,EACjB,gBAAwB,EACxB,gBAAwB;IAExB,OAAO;QACL,cAAc,EAAE,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACtC,QAAQ;QACR,QAAQ;QACR,MAAM,EAAE;YACN,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE;YAChC,EAAE,UAAU,EAAE,gBAAgB,EAAE,UAAU,EAAE,gBAAgB,EAAE;YAC9D,EAAE,UAAU,EAAE,gBAAgB,EAAE,UAAU,EAAE,gBAAgB,EAAE;YAC9D,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;SACxD;KACF,CAAC;AACJ,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { type PlanarBitDepth, type PlanarChromaSubsampling } from './formats.js';
|
|
2
|
+
export * from './formats.js';
|
|
1
3
|
export type FrameColorInspection = {
|
|
2
4
|
format: VideoPixelFormat | null;
|
|
3
5
|
codedWidth: number;
|
|
@@ -51,18 +53,24 @@ export type CanvasSdrResult = {
|
|
|
51
53
|
inspection: FrameColorInspection;
|
|
52
54
|
colorSpace: PredefinedColorSpace;
|
|
53
55
|
};
|
|
54
|
-
export type
|
|
56
|
+
export type PlanarResizeAlgorithm = 'nearest' | 'bilinear';
|
|
57
|
+
export type ResizeFramePlanarOptions = {
|
|
55
58
|
width: number;
|
|
56
59
|
height: number;
|
|
57
|
-
|
|
60
|
+
chromaSubsampling?: PlanarChromaSubsampling;
|
|
61
|
+
bitDepth?: PlanarBitDepth;
|
|
62
|
+
algorithm?: PlanarResizeAlgorithm;
|
|
58
63
|
};
|
|
59
|
-
export type
|
|
64
|
+
export type ResizeFramePlanarResult = {
|
|
60
65
|
frame: VideoFrame;
|
|
61
66
|
inspection: FrameColorInspection;
|
|
67
|
+
sourceFormat: string;
|
|
62
68
|
format: string;
|
|
63
69
|
layout: PlaneLayout[];
|
|
64
70
|
byteLength: number;
|
|
65
|
-
|
|
71
|
+
chromaSubsampling: PlanarChromaSubsampling;
|
|
72
|
+
bitDepth: PlanarBitDepth;
|
|
73
|
+
algorithm: PlanarResizeAlgorithm;
|
|
66
74
|
};
|
|
67
75
|
export declare function decodeImageToVideoFrame(data: Uint8Array, type: string, options?: {
|
|
68
76
|
colorSpaceConversion?: ColorSpaceConversion;
|
|
@@ -77,6 +85,6 @@ export declare function copyFrameToRgba(frame: VideoFrame, options?: {
|
|
|
77
85
|
}): Promise<RgbaCopyResult>;
|
|
78
86
|
export declare function resizeFrameWithCanvas(frame: VideoFrame, options: ResizeCanvasOptions): ResizeCanvasResult;
|
|
79
87
|
export declare function convertFrameToCanvasSdr(frame: VideoFrame): CanvasSdrResult;
|
|
80
|
-
export declare function
|
|
88
|
+
export declare function resizeFramePlanar(frame: VideoFrame, options: ResizeFramePlanarOptions): Promise<ResizeFramePlanarResult>;
|
|
81
89
|
export declare function sdrVideoColorSpaceInit(): VideoColorSpaceInit;
|
|
82
90
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import { copyArrayBuffer } from '@browser-mc/binary';
|
|
2
|
+
import { bitDepthFor, chromaSubsamplingFor, describePlanarFormat, planarFormatFor, } from './formats.js';
|
|
3
|
+
export * from './formats.js';
|
|
2
4
|
export async function decodeImageToVideoFrame(data, type, options = {}) {
|
|
3
5
|
if (typeof ImageDecoder === 'undefined')
|
|
4
6
|
throw new Error('ImageDecoder API is not available in this environment');
|
|
@@ -129,41 +131,54 @@ export function convertFrameToCanvasSdr(frame) {
|
|
|
129
131
|
colorSpace: 'srgb',
|
|
130
132
|
};
|
|
131
133
|
}
|
|
132
|
-
export async function
|
|
133
|
-
const
|
|
134
|
-
if (!
|
|
135
|
-
throw new Error('Cannot
|
|
136
|
-
const
|
|
137
|
-
if (!
|
|
138
|
-
throw new Error(`
|
|
134
|
+
export async function resizeFramePlanar(frame, options) {
|
|
135
|
+
const sourceFormat = frame.format;
|
|
136
|
+
if (!sourceFormat)
|
|
137
|
+
throw new Error('Cannot process a VideoFrame with unknown format');
|
|
138
|
+
const sourceDescriptor = describePlanarFormat(sourceFormat);
|
|
139
|
+
if (!sourceDescriptor)
|
|
140
|
+
throw new Error(`Planar processing does not support VideoFrame format ${sourceFormat}`);
|
|
141
|
+
if (sourceDescriptor.planes.length !== 3 && sourceDescriptor.planes.length !== 4) {
|
|
142
|
+
throw new Error(`Planar processing currently supports 3-plane YUV and 4-plane YUVA formats, got ${sourceFormat}`);
|
|
143
|
+
}
|
|
144
|
+
const chromaSubsampling = options.chromaSubsampling ?? chromaSubsamplingFor(sourceDescriptor);
|
|
145
|
+
const bitDepth = options.bitDepth ?? bitDepthFor(sourceDescriptor);
|
|
146
|
+
const destinationFormat = planarFormatFor(chromaSubsampling, bitDepth, sourceDescriptor.hasAlpha);
|
|
147
|
+
if (!destinationFormat)
|
|
148
|
+
throw new Error(`No WebCodecs planar format is known for ${chromaSubsampling}/${bitDepth}`);
|
|
149
|
+
const destinationDescriptor = describePlanarFormat(destinationFormat);
|
|
150
|
+
if (!destinationDescriptor)
|
|
151
|
+
throw new Error(`Planar conversion does not support destination format ${destinationFormat}`);
|
|
152
|
+
assertCanConvertChroma(sourceDescriptor, destinationDescriptor, sourceFormat, destinationFormat);
|
|
139
153
|
const sourceRect = visibleRectForCopy(frame);
|
|
140
154
|
const source = new Uint8Array(frame.allocationSize({ rect: sourceRect }));
|
|
141
155
|
const sourceLayout = await frame.copyTo(source, { rect: sourceRect });
|
|
142
|
-
const destinationLayout = makeDestinationLayout(
|
|
143
|
-
const destination = new Uint8Array(allocationFromLayout(destinationLayout,
|
|
156
|
+
const destinationLayout = makeDestinationLayout(destinationDescriptor, options.width, options.height);
|
|
157
|
+
const destination = new Uint8Array(allocationFromLayout(destinationLayout, destinationDescriptor, options.width, options.height));
|
|
144
158
|
const algorithm = options.algorithm ?? 'bilinear';
|
|
145
|
-
for (let planeIndex = 0; planeIndex <
|
|
146
|
-
const
|
|
147
|
-
const
|
|
148
|
-
|
|
149
|
-
const dstWidth = planeDimension(options.width, plane.subsampleX);
|
|
150
|
-
const dstHeight = planeDimension(options.height, plane.subsampleY);
|
|
151
|
-
resizePlane({
|
|
159
|
+
for (let planeIndex = 0; planeIndex < sourceDescriptor.planes.length; planeIndex++) {
|
|
160
|
+
const sourcePlane = sourceDescriptor.planes[planeIndex];
|
|
161
|
+
const destinationPlane = destinationDescriptor.planes[planeIndex];
|
|
162
|
+
convertPlane({
|
|
152
163
|
source,
|
|
153
164
|
destination,
|
|
154
165
|
sourceLayout: sourceLayout[planeIndex],
|
|
155
166
|
destinationLayout: destinationLayout[planeIndex],
|
|
156
|
-
sourceWidth:
|
|
157
|
-
sourceHeight:
|
|
158
|
-
destinationWidth:
|
|
159
|
-
destinationHeight:
|
|
160
|
-
|
|
161
|
-
|
|
167
|
+
sourceWidth: planeDimension(sourceRect.width, sourcePlane.subsampleX),
|
|
168
|
+
sourceHeight: planeDimension(sourceRect.height, sourcePlane.subsampleY),
|
|
169
|
+
destinationWidth: planeDimension(options.width, destinationPlane.subsampleX),
|
|
170
|
+
destinationHeight: planeDimension(options.height, destinationPlane.subsampleY),
|
|
171
|
+
sourceBytesPerSample: sourceDescriptor.bytesPerSample,
|
|
172
|
+
destinationBytesPerSample: destinationDescriptor.bytesPerSample,
|
|
173
|
+
sourceBitDepth: sourceDescriptor.bitDepth,
|
|
174
|
+
destinationBitDepth: destinationDescriptor.bitDepth,
|
|
175
|
+
sourceSamplesPerPixel: sourcePlane.samplesPerPixel ?? 1,
|
|
176
|
+
destinationSamplesPerPixel: destinationPlane.samplesPerPixel ?? 1,
|
|
162
177
|
algorithm,
|
|
163
178
|
});
|
|
164
179
|
}
|
|
165
180
|
const init = {
|
|
166
|
-
format:
|
|
181
|
+
format: destinationFormat,
|
|
167
182
|
codedWidth: options.width,
|
|
168
183
|
codedHeight: options.height,
|
|
169
184
|
displayWidth: options.width,
|
|
@@ -174,36 +189,19 @@ export async function resizeFrameRaw(frame, options) {
|
|
|
174
189
|
};
|
|
175
190
|
if (frame.duration !== null)
|
|
176
191
|
init.duration = frame.duration;
|
|
177
|
-
const
|
|
192
|
+
const converted = new VideoFrame(destination, init);
|
|
178
193
|
return {
|
|
179
|
-
frame:
|
|
180
|
-
inspection: inspectFrame(
|
|
181
|
-
|
|
194
|
+
frame: converted,
|
|
195
|
+
inspection: inspectFrame(converted),
|
|
196
|
+
sourceFormat,
|
|
197
|
+
format: destinationFormat,
|
|
182
198
|
layout: destinationLayout,
|
|
183
199
|
byteLength: destination.byteLength,
|
|
200
|
+
chromaSubsampling,
|
|
201
|
+
bitDepth,
|
|
184
202
|
algorithm,
|
|
185
203
|
};
|
|
186
204
|
}
|
|
187
|
-
function describePlanarFormat(format) {
|
|
188
|
-
switch (format) {
|
|
189
|
-
case 'NV12':
|
|
190
|
-
return { bytesPerSample: 1, planes: [{ subsampleX: 1, subsampleY: 1 }, { subsampleX: 2, subsampleY: 2, samplesPerPixel: 2 }] };
|
|
191
|
-
case 'I420':
|
|
192
|
-
return { bytesPerSample: 1, planes: [{ subsampleX: 1, subsampleY: 1 }, { subsampleX: 2, subsampleY: 2 }, { subsampleX: 2, subsampleY: 2 }] };
|
|
193
|
-
case 'I422':
|
|
194
|
-
return { bytesPerSample: 1, planes: [{ subsampleX: 1, subsampleY: 1 }, { subsampleX: 2, subsampleY: 1 }, { subsampleX: 2, subsampleY: 1 }] };
|
|
195
|
-
case 'I444':
|
|
196
|
-
return { bytesPerSample: 1, planes: [{ subsampleX: 1, subsampleY: 1 }, { subsampleX: 1, subsampleY: 1 }, { subsampleX: 1, subsampleY: 1 }] };
|
|
197
|
-
case 'I420P10':
|
|
198
|
-
return { bytesPerSample: 2, planes: [{ subsampleX: 1, subsampleY: 1 }, { subsampleX: 2, subsampleY: 2 }, { subsampleX: 2, subsampleY: 2 }] };
|
|
199
|
-
case 'I422P10':
|
|
200
|
-
return { bytesPerSample: 2, planes: [{ subsampleX: 1, subsampleY: 1 }, { subsampleX: 2, subsampleY: 1 }, { subsampleX: 2, subsampleY: 1 }] };
|
|
201
|
-
case 'I444P10':
|
|
202
|
-
return { bytesPerSample: 2, planes: [{ subsampleX: 1, subsampleY: 1 }, { subsampleX: 1, subsampleY: 1 }, { subsampleX: 1, subsampleY: 1 }] };
|
|
203
|
-
default:
|
|
204
|
-
return null;
|
|
205
|
-
}
|
|
206
|
-
}
|
|
207
205
|
function visibleRectForCopy(frame) {
|
|
208
206
|
const rect = frame.visibleRect;
|
|
209
207
|
return {
|
|
@@ -232,24 +230,6 @@ function allocationFromLayout(layout, descriptor, width, height) {
|
|
|
232
230
|
function planeDimension(size, subsample) {
|
|
233
231
|
return Math.ceil(size / subsample);
|
|
234
232
|
}
|
|
235
|
-
function resizePlane(options) {
|
|
236
|
-
for (let y = 0; y < options.destinationHeight; y++) {
|
|
237
|
-
const sourceY = mapPixelCenter(y, options.destinationHeight, options.sourceHeight);
|
|
238
|
-
for (let x = 0; x < options.destinationWidth; x++) {
|
|
239
|
-
const sourceX = mapPixelCenter(x, options.destinationWidth, options.sourceWidth);
|
|
240
|
-
const value = options.algorithm === 'nearest'
|
|
241
|
-
? sampleNearest(options, sourceX, sourceY, 0)
|
|
242
|
-
: sampleBilinear(options, sourceX, sourceY, 0);
|
|
243
|
-
writeSample(options.destination, options.destinationLayout, x, y, options.bytesPerSample, options.samplesPerPixel, 0, value);
|
|
244
|
-
if (options.samplesPerPixel === 2) {
|
|
245
|
-
const secondValue = options.algorithm === 'nearest'
|
|
246
|
-
? sampleNearest(options, sourceX, sourceY, 1)
|
|
247
|
-
: sampleBilinear(options, sourceX, sourceY, 1);
|
|
248
|
-
writeSample(options.destination, options.destinationLayout, x, y, options.bytesPerSample, options.samplesPerPixel, 1, secondValue);
|
|
249
|
-
}
|
|
250
|
-
}
|
|
251
|
-
}
|
|
252
|
-
}
|
|
253
233
|
function mapPixelCenter(position, destinationSize, sourceSize) {
|
|
254
234
|
return (position + 0.5) * sourceSize / destinationSize - 0.5;
|
|
255
235
|
}
|
|
@@ -282,6 +262,71 @@ function writeSample(data, layout, x, y, bytesPerSample, samplesPerPixel, compon
|
|
|
282
262
|
if (bytesPerSample === 2)
|
|
283
263
|
data[offset + 1] = value >> 8;
|
|
284
264
|
}
|
|
265
|
+
function convertPlane(options) {
|
|
266
|
+
if (options.sourceSamplesPerPixel !== options.destinationSamplesPerPixel) {
|
|
267
|
+
throw new Error('Planar conversion does not support packed-to-planar or planar-to-packed conversion');
|
|
268
|
+
}
|
|
269
|
+
for (let y = 0; y < options.destinationHeight; y++) {
|
|
270
|
+
const sourceY = mapPixelCenter(y, options.destinationHeight, options.sourceHeight);
|
|
271
|
+
for (let x = 0; x < options.destinationWidth; x++) {
|
|
272
|
+
const sourceX = mapPixelCenter(x, options.destinationWidth, options.sourceWidth);
|
|
273
|
+
for (let component = 0; component < options.destinationSamplesPerPixel; component++) {
|
|
274
|
+
const value = options.algorithm === 'nearest'
|
|
275
|
+
? sampleNearest({
|
|
276
|
+
source: options.source,
|
|
277
|
+
sourceLayout: options.sourceLayout,
|
|
278
|
+
sourceWidth: options.sourceWidth,
|
|
279
|
+
sourceHeight: options.sourceHeight,
|
|
280
|
+
destinationLayout: options.destinationLayout,
|
|
281
|
+
destinationWidth: options.destinationWidth,
|
|
282
|
+
destinationHeight: options.destinationHeight,
|
|
283
|
+
bytesPerSample: options.sourceBytesPerSample,
|
|
284
|
+
samplesPerPixel: options.sourceSamplesPerPixel,
|
|
285
|
+
algorithm: options.algorithm,
|
|
286
|
+
}, sourceX, sourceY, component)
|
|
287
|
+
: sampleBilinear({
|
|
288
|
+
source: options.source,
|
|
289
|
+
sourceLayout: options.sourceLayout,
|
|
290
|
+
sourceWidth: options.sourceWidth,
|
|
291
|
+
sourceHeight: options.sourceHeight,
|
|
292
|
+
destinationLayout: options.destinationLayout,
|
|
293
|
+
destinationWidth: options.destinationWidth,
|
|
294
|
+
destinationHeight: options.destinationHeight,
|
|
295
|
+
bytesPerSample: options.sourceBytesPerSample,
|
|
296
|
+
samplesPerPixel: options.sourceSamplesPerPixel,
|
|
297
|
+
algorithm: options.algorithm,
|
|
298
|
+
}, sourceX, sourceY, component);
|
|
299
|
+
writeSample(options.destination, options.destinationLayout, x, y, options.destinationBytesPerSample, options.destinationSamplesPerPixel, component, convertSampleBitDepth(value, options.sourceBitDepth, options.destinationBitDepth));
|
|
300
|
+
}
|
|
301
|
+
}
|
|
302
|
+
}
|
|
303
|
+
}
|
|
304
|
+
function convertSampleBitDepth(value, sourceBitDepth, destinationBitDepth) {
|
|
305
|
+
const sourceMax = maxSampleValue(sourceBitDepth);
|
|
306
|
+
const destinationMax = maxSampleValue(destinationBitDepth);
|
|
307
|
+
return Math.round(clamp(value, 0, sourceMax) * destinationMax / sourceMax);
|
|
308
|
+
}
|
|
309
|
+
function maxSampleValue(bitDepth) {
|
|
310
|
+
return 2 ** bitDepth - 1;
|
|
311
|
+
}
|
|
312
|
+
function assertCanConvertChroma(source, destination, sourceFormat, destinationFormat) {
|
|
313
|
+
if (source.planes.length !== destination.planes.length) {
|
|
314
|
+
throw new Error(`Cannot convert ${sourceFormat} to incompatible planar format ${destinationFormat}`);
|
|
315
|
+
}
|
|
316
|
+
if (source.hasAlpha !== destination.hasAlpha) {
|
|
317
|
+
throw new Error(`Cannot add or remove alpha while converting ${sourceFormat} to ${destinationFormat}`);
|
|
318
|
+
}
|
|
319
|
+
for (let index = 0; index < source.planes.length; index++) {
|
|
320
|
+
const sourcePlane = source.planes[index];
|
|
321
|
+
const destinationPlane = destination.planes[index];
|
|
322
|
+
if ((sourcePlane.samplesPerPixel ?? 1) !== (destinationPlane.samplesPerPixel ?? 1)) {
|
|
323
|
+
throw new Error(`Cannot convert ${sourceFormat} to incompatible planar format ${destinationFormat}`);
|
|
324
|
+
}
|
|
325
|
+
if (destinationPlane.subsampleX < sourcePlane.subsampleX || destinationPlane.subsampleY < sourcePlane.subsampleY) {
|
|
326
|
+
throw new Error(`Planar conversion can downsample chroma but cannot upsample ${sourceFormat} to ${destinationFormat}`);
|
|
327
|
+
}
|
|
328
|
+
}
|
|
329
|
+
}
|
|
285
330
|
function clamp(value, min, max) {
|
|
286
331
|
return Math.min(max, Math.max(min, value));
|
|
287
332
|
}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,9 +1,14 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@browser-mc/webcodecs-color",
|
|
3
|
-
"version": "0.0
|
|
3
|
+
"version": "0.1.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"types": "./dist/index.d.ts",
|
|
7
|
+
"repository": {
|
|
8
|
+
"type": "git",
|
|
9
|
+
"url": "https://github.com/tamaina/browser-media-converter",
|
|
10
|
+
"directory": "packages/webcodecs-color"
|
|
11
|
+
},
|
|
7
12
|
"exports": {
|
|
8
13
|
".": {
|
|
9
14
|
"types": "./dist/index.d.ts",
|
|
@@ -21,10 +26,10 @@
|
|
|
21
26
|
"access": "public"
|
|
22
27
|
},
|
|
23
28
|
"scripts": {
|
|
24
|
-
"
|
|
25
|
-
"build": "tsc -p tsconfig.json",
|
|
26
|
-
"
|
|
27
|
-
"typecheck": "tsc -p tsconfig.json --noEmit",
|
|
29
|
+
"build": "pnpm --filter @browser-mc/webcodecs-color... build:package",
|
|
30
|
+
"build:package": "tsc -p tsconfig.json",
|
|
31
|
+
"typecheck": "pnpm --filter @browser-mc/webcodecs-color... typecheck:package",
|
|
32
|
+
"typecheck:package": "tsc -p tsconfig.json --noEmit",
|
|
28
33
|
"test": "pnpm build",
|
|
29
34
|
"test:electron": "pnpm build && env -u ELECTRON_RUN_AS_NODE xvfb-run -a node test/electron-smoke.mjs"
|
|
30
35
|
}
|