@browser-mc/webcodecs-color 0.0.1 → 0.1.1

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 CHANGED
@@ -22,22 +22,26 @@ console.log(classifyFrameColor(frame));
22
22
  frame.close();
23
23
  ```
24
24
 
25
- ## Canvas-Free Raw Resize
25
+ ## Resize Planar VideoFrame
26
26
 
27
27
  ```ts
28
- import { resizeFrameRaw } from '@browser-mc/webcodecs-color';
28
+ import { resizeFramePlanar } from '@browser-mc/webcodecs-color';
29
29
 
30
- const resized = await resizeFrameRaw(frame, {
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(resized.inspection);
37
- resized.frame.close();
38
+ console.log(resized4208.inspection);
39
+ resized4208.frame.close();
38
40
  ```
39
41
 
40
- `resizeFrameRaw` uses `VideoFrame.copyTo()` and creates a new `VideoFrame` from resized planar data. It copies only the source `visibleRect`, so coded padding rows/columns are not fed into the resize. It does not use `HTMLCanvasElement`, `OffscreenCanvas`, WebGL, or WebGPU.
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, plus 8-bit `NV12`, it does resize, chroma downsampling, and bit-depth conversion in one pass over the copied data. `NV12` resize preserves `NV12` when bit depth and chroma are preserved; explicit planar conversion can unpack `NV12` to `I420`. 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 { convertFrameToCanvasSdr, copyFrameToRgba, resizeFrameWithCanvas } from '@browser-mc/webcodecs-color';
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 Raw Resize Formats
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
- - `NV12`, `I420`, `I422`, `I444`
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 and `NV12`. `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 `I444P10` and `bt2020` metadata through raw resize.
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,CAmDlF;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"}
@@ -0,0 +1,93 @@
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 'NV12':
12
+ return {
13
+ bytesPerSample: 1,
14
+ bitDepth: 8,
15
+ hasAlpha: false,
16
+ planes: [
17
+ { subsampleX: 1, subsampleY: 1 },
18
+ { subsampleX: 2, subsampleY: 2, samplesPerPixel: 2 },
19
+ ],
20
+ };
21
+ case 'I420':
22
+ return planarDescriptor(8, false, 2, 2);
23
+ case 'I420P10':
24
+ return planarDescriptor(10, false, 2, 2);
25
+ case 'I420P12':
26
+ return planarDescriptor(12, false, 2, 2);
27
+ case 'I420A':
28
+ return planarDescriptor(8, true, 2, 2);
29
+ case 'I420AP10':
30
+ return planarDescriptor(10, true, 2, 2);
31
+ case 'I420AP12':
32
+ return planarDescriptor(12, true, 2, 2);
33
+ case 'I422':
34
+ return planarDescriptor(8, false, 2, 1);
35
+ case 'I422P10':
36
+ return planarDescriptor(10, false, 2, 1);
37
+ case 'I422P12':
38
+ return planarDescriptor(12, false, 2, 1);
39
+ case 'I422A':
40
+ return planarDescriptor(8, true, 2, 1);
41
+ case 'I422AP10':
42
+ return planarDescriptor(10, true, 2, 1);
43
+ case 'I422AP12':
44
+ return planarDescriptor(12, true, 2, 1);
45
+ case 'I444':
46
+ return planarDescriptor(8, false, 1, 1);
47
+ case 'I444P10':
48
+ return planarDescriptor(10, false, 1, 1);
49
+ case 'I444P12':
50
+ return planarDescriptor(12, false, 1, 1);
51
+ case 'I444A':
52
+ return planarDescriptor(8, true, 1, 1);
53
+ case 'I444AP10':
54
+ return planarDescriptor(10, true, 1, 1);
55
+ case 'I444AP12':
56
+ return planarDescriptor(12, true, 1, 1);
57
+ default:
58
+ return null;
59
+ }
60
+ }
61
+ export function chromaSubsamplingFor(descriptor) {
62
+ const chroma = descriptor.planes[1];
63
+ if (chroma.subsampleX === 2 && chroma.subsampleY === 2)
64
+ return '420';
65
+ if (chroma.subsampleX === 2 && chroma.subsampleY === 1)
66
+ return '422';
67
+ if (chroma.subsampleX === 1 && chroma.subsampleY === 1)
68
+ return '444';
69
+ throw new Error(`Unsupported planar chroma layout ${chroma.subsampleX}:${chroma.subsampleY}`);
70
+ }
71
+ export function bitDepthFor(descriptor) {
72
+ return descriptor.bitDepth;
73
+ }
74
+ export function planarFormatFor(chromaSubsampling, bitDepth, hasAlpha) {
75
+ const base = chromaSubsampling === '420' ? 'I420' : chromaSubsampling === '422' ? 'I422' : 'I444';
76
+ const alpha = hasAlpha ? 'A' : '';
77
+ const suffix = bitDepth === 8 ? '' : `P${bitDepth}`;
78
+ return `${base}${alpha}${suffix}`;
79
+ }
80
+ function planarDescriptor(bitDepth, hasAlpha, chromaSubsampleX, chromaSubsampleY) {
81
+ return {
82
+ bytesPerSample: bitDepth === 8 ? 1 : 2,
83
+ bitDepth,
84
+ hasAlpha,
85
+ planes: [
86
+ { subsampleX: 1, subsampleY: 1 },
87
+ { subsampleX: chromaSubsampleX, subsampleY: chromaSubsampleY },
88
+ { subsampleX: chromaSubsampleX, subsampleY: chromaSubsampleY },
89
+ ...(hasAlpha ? [{ subsampleX: 1, subsampleY: 1 }] : []),
90
+ ],
91
+ };
92
+ }
93
+ //# 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;gBACL,cAAc,EAAE,CAAC;gBACjB,QAAQ,EAAE,CAAC;gBACX,QAAQ,EAAE,KAAK;gBACf,MAAM,EAAE;oBACN,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE;oBAChC,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,eAAe,EAAE,CAAC,EAAE;iBACrD;aACF,CAAC;QACJ,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 ResizeRawOptions = {
56
+ export type PlanarResizeAlgorithm = 'nearest' | 'bilinear';
57
+ export type ResizeFramePlanarOptions = {
55
58
  width: number;
56
59
  height: number;
57
- algorithm?: 'nearest' | 'bilinear';
60
+ chromaSubsampling?: PlanarChromaSubsampling;
61
+ bitDepth?: PlanarBitDepth;
62
+ algorithm?: PlanarResizeAlgorithm;
58
63
  };
59
- export type ResizeRawResult = {
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
- algorithm: 'nearest' | 'bilinear';
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 resizeFrameRaw(frame: VideoFrame, options: ResizeRawOptions): Promise<ResizeRawResult>;
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
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
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,58 @@ export function convertFrameToCanvasSdr(frame) {
129
131
  colorSpace: 'srgb',
130
132
  };
131
133
  }
132
- export async function resizeFrameRaw(frame, options) {
133
- const format = frame.format;
134
- if (!format)
135
- throw new Error('Cannot raw-resize a VideoFrame with unknown format');
136
- const descriptor = describePlanarFormat(format);
137
- if (!descriptor)
138
- throw new Error(`Raw resize does not support VideoFrame format ${format}`);
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 !== 2 && sourceDescriptor.planes.length !== 3 && sourceDescriptor.planes.length !== 4) {
142
+ throw new Error(`Planar processing currently supports 2-plane NV12, 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 = options.chromaSubsampling === undefined && options.bitDepth === undefined
147
+ ? sourceFormat
148
+ : planarFormatFor(chromaSubsampling, bitDepth, sourceDescriptor.hasAlpha);
149
+ if (!destinationFormat)
150
+ throw new Error(`No WebCodecs planar format is known for ${chromaSubsampling}/${bitDepth}`);
151
+ const destinationDescriptor = describePlanarFormat(destinationFormat);
152
+ if (!destinationDescriptor)
153
+ throw new Error(`Planar conversion does not support destination format ${destinationFormat}`);
154
+ assertCanConvertChroma(sourceDescriptor, destinationDescriptor, sourceFormat, destinationFormat);
139
155
  const sourceRect = visibleRectForCopy(frame);
140
156
  const source = new Uint8Array(frame.allocationSize({ rect: sourceRect }));
141
157
  const sourceLayout = await frame.copyTo(source, { rect: sourceRect });
142
- const destinationLayout = makeDestinationLayout(descriptor, options.width, options.height);
143
- const destination = new Uint8Array(allocationFromLayout(destinationLayout, descriptor, options.width, options.height));
158
+ const destinationLayout = makeDestinationLayout(destinationDescriptor, options.width, options.height);
159
+ const destination = new Uint8Array(allocationFromLayout(destinationLayout, destinationDescriptor, options.width, options.height));
144
160
  const algorithm = options.algorithm ?? 'bilinear';
145
- for (let planeIndex = 0; planeIndex < descriptor.planes.length; planeIndex++) {
146
- const plane = descriptor.planes[planeIndex];
147
- const srcWidth = planeDimension(sourceRect.width, plane.subsampleX);
148
- const srcHeight = planeDimension(sourceRect.height, plane.subsampleY);
149
- const dstWidth = planeDimension(options.width, plane.subsampleX);
150
- const dstHeight = planeDimension(options.height, plane.subsampleY);
151
- resizePlane({
161
+ for (let planeIndex = 0; planeIndex < destinationDescriptor.planes.length; planeIndex++) {
162
+ const sourcePlaneIndex = sourcePlaneIndexForDestinationPlane(sourceDescriptor, destinationDescriptor, planeIndex);
163
+ const sourcePlane = sourceDescriptor.planes[sourcePlaneIndex];
164
+ const destinationPlane = destinationDescriptor.planes[planeIndex];
165
+ convertPlane({
152
166
  source,
153
167
  destination,
154
- sourceLayout: sourceLayout[planeIndex],
168
+ sourceLayout: sourceLayout[sourcePlaneIndex],
155
169
  destinationLayout: destinationLayout[planeIndex],
156
- sourceWidth: srcWidth,
157
- sourceHeight: srcHeight,
158
- destinationWidth: dstWidth,
159
- destinationHeight: dstHeight,
160
- bytesPerSample: descriptor.bytesPerSample,
161
- samplesPerPixel: plane.samplesPerPixel ?? 1,
170
+ sourceWidth: planeDimension(sourceRect.width, sourcePlane.subsampleX),
171
+ sourceHeight: planeDimension(sourceRect.height, sourcePlane.subsampleY),
172
+ destinationWidth: planeDimension(options.width, destinationPlane.subsampleX),
173
+ destinationHeight: planeDimension(options.height, destinationPlane.subsampleY),
174
+ sourceBytesPerSample: sourceDescriptor.bytesPerSample,
175
+ destinationBytesPerSample: destinationDescriptor.bytesPerSample,
176
+ sourceBitDepth: sourceDescriptor.bitDepth,
177
+ destinationBitDepth: destinationDescriptor.bitDepth,
178
+ sourceSamplesPerPixel: sourcePlane.samplesPerPixel ?? 1,
179
+ destinationSamplesPerPixel: destinationPlane.samplesPerPixel ?? 1,
180
+ sourceComponent: sourceComponentForDestinationPlane(sourceDescriptor, destinationDescriptor, planeIndex),
162
181
  algorithm,
163
182
  });
164
183
  }
165
184
  const init = {
166
- format: format,
185
+ format: destinationFormat,
167
186
  codedWidth: options.width,
168
187
  codedHeight: options.height,
169
188
  displayWidth: options.width,
@@ -174,36 +193,19 @@ export async function resizeFrameRaw(frame, options) {
174
193
  };
175
194
  if (frame.duration !== null)
176
195
  init.duration = frame.duration;
177
- const resized = new VideoFrame(destination, init);
196
+ const converted = new VideoFrame(destination, init);
178
197
  return {
179
- frame: resized,
180
- inspection: inspectFrame(resized),
181
- format,
198
+ frame: converted,
199
+ inspection: inspectFrame(converted),
200
+ sourceFormat,
201
+ format: destinationFormat,
182
202
  layout: destinationLayout,
183
203
  byteLength: destination.byteLength,
204
+ chromaSubsampling,
205
+ bitDepth,
184
206
  algorithm,
185
207
  };
186
208
  }
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
209
  function visibleRectForCopy(frame) {
208
210
  const rect = frame.visibleRect;
209
211
  return {
@@ -232,24 +234,6 @@ function allocationFromLayout(layout, descriptor, width, height) {
232
234
  function planeDimension(size, subsample) {
233
235
  return Math.ceil(size / subsample);
234
236
  }
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
237
  function mapPixelCenter(position, destinationSize, sourceSize) {
254
238
  return (position + 0.5) * sourceSize / destinationSize - 0.5;
255
239
  }
@@ -282,6 +266,99 @@ function writeSample(data, layout, x, y, bytesPerSample, samplesPerPixel, compon
282
266
  if (bytesPerSample === 2)
283
267
  data[offset + 1] = value >> 8;
284
268
  }
269
+ function convertPlane(options) {
270
+ if (options.sourceSamplesPerPixel !== options.destinationSamplesPerPixel && options.destinationSamplesPerPixel !== 1) {
271
+ throw new Error('Planar conversion does not support planar-to-packed conversion');
272
+ }
273
+ for (let y = 0; y < options.destinationHeight; y++) {
274
+ const sourceY = mapPixelCenter(y, options.destinationHeight, options.sourceHeight);
275
+ for (let x = 0; x < options.destinationWidth; x++) {
276
+ const sourceX = mapPixelCenter(x, options.destinationWidth, options.sourceWidth);
277
+ for (let component = 0; component < options.destinationSamplesPerPixel; component++) {
278
+ const sourceComponent = options.sourceSamplesPerPixel === options.destinationSamplesPerPixel
279
+ ? component
280
+ : options.sourceComponent;
281
+ const value = options.algorithm === 'nearest'
282
+ ? sampleNearest({
283
+ source: options.source,
284
+ sourceLayout: options.sourceLayout,
285
+ sourceWidth: options.sourceWidth,
286
+ sourceHeight: options.sourceHeight,
287
+ destinationLayout: options.destinationLayout,
288
+ destinationWidth: options.destinationWidth,
289
+ destinationHeight: options.destinationHeight,
290
+ bytesPerSample: options.sourceBytesPerSample,
291
+ samplesPerPixel: options.sourceSamplesPerPixel,
292
+ algorithm: options.algorithm,
293
+ }, sourceX, sourceY, sourceComponent)
294
+ : sampleBilinear({
295
+ source: options.source,
296
+ sourceLayout: options.sourceLayout,
297
+ sourceWidth: options.sourceWidth,
298
+ sourceHeight: options.sourceHeight,
299
+ destinationLayout: options.destinationLayout,
300
+ destinationWidth: options.destinationWidth,
301
+ destinationHeight: options.destinationHeight,
302
+ bytesPerSample: options.sourceBytesPerSample,
303
+ samplesPerPixel: options.sourceSamplesPerPixel,
304
+ algorithm: options.algorithm,
305
+ }, sourceX, sourceY, sourceComponent);
306
+ writeSample(options.destination, options.destinationLayout, x, y, options.destinationBytesPerSample, options.destinationSamplesPerPixel, component, convertSampleBitDepth(value, options.sourceBitDepth, options.destinationBitDepth));
307
+ }
308
+ }
309
+ }
310
+ }
311
+ function convertSampleBitDepth(value, sourceBitDepth, destinationBitDepth) {
312
+ const sourceMax = maxSampleValue(sourceBitDepth);
313
+ const destinationMax = maxSampleValue(destinationBitDepth);
314
+ return Math.round(clamp(value, 0, sourceMax) * destinationMax / sourceMax);
315
+ }
316
+ function maxSampleValue(bitDepth) {
317
+ return 2 ** bitDepth - 1;
318
+ }
319
+ function assertCanConvertChroma(source, destination, sourceFormat, destinationFormat) {
320
+ if (!canMapPlanes(source, destination)) {
321
+ throw new Error(`Cannot convert ${sourceFormat} to incompatible planar format ${destinationFormat}`);
322
+ }
323
+ if (source.hasAlpha !== destination.hasAlpha) {
324
+ throw new Error(`Cannot add or remove alpha while converting ${sourceFormat} to ${destinationFormat}`);
325
+ }
326
+ for (let index = 0; index < destination.planes.length; index++) {
327
+ const sourcePlane = source.planes[sourcePlaneIndexForDestinationPlane(source, destination, index)];
328
+ const destinationPlane = destination.planes[index];
329
+ if ((sourcePlane.samplesPerPixel ?? 1) !== (destinationPlane.samplesPerPixel ?? 1) && (destinationPlane.samplesPerPixel ?? 1) !== 1) {
330
+ throw new Error(`Cannot convert ${sourceFormat} to incompatible planar format ${destinationFormat}`);
331
+ }
332
+ if (destinationPlane.subsampleX < sourcePlane.subsampleX || destinationPlane.subsampleY < sourcePlane.subsampleY) {
333
+ throw new Error(`Planar conversion can downsample chroma but cannot upsample ${sourceFormat} to ${destinationFormat}`);
334
+ }
335
+ }
336
+ }
337
+ function canMapPlanes(source, destination) {
338
+ if (source.planes.length === destination.planes.length)
339
+ return true;
340
+ return source.planes.length === 2
341
+ && destination.planes.length === 3
342
+ && (source.planes[1].samplesPerPixel ?? 1) === 2
343
+ && (destination.planes[1].samplesPerPixel ?? 1) === 1
344
+ && (destination.planes[2].samplesPerPixel ?? 1) === 1;
345
+ }
346
+ function sourcePlaneIndexForDestinationPlane(source, destination, destinationPlaneIndex) {
347
+ if (source.planes.length === destination.planes.length)
348
+ return destinationPlaneIndex;
349
+ if (source.planes.length === 2 && destination.planes.length === 3) {
350
+ return destinationPlaneIndex === 0 ? 0 : 1;
351
+ }
352
+ throw new Error('Cannot map incompatible planar planes');
353
+ }
354
+ function sourceComponentForDestinationPlane(source, destination, destinationPlaneIndex) {
355
+ if (source.planes.length === destination.planes.length)
356
+ return 0;
357
+ if (source.planes.length === 2 && destination.planes.length === 3) {
358
+ return destinationPlaneIndex === 2 ? 1 : 0;
359
+ }
360
+ throw new Error('Cannot map incompatible planar plane components');
361
+ }
285
362
  function clamp(value, min, max) {
286
363
  return Math.min(max, Math.max(min, value));
287
364
  }
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.1",
3
+ "version": "0.1.1",
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
- "prebuild": "pnpm --filter @browser-mc/binary build",
25
- "build": "tsc -p tsconfig.json",
26
- "pretypecheck": "pnpm --filter @browser-mc/binary build",
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
  }