webcodecs-node 0.5.2 → 0.7.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 +279 -0
- package/dist/backends/types.d.ts +2 -0
- package/dist/backends/types.d.ts.map +1 -1
- package/dist/backends/types.js.map +1 -1
- package/dist/canvas/canvas-utils.d.ts +115 -0
- package/dist/canvas/canvas-utils.d.ts.map +1 -0
- package/dist/canvas/canvas-utils.js +169 -0
- package/dist/canvas/canvas-utils.js.map +1 -0
- package/dist/canvas/frame-loop.d.ts +113 -0
- package/dist/canvas/frame-loop.d.ts.map +1 -0
- package/dist/canvas/frame-loop.js +291 -0
- package/dist/canvas/frame-loop.js.map +1 -0
- package/dist/canvas/gpu-context.d.ts +61 -0
- package/dist/canvas/gpu-context.d.ts.map +1 -0
- package/dist/canvas/gpu-context.js +134 -0
- package/dist/canvas/gpu-context.js.map +1 -0
- package/dist/canvas/index.d.ts +22 -0
- package/dist/canvas/index.d.ts.map +1 -0
- package/dist/canvas/index.js +25 -0
- package/dist/canvas/index.js.map +1 -0
- package/dist/canvas/types.d.ts +101 -0
- package/dist/canvas/types.d.ts.map +1 -0
- package/dist/canvas/types.js +7 -0
- package/dist/canvas/types.js.map +1 -0
- package/dist/codec-utils/formats.d.ts.map +1 -1
- package/dist/codec-utils/formats.js +31 -0
- package/dist/codec-utils/formats.js.map +1 -1
- package/dist/config/ffmpeg-quality.d.ts +14 -0
- package/dist/config/ffmpeg-quality.d.ts.map +1 -0
- package/dist/config/ffmpeg-quality.js +41 -0
- package/dist/config/ffmpeg-quality.js.map +1 -0
- package/dist/containers/Muxer.d.ts.map +1 -1
- package/dist/containers/Muxer.js +4 -1
- package/dist/containers/Muxer.js.map +1 -1
- package/dist/core/AudioData.d.ts +2 -1
- package/dist/core/AudioData.d.ts.map +1 -1
- package/dist/core/AudioData.js.map +1 -1
- package/dist/core/VideoFrame.d.ts +2 -2
- package/dist/core/VideoFrame.d.ts.map +1 -1
- package/dist/core/VideoFrame.js +49 -47
- package/dist/core/VideoFrame.js.map +1 -1
- package/dist/decoders/AudioDecoder.d.ts +1 -0
- package/dist/decoders/AudioDecoder.d.ts.map +1 -1
- package/dist/decoders/AudioDecoder.js +39 -17
- package/dist/decoders/AudioDecoder.js.map +1 -1
- package/dist/decoders/ImageDecoder.d.ts +1 -0
- package/dist/decoders/ImageDecoder.d.ts.map +1 -1
- package/dist/decoders/ImageDecoder.js +40 -3
- package/dist/decoders/ImageDecoder.js.map +1 -1
- package/dist/decoders/VideoDecoder.d.ts +12 -0
- package/dist/decoders/VideoDecoder.d.ts.map +1 -1
- package/dist/decoders/VideoDecoder.js +50 -8
- package/dist/decoders/VideoDecoder.js.map +1 -1
- package/dist/demos/demo-1080p-transcode.js +8 -2
- package/dist/demos/demo-1080p-transcode.js.map +1 -1
- package/dist/demos/demo-audio-visualizer.d.ts +11 -0
- package/dist/demos/demo-audio-visualizer.d.ts.map +1 -0
- package/dist/demos/demo-audio-visualizer.js +281 -0
- package/dist/demos/demo-audio-visualizer.js.map +1 -0
- package/dist/demos/demo-dvd-logo.d.ts +8 -0
- package/dist/demos/demo-dvd-logo.d.ts.map +1 -0
- package/dist/demos/demo-dvd-logo.js +196 -0
- package/dist/demos/demo-dvd-logo.js.map +1 -0
- package/dist/demos/demo-four-corners.js +9 -0
- package/dist/demos/demo-four-corners.js.map +1 -1
- package/dist/demos/demo-streaming.js +6 -0
- package/dist/demos/demo-streaming.js.map +1 -1
- package/dist/demos/demo-webcodecs.js +1 -0
- package/dist/demos/demo-webcodecs.js.map +1 -1
- package/dist/encoders/AudioEncoder.d.ts +3 -0
- package/dist/encoders/AudioEncoder.d.ts.map +1 -1
- package/dist/encoders/AudioEncoder.js +70 -28
- package/dist/encoders/AudioEncoder.js.map +1 -1
- package/dist/encoders/ImageEncoder.d.ts +80 -0
- package/dist/encoders/ImageEncoder.d.ts.map +1 -0
- package/dist/encoders/ImageEncoder.js +156 -0
- package/dist/encoders/ImageEncoder.js.map +1 -0
- package/dist/encoders/VideoEncoder.d.ts +11 -0
- package/dist/encoders/VideoEncoder.d.ts.map +1 -1
- package/dist/encoders/VideoEncoder.js +46 -4
- package/dist/encoders/VideoEncoder.js.map +1 -1
- package/dist/encoders/index.d.ts +1 -0
- package/dist/encoders/index.d.ts.map +1 -1
- package/dist/encoders/index.js +1 -0
- package/dist/encoders/index.js.map +1 -1
- package/dist/formats/color-space.d.ts +88 -0
- package/dist/formats/color-space.d.ts.map +1 -1
- package/dist/formats/color-space.js +55 -1
- package/dist/formats/color-space.js.map +1 -1
- package/dist/formats/pixel-formats.d.ts +17 -1
- package/dist/formats/pixel-formats.d.ts.map +1 -1
- package/dist/formats/pixel-formats.js +74 -4
- package/dist/formats/pixel-formats.js.map +1 -1
- package/dist/hardware/detection.d.ts.map +1 -1
- package/dist/hardware/detection.js +5 -2
- package/dist/hardware/detection.js.map +1 -1
- package/dist/hardware/encoder-args.d.ts.map +1 -1
- package/dist/hardware/encoder-args.js +6 -6
- package/dist/hardware/encoder-args.js.map +1 -1
- package/dist/index.d.ts +11 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -2
- package/dist/index.js.map +1 -1
- package/dist/node-av/NodeAvAudioDecoder.d.ts.map +1 -1
- package/dist/node-av/NodeAvAudioDecoder.js +3 -0
- package/dist/node-av/NodeAvAudioDecoder.js.map +1 -1
- package/dist/node-av/NodeAvAudioEncoder.d.ts +5 -0
- package/dist/node-av/NodeAvAudioEncoder.d.ts.map +1 -1
- package/dist/node-av/NodeAvAudioEncoder.js +102 -9
- package/dist/node-av/NodeAvAudioEncoder.js.map +1 -1
- package/dist/node-av/NodeAvVideoEncoder.d.ts +2 -0
- package/dist/node-av/NodeAvVideoEncoder.d.ts.map +1 -1
- package/dist/node-av/NodeAvVideoEncoder.js +44 -6
- package/dist/node-av/NodeAvVideoEncoder.js.map +1 -1
- package/dist/node-av/WebPImageDecoder.d.ts +54 -0
- package/dist/node-av/WebPImageDecoder.d.ts.map +1 -0
- package/dist/node-av/WebPImageDecoder.js +176 -0
- package/dist/node-av/WebPImageDecoder.js.map +1 -0
- package/dist/polyfills/OffscreenCanvas.d.ts +141 -7
- package/dist/polyfills/OffscreenCanvas.d.ts.map +1 -1
- package/dist/polyfills/OffscreenCanvas.js +217 -17
- package/dist/polyfills/OffscreenCanvas.js.map +1 -1
- package/dist/types/index.d.ts +1 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +2 -0
- package/dist/types/index.js.map +1 -1
- package/dist/types/native-frame.d.ts +74 -0
- package/dist/types/native-frame.d.ts.map +1 -0
- package/dist/types/native-frame.js +32 -0
- package/dist/types/native-frame.js.map +1 -0
- package/dist/utils/index.d.ts +1 -1
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +1 -1
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/type-guards.d.ts +29 -1
- package/dist/utils/type-guards.d.ts.map +1 -1
- package/dist/utils/type-guards.js +47 -2
- package/dist/utils/type-guards.js.map +1 -1
- package/docs/api.md +155 -0
- package/docs/configuration.md +27 -0
- package/examples/README.md +28 -1
- package/examples/canvas-encoding.ts +222 -0
- package/examples/offscreen-canvas.ts +230 -0
- package/package.json +9 -3
|
@@ -11,10 +11,24 @@ import { pixelFormatToFFmpeg } from '../codec-utils/formats.js';
|
|
|
11
11
|
import { NodeAvVideoEncoder } from '../node-av/NodeAvVideoEncoder.js';
|
|
12
12
|
import { encodingError, wrapAsWebCodecsError } from '../utils/errors.js';
|
|
13
13
|
const DEFAULT_FLUSH_TIMEOUT = 30000;
|
|
14
|
-
const
|
|
14
|
+
const DEFAULT_MAX_QUEUE_SIZE = 100; // Fallback if resolution unknown
|
|
15
|
+
/**
|
|
16
|
+
* Calculate optimal queue size based on resolution to limit memory usage.
|
|
17
|
+
* Target: ~250-500MB max memory for queued frames (RGBA format).
|
|
18
|
+
*/
|
|
19
|
+
function calculateMaxQueueSize(width, height) {
|
|
20
|
+
const pixels = width * height;
|
|
21
|
+
const rgbaFrameBytes = pixels * 4;
|
|
22
|
+
// Target max memory: ~300MB for queue
|
|
23
|
+
const targetMemory = 300 * 1024 * 1024;
|
|
24
|
+
const calculated = Math.floor(targetMemory / rgbaFrameBytes);
|
|
25
|
+
// Clamp between 4 (minimum for smooth operation) and 100 (legacy max)
|
|
26
|
+
return Math.max(4, Math.min(100, calculated));
|
|
27
|
+
}
|
|
15
28
|
export class VideoEncoder extends WebCodecsEventTarget {
|
|
16
29
|
_state = 'unconfigured';
|
|
17
30
|
_encodeQueueSize = 0;
|
|
31
|
+
_maxQueueSize = DEFAULT_MAX_QUEUE_SIZE;
|
|
18
32
|
_config = null;
|
|
19
33
|
_outputCallback;
|
|
20
34
|
_errorCallback;
|
|
@@ -26,6 +40,7 @@ export class VideoEncoder extends WebCodecsEventTarget {
|
|
|
26
40
|
_inputFormat = null;
|
|
27
41
|
_hardwarePreference = 'no-preference';
|
|
28
42
|
_ondequeue = null;
|
|
43
|
+
_flushPromise = null;
|
|
29
44
|
constructor(init) {
|
|
30
45
|
super();
|
|
31
46
|
if (!init || typeof init.output !== 'function') {
|
|
@@ -95,6 +110,18 @@ export class VideoEncoder extends WebCodecsEventTarget {
|
|
|
95
110
|
if (typeof config.height !== 'number' || config.height <= 0 || !Number.isInteger(config.height)) {
|
|
96
111
|
throw new TypeError('height must be a positive integer');
|
|
97
112
|
}
|
|
113
|
+
// Validate even dimensions for hardware encoder compatibility
|
|
114
|
+
// Many hardware encoders (NVENC, QuickSync, VideoToolbox) fail silently with odd dimensions
|
|
115
|
+
if (config.width % 2 !== 0 || config.height % 2 !== 0) {
|
|
116
|
+
const oddDims = [];
|
|
117
|
+
if (config.width % 2 !== 0)
|
|
118
|
+
oddDims.push(`width=${config.width}`);
|
|
119
|
+
if (config.height % 2 !== 0)
|
|
120
|
+
oddDims.push(`height=${config.height}`);
|
|
121
|
+
throw new TypeError(`Dimensions must be even for video encoding (${oddDims.join(', ')}). ` +
|
|
122
|
+
`Most video codecs require even dimensions for YUV420 chroma subsampling. ` +
|
|
123
|
+
`Use ensureEvenDimensions() to auto-fix odd dimensions.`);
|
|
124
|
+
}
|
|
98
125
|
if (config.bitrate !== undefined && (typeof config.bitrate !== 'number' || config.bitrate <= 0)) {
|
|
99
126
|
throw new TypeError('bitrate must be a positive number');
|
|
100
127
|
}
|
|
@@ -121,11 +148,16 @@ export class VideoEncoder extends WebCodecsEventTarget {
|
|
|
121
148
|
this._pendingFrames = [];
|
|
122
149
|
this._inputFormat = null;
|
|
123
150
|
this._hardwarePreference = config.hardwareAcceleration ?? 'no-preference';
|
|
151
|
+
this._maxQueueSize = config.maxQueueSize ?? calculateMaxQueueSize(config.width, config.height);
|
|
124
152
|
}
|
|
125
153
|
encode(frame, options) {
|
|
126
154
|
if (this._state !== 'configured') {
|
|
127
155
|
throw new DOMException('Encoder is not configured', 'InvalidStateError');
|
|
128
156
|
}
|
|
157
|
+
// Prevent encoding during flush to avoid race conditions
|
|
158
|
+
if (this._flushPromise) {
|
|
159
|
+
throw new DOMException('Cannot encode while flush is pending. Wait for flush() to complete.', 'InvalidStateError');
|
|
160
|
+
}
|
|
129
161
|
if (!(frame instanceof VideoFrame)) {
|
|
130
162
|
throw new TypeError('frame must be a VideoFrame');
|
|
131
163
|
}
|
|
@@ -147,8 +179,8 @@ export class VideoEncoder extends WebCodecsEventTarget {
|
|
|
147
179
|
return;
|
|
148
180
|
}
|
|
149
181
|
// Check queue saturation to prevent unbounded memory growth
|
|
150
|
-
if (this._encodeQueueSize >=
|
|
151
|
-
this._safeErrorCallback(new DOMException(`Encoder queue saturated (${
|
|
182
|
+
if (this._encodeQueueSize >= this._maxQueueSize) {
|
|
183
|
+
this._safeErrorCallback(new DOMException(`Encoder queue saturated (${this._maxQueueSize} frames pending). Wait for dequeue events before encoding more frames.`, 'QuotaExceededError'));
|
|
152
184
|
return;
|
|
153
185
|
}
|
|
154
186
|
const keyFrame = options?.keyFrame ?? (this._frameCount % this._keyFrameInterval === 0);
|
|
@@ -173,7 +205,11 @@ export class VideoEncoder extends WebCodecsEventTarget {
|
|
|
173
205
|
if (this._state !== 'configured') {
|
|
174
206
|
throw new DOMException('Encoder is not configured', 'InvalidStateError');
|
|
175
207
|
}
|
|
176
|
-
|
|
208
|
+
// If flush is already pending, return the existing promise
|
|
209
|
+
if (this._flushPromise) {
|
|
210
|
+
return this._flushPromise;
|
|
211
|
+
}
|
|
212
|
+
this._flushPromise = new Promise((resolve, reject) => {
|
|
177
213
|
if (!this._encoder) {
|
|
178
214
|
resolve();
|
|
179
215
|
return;
|
|
@@ -197,6 +233,7 @@ export class VideoEncoder extends WebCodecsEventTarget {
|
|
|
197
233
|
this._inputFormat = null;
|
|
198
234
|
this._frameCount = 0;
|
|
199
235
|
this._firstChunk = true;
|
|
236
|
+
this._flushPromise = null;
|
|
200
237
|
resolve();
|
|
201
238
|
};
|
|
202
239
|
const doReject = (err) => {
|
|
@@ -204,6 +241,7 @@ export class VideoEncoder extends WebCodecsEventTarget {
|
|
|
204
241
|
return;
|
|
205
242
|
resolved = true;
|
|
206
243
|
cleanup();
|
|
244
|
+
this._flushPromise = null;
|
|
207
245
|
reject(err);
|
|
208
246
|
};
|
|
209
247
|
timeoutId = setTimeout(() => {
|
|
@@ -213,6 +251,7 @@ export class VideoEncoder extends WebCodecsEventTarget {
|
|
|
213
251
|
this._encoder.once('close', doResolve);
|
|
214
252
|
this._encoder.once('error', doReject);
|
|
215
253
|
});
|
|
254
|
+
return this._flushPromise;
|
|
216
255
|
}
|
|
217
256
|
reset() {
|
|
218
257
|
if (this._state === 'closed') {
|
|
@@ -226,6 +265,7 @@ export class VideoEncoder extends WebCodecsEventTarget {
|
|
|
226
265
|
this._frameCount = 0;
|
|
227
266
|
this._firstChunk = true;
|
|
228
267
|
this._inputFormat = null;
|
|
268
|
+
this._flushPromise = null;
|
|
229
269
|
}
|
|
230
270
|
close() {
|
|
231
271
|
if (this._state === 'closed')
|
|
@@ -235,6 +275,7 @@ export class VideoEncoder extends WebCodecsEventTarget {
|
|
|
235
275
|
this._config = null;
|
|
236
276
|
this._encodeQueueSize = 0;
|
|
237
277
|
this._pendingFrames = [];
|
|
278
|
+
this._flushPromise = null;
|
|
238
279
|
}
|
|
239
280
|
_startEncoder(inputFormat) {
|
|
240
281
|
if (!this._config)
|
|
@@ -252,6 +293,7 @@ export class VideoEncoder extends WebCodecsEventTarget {
|
|
|
252
293
|
latencyMode: this._config.latencyMode,
|
|
253
294
|
alpha: this._config.alpha,
|
|
254
295
|
hardwareAcceleration: this._hardwarePreference,
|
|
296
|
+
format: this._config.format,
|
|
255
297
|
});
|
|
256
298
|
this._encoder.on('encodedFrame', (frame) => {
|
|
257
299
|
this._handleEncodedFrame(frame);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VideoEncoder.js","sourceRoot":"","sources":["../../src/encoders/VideoEncoder.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAEjE,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAIjD,OAAO,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AACrE,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AA2CzE,MAAM,qBAAqB,GAAG,KAAK,CAAC;AACpC,MAAM,cAAc,GAAG,GAAG,CAAC,CAAC,kCAAkC;AAE9D,MAAM,OAAO,YAAa,SAAQ,oBAAoB;IAC5C,MAAM,GAAe,cAAc,CAAC;IACpC,gBAAgB,GAAG,CAAC,CAAC;IACrB,OAAO,GAA8B,IAAI,CAAC;IAC1C,eAAe,CAA4E;IAC3F,cAAc,CAAyB;IACvC,QAAQ,GAA8B,IAAI,CAAC;IAC3C,WAAW,GAAG,CAAC,CAAC;IAChB,iBAAiB,GAAG,EAAE,CAAC;IACvB,cAAc,GAAwE,EAAE,CAAC;IACzF,WAAW,GAAG,IAAI,CAAC;IACnB,YAAY,GAA4B,IAAI,CAAC;IAC7C,mBAAmB,GAA4D,eAAe,CAAC;IAC/F,UAAU,GAAwB,IAAI,CAAC;IAE/C,YAAY,IAAsB;QAChC,KAAK,EAAE,CAAC;QAER,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;YAC/C,MAAM,IAAI,SAAS,CAAC,6BAA6B,CAAC,CAAC;QACrD,CAAC;QACD,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,UAAU,EAAE,CAAC;YACrC,MAAM,IAAI,SAAS,CAAC,4BAA4B,CAAC,CAAC;QACpD,CAAC;QAED,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,MAAM,CAAC;QACnC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC;IACnC,CAAC;IAED,IAAI,KAAK,KAAiB,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAC/C,IAAI,eAAe,KAAa,OAAO,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;IAE/D,0DAA0D;IAC1D,IAAI,SAAS,KAAmB,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;IACzD,IAAI,SAAS,CAAC,OAAqB,IAAI,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,CAAC,CAAC;IAE3D,kBAAkB,CAAC,KAAY;QACrC,IAAI,CAAC;YACH,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QAC7B,CAAC;QAAC,MAAM,CAAC;YACP,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC;QACpC,CAAC;IACH,CAAC;IAED,sEAAsE;IAC9D,iBAAiB;QACvB,cAAc,CAAC,GAAG,EAAE;YAClB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACrB,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;gBACpB,IAAI,CAAC;oBACH,IAAI,CAAC,UAAU,CAAC,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;gBACxC,CAAC;gBAAC,MAAM,CAAC;oBACP,yCAAyC;gBAC3C,CAAC;YACH,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,mBAAmB,CAAC,KAAwB,EAAE,QAAqC;QACzF,IAAI,CAAC;YACH,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QACxC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC,CAAC;QACtE,CAAC;IACH,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAAC,MAA0B;QACvD,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACrD,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;QACtC,CAAC;QAED,MAAM,SAAS,GAAG,yBAAyB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC;IAC/B,CAAC;IAED,SAAS,CAAC,MAA0B;QAClC,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC7B,MAAM,IAAI,YAAY,CAAC,mBAAmB,EAAE,mBAAmB,CAAC,CAAC;QACnE,CAAC;QAED,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC1C,MAAM,IAAI,SAAS,CAAC,0BAA0B,CAAC,CAAC;QAClD,CAAC;QACD,IAAI,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAClE,MAAM,IAAI,SAAS,CAAC,kCAAkC,CAAC,CAAC;QAC1D,CAAC;QACD,IAAI,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;YAC7F,MAAM,IAAI,SAAS,CAAC,kCAAkC,CAAC,CAAC;QAC1D,CAAC;QACD,IAAI,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;YAChG,MAAM,IAAI,SAAS,CAAC,mCAAmC,CAAC,CAAC;QAC3D,CAAC;QAED,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS,IAAI,CAAC,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,IAAI,MAAM,CAAC,OAAO,IAAI,CAAC,CAAC,EAAE,CAAC;YAChG,MAAM,IAAI,SAAS,CAAC,mCAAmC,CAAC,CAAC;QAC3D,CAAC;QACD,IAAI,MAAM,CAAC,SAAS,KAAK,SAAS,IAAI,CAAC,OAAO,MAAM,CAAC,SAAS,KAAK,QAAQ,IAAI,MAAM,CAAC,SAAS,IAAI,CAAC,CAAC,EAAE,CAAC;YACtG,MAAM,IAAI,SAAS,CAAC,qCAAqC,CAAC,CAAC;QAC7D,CAAC;QACD,IAAI,MAAM,CAAC,YAAY,KAAK,SAAS,IAAI,CAAC,OAAO,MAAM,CAAC,YAAY,KAAK,QAAQ,IAAI,MAAM,CAAC,YAAY,IAAI,CAAC,CAAC,EAAE,CAAC;YAC/G,MAAM,IAAI,SAAS,CAAC,wCAAwC,CAAC,CAAC;QAChE,CAAC;QACD,IAAI,MAAM,CAAC,aAAa,KAAK,SAAS,IAAI,CAAC,OAAO,MAAM,CAAC,aAAa,KAAK,QAAQ,IAAI,MAAM,CAAC,aAAa,IAAI,CAAC,CAAC,EAAE,CAAC;YAClH,MAAM,IAAI,SAAS,CAAC,yCAAyC,CAAC,CAAC;QACjE,CAAC;QAED,IAAI,CAAC,yBAAyB,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;YAC7C,MAAM,IAAI,YAAY,CAAC,UAAU,MAAM,CAAC,KAAK,oBAAoB,EAAE,mBAAmB,CAAC,CAAC;QAC1F,CAAC;QAED,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;YACrB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACvB,CAAC;QAED,IAAI,CAAC,OAAO,GAAG,EAAE,GAAG,MAAM,EAAE,CAAC;QAC7B,IAAI,CAAC,MAAM,GAAG,YAAY,CAAC;QAC3B,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;QACrB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;QACzB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,mBAAmB,GAAG,MAAM,CAAC,oBAAoB,IAAI,eAAe,CAAC;IAC5E,CAAC;IAED,MAAM,CAAC,KAAiB,EAAE,OAAmC;QAC3D,IAAI,IAAI,CAAC,MAAM,KAAK,YAAY,EAAE,CAAC;YACjC,MAAM,IAAI,YAAY,CAAC,2BAA2B,EAAE,mBAAmB,CAAC,CAAC;QAC3E,CAAC;QAED,IAAI,CAAC,CAAC,KAAK,YAAY,UAAU,CAAC,EAAE,CAAC;YACnC,MAAM,IAAI,SAAS,CAAC,4BAA4B,CAAC,CAAC;QACpD,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;YAClB,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC,mCAAmC,CAAC,CAAC,CAAC;YAC5E,OAAO;QACT,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnB,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,MAAM,CAAC;YACjC,MAAM,SAAS,GAAG,mBAAmB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YACpD,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;QAChC,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,EAAE,CAAC;YAC9B,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC,gCAAgC,CAAC,CAAC,CAAC;YACzE,OAAO;QACT,CAAC;QAED,IAAI,KAAK,CAAC,MAAM,KAAK,IAAI,CAAC,YAAY,EAAE,CAAC;YACvC,IAAI,CAAC,kBAAkB,CAAC,aAAa,CACnC,mCAAmC,IAAI,CAAC,YAAY,SAAS,KAAK,CAAC,MAAM,8CAA8C,CACxH,CAAC,CAAC;YACH,OAAO;QACT,CAAC;QAED,4DAA4D;QAC5D,IAAI,IAAI,CAAC,gBAAgB,IAAI,cAAc,EAAE,CAAC;YAC5C,IAAI,CAAC,kBAAkB,CAAC,IAAI,YAAY,CACtC,4BAA4B,cAAc,wEAAwE,EAClH,oBAAoB,CACrB,CAAC,CAAC;YACH,OAAO;QACT,CAAC;QAED,MAAM,QAAQ,GAAG,OAAO,EAAE,QAAQ,IAAI,CAAC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,iBAAiB,KAAK,CAAC,CAAC,CAAC;QAExF,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACxB,IAAI,CAAC,WAAW,EAAE,CAAC;QAEnB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;YACvB,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,QAAQ;SACT,CAAC,CAAC;QAEH,MAAM,WAAW,GAAI,KAAa,CAAC,OAAO,IAAI,IAAI,CAAC;QACnD,MAAM,YAAY,GAAG,WAAW;YAC9B,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,WAAW,CAAC;YACvC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACvC,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC,CAAC;YAC/D,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,CAAC;YAC1B,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC,uCAAuC,CAAC,CAAC,CAAC;QAClF,CAAC;IACH,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,UAAkB,qBAAqB;QACjD,IAAI,IAAI,CAAC,MAAM,KAAK,YAAY,EAAE,CAAC;YACjC,MAAM,IAAI,YAAY,CAAC,2BAA2B,EAAE,mBAAmB,CAAC,CAAC;QAC3E,CAAC;QAED,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACnB,OAAO,EAAE,CAAC;gBACV,OAAO;YACT,CAAC;YAED,IAAI,SAAS,GAA0B,IAAI,CAAC;YAC5C,IAAI,QAAQ,GAAG,KAAK,CAAC;YAErB,MAAM,OAAO,GAAG,GAAG,EAAE;gBACnB,IAAI,SAAS,EAAE,CAAC;oBACd,YAAY,CAAC,SAAS,CAAC,CAAC;oBACxB,SAAS,GAAG,IAAI,CAAC;gBACnB,CAAC;YACH,CAAC,CAAC;YAEF,MAAM,SAAS,GAAG,GAAG,EAAE;gBACrB,IAAI,QAAQ;oBAAE,OAAO;gBACrB,QAAQ,GAAG,IAAI,CAAC;gBAChB,OAAO,EAAE,CAAC;gBACV,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC;gBAC1B,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;gBACzB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;gBACrB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;gBACzB,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;gBACrB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;gBACxB,OAAO,EAAE,CAAC;YACZ,CAAC,CAAC;YAEF,MAAM,QAAQ,GAAG,CAAC,GAAU,EAAE,EAAE;gBAC9B,IAAI,QAAQ;oBAAE,OAAO;gBACrB,QAAQ,GAAG,IAAI,CAAC;gBAChB,OAAO,EAAE,CAAC;gBACV,MAAM,CAAC,GAAG,CAAC,CAAC;YACd,CAAC,CAAC;YAEF,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE;gBAC1B,QAAQ,CAAC,IAAI,YAAY,CAAC,2BAA2B,EAAE,cAAc,CAAC,CAAC,CAAC;YAC1E,CAAC,EAAE,OAAO,CAAC,CAAC;YAEZ,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;YACpB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;YACvC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK;QACH,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC7B,MAAM,IAAI,YAAY,CAAC,mBAAmB,EAAE,mBAAmB,CAAC,CAAC;QACnE,CAAC;QAED,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,IAAI,CAAC,MAAM,GAAG,cAAc,CAAC;QAC7B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC;QAC1B,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;QACzB,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;QACrB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;IAC3B,CAAC;IAED,KAAK;QACH,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ;YAAE,OAAO;QAErC,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC;QACvB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC;QAC1B,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;IAC3B,CAAC;IAEO,aAAa,CAAC,WAAoB;QACxC,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO;QAE1B,MAAM,SAAS,GAAG,WAAW,IAAI,SAAS,CAAC;QAC3C,IAAI,CAAC,QAAQ,GAAG,IAAI,kBAAkB,EAAE,CAAC;QAEzC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC;YACzB,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK;YACzB,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK;YACzB,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM;YAC3B,gBAAgB,EAAE,SAAS;YAC3B,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS;YACjC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO;YAC7B,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,WAAW;YACrC,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,WAAW;YACrC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK;YACzB,oBAAoB,EAAE,IAAI,CAAC,mBAAmB;SAC/C,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,cAAc,EAAE,CAAC,KAA6D,EAAE,EAAE;YACjG,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;QAClC,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,eAAe,EAAE,GAAG,EAAE;YACrC,wEAAwE;YACxE,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC,CAAC;YAC/D,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC3B,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAU,EAAE,EAAE;YACvC,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,YAAY;QAClB,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;YACrB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACvB,CAAC;IACH,CAAC;IAEO,mBAAmB,CAAC,KAAmF;QAC7G,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO;QAE1B,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC;QAC9C,MAAM,QAAQ,GAAG,SAAS,EAAE,QAAQ,IAAI,SAAS,CAAC;QAElD,4EAA4E;QAC5E,uEAAuE;QACvE,IAAI,SAAiB,CAAC;QACtB,IAAI,SAAS,EAAE,SAAS,KAAK,SAAS,EAAE,CAAC;YACvC,SAAS,GAAG,SAAS,CAAC,SAAS,CAAC;QAClC,CAAC;aAAM,CAAC;YACN,8CAA8C;YAC9C,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,EAAE,CAAC;YAC/C,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC,GAAG,SAAS,CAAC,CAAC;QACpE,CAAC;QAED,mCAAmC;QACnC,+EAA+E;QAC/E,6EAA6E;QAC7E,2EAA2E;QAC3E,6EAA6E;QAC7E,MAAM,UAAU,GAAG,KAAK,CAAC,QAAQ,IAAI,CAAC,SAAS,EAAE,QAAQ,IAAI,KAAK,CAAC,CAAC;QAEpE,MAAM,KAAK,GAAG,IAAI,iBAAiB,CAAC;YAClC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAgC;YAC3D,SAAS;YACT,QAAQ;YACR,IAAI,EAAE,IAAI,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC;SACjC,CAAC,CAAC;QAEH,yDAAyD;QACzD,MAAM,QAAQ,GAA2C,IAAI,CAAC,WAAW;YACvE,CAAC,CAAC;gBACE,aAAa,EAAE;oBACb,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK;oBACzB,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK;oBAC9B,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM;oBAChC,WAAW,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS;iBAC/E;aACF;YACH,CAAC,CAAC,SAAS,CAAC;QAEd,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QACzB,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IAC5C,CAAC;CAEF"}
|
|
1
|
+
{"version":3,"file":"VideoEncoder.js","sourceRoot":"","sources":["../../src/encoders/VideoEncoder.ts"],"names":[],"mappings":"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"}
|
package/dist/encoders/index.d.ts
CHANGED
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
export { VideoEncoder, type VideoEncoderConfig, type VideoEncoderInit, type VideoEncoderOutputMetadata, type VideoEncoderSupport, type VideoEncoderEncodeOptions, } from './VideoEncoder.js';
|
|
5
5
|
export { AudioEncoder, type AudioEncoderConfig, type AudioEncoderInit, type AudioEncoderOutputMetadata, type AudioEncoderSupport, } from './AudioEncoder.js';
|
|
6
|
+
export { ImageEncoder, type ImageEncoderOptions, type ImageEncoderResult, type ImageEncoderOutputType, } from './ImageEncoder.js';
|
|
6
7
|
export type { CodecState } from './VideoEncoder.js';
|
|
7
8
|
export * from './codecs/index.js';
|
|
8
9
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/encoders/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACL,YAAY,EACZ,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,EACrB,KAAK,0BAA0B,EAC/B,KAAK,mBAAmB,EACxB,KAAK,yBAAyB,GAC/B,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,YAAY,EACZ,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,EACrB,KAAK,0BAA0B,EAC/B,KAAK,mBAAmB,GACzB,MAAM,mBAAmB,CAAC;AAE3B,YAAY,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAGpD,cAAc,mBAAmB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/encoders/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACL,YAAY,EACZ,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,EACrB,KAAK,0BAA0B,EAC/B,KAAK,mBAAmB,EACxB,KAAK,yBAAyB,GAC/B,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,YAAY,EACZ,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,EACrB,KAAK,0BAA0B,EAC/B,KAAK,mBAAmB,GACzB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,YAAY,EACZ,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EACvB,KAAK,sBAAsB,GAC5B,MAAM,mBAAmB,CAAC;AAE3B,YAAY,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAGpD,cAAc,mBAAmB,CAAC"}
|
package/dist/encoders/index.js
CHANGED
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
export { VideoEncoder, } from './VideoEncoder.js';
|
|
5
5
|
export { AudioEncoder, } from './AudioEncoder.js';
|
|
6
|
+
export { ImageEncoder, } from './ImageEncoder.js';
|
|
6
7
|
// Codec-specific configurations
|
|
7
8
|
export * from './codecs/index.js';
|
|
8
9
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/encoders/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACL,YAAY,GAMb,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,YAAY,GAKb,MAAM,mBAAmB,CAAC;AAI3B,gCAAgC;AAChC,cAAc,mBAAmB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/encoders/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACL,YAAY,GAMb,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,YAAY,GAKb,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,YAAY,GAIb,MAAM,mBAAmB,CAAC;AAI3B,gCAAgC;AAChC,cAAc,mBAAmB,CAAC"}
|
|
@@ -12,6 +12,64 @@ export declare function rgbaToYuv(r: number, g: number, b: number): [number, num
|
|
|
12
12
|
* @returns [R, G, B, A] values in range 0-255
|
|
13
13
|
*/
|
|
14
14
|
export declare function yuvToRgba(y: number, u: number, v: number): [number, number, number, number];
|
|
15
|
+
/**
|
|
16
|
+
* SMPTE ST 2086 Mastering Display Metadata
|
|
17
|
+
* Describes the color volume of the mastering display
|
|
18
|
+
*/
|
|
19
|
+
export interface SmpteSt2086Metadata {
|
|
20
|
+
/**
|
|
21
|
+
* CIE 1931 xy chromaticity coordinates of the display primaries
|
|
22
|
+
* Values are in range [0, 1] with 0.00002 precision
|
|
23
|
+
*/
|
|
24
|
+
primaryRChromaticityX: number;
|
|
25
|
+
primaryRChromaticityY: number;
|
|
26
|
+
primaryGChromaticityX: number;
|
|
27
|
+
primaryGChromaticityY: number;
|
|
28
|
+
primaryBChromaticityX: number;
|
|
29
|
+
primaryBChromaticityY: number;
|
|
30
|
+
/**
|
|
31
|
+
* CIE 1931 xy chromaticity coordinates of the white point
|
|
32
|
+
*/
|
|
33
|
+
whitePointChromaticityX: number;
|
|
34
|
+
whitePointChromaticityY: number;
|
|
35
|
+
/**
|
|
36
|
+
* Maximum luminance of the display in cd/m² (nits)
|
|
37
|
+
*/
|
|
38
|
+
maxLuminance: number;
|
|
39
|
+
/**
|
|
40
|
+
* Minimum luminance of the display in cd/m² (nits)
|
|
41
|
+
*/
|
|
42
|
+
minLuminance: number;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Content Light Level Information
|
|
46
|
+
* Describes the light level of the content itself
|
|
47
|
+
*/
|
|
48
|
+
export interface ContentLightLevelInfo {
|
|
49
|
+
/**
|
|
50
|
+
* Maximum Content Light Level in cd/m² (nits)
|
|
51
|
+
* The maximum light level of any single pixel in the content
|
|
52
|
+
*/
|
|
53
|
+
maxCLL: number;
|
|
54
|
+
/**
|
|
55
|
+
* Maximum Frame-Average Light Level in cd/m² (nits)
|
|
56
|
+
* The maximum average light level of any frame in the content
|
|
57
|
+
*/
|
|
58
|
+
maxFALL: number;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* HDR Metadata combining mastering display and content light level info
|
|
62
|
+
*/
|
|
63
|
+
export interface HdrMetadata {
|
|
64
|
+
/**
|
|
65
|
+
* SMPTE ST 2086 mastering display metadata
|
|
66
|
+
*/
|
|
67
|
+
smpteSt2086?: SmpteSt2086Metadata;
|
|
68
|
+
/**
|
|
69
|
+
* Content light level information
|
|
70
|
+
*/
|
|
71
|
+
contentLightLevel?: ContentLightLevelInfo;
|
|
72
|
+
}
|
|
15
73
|
/**
|
|
16
74
|
* Video color space initialization options
|
|
17
75
|
*/
|
|
@@ -20,6 +78,11 @@ export interface VideoColorSpaceInit {
|
|
|
20
78
|
transfer?: 'bt709' | 'smpte170m' | 'iec61966-2-1' | 'linear' | 'pq' | 'hlg';
|
|
21
79
|
matrix?: 'rgb' | 'bt709' | 'bt470bg' | 'smpte170m' | 'bt2020-ncl';
|
|
22
80
|
fullRange?: boolean;
|
|
81
|
+
/**
|
|
82
|
+
* HDR metadata (SMPTE ST 2086 and/or Content Light Level)
|
|
83
|
+
* Only meaningful when transfer is 'pq' or 'hlg'
|
|
84
|
+
*/
|
|
85
|
+
hdrMetadata?: HdrMetadata;
|
|
23
86
|
}
|
|
24
87
|
/**
|
|
25
88
|
* VideoColorSpace - describes the color space of video content
|
|
@@ -29,7 +92,32 @@ export declare class VideoColorSpace {
|
|
|
29
92
|
readonly transfer: string | null;
|
|
30
93
|
readonly matrix: string | null;
|
|
31
94
|
readonly fullRange: boolean | null;
|
|
95
|
+
readonly hdrMetadata: HdrMetadata | null;
|
|
32
96
|
constructor(init?: VideoColorSpaceInit);
|
|
97
|
+
/**
|
|
98
|
+
* Check if this color space represents HDR content
|
|
99
|
+
*/
|
|
100
|
+
get isHdr(): boolean;
|
|
101
|
+
/**
|
|
102
|
+
* Check if HDR metadata is available
|
|
103
|
+
*/
|
|
104
|
+
get hasHdrMetadata(): boolean;
|
|
33
105
|
toJSON(): VideoColorSpaceInit;
|
|
34
106
|
}
|
|
107
|
+
/**
|
|
108
|
+
* Common HDR10 display primaries (DCI-P3 D65)
|
|
109
|
+
*/
|
|
110
|
+
export declare const HDR10_DISPLAY_PRIMARIES: Pick<SmpteSt2086Metadata, 'primaryRChromaticityX' | 'primaryRChromaticityY' | 'primaryGChromaticityX' | 'primaryGChromaticityY' | 'primaryBChromaticityX' | 'primaryBChromaticityY' | 'whitePointChromaticityX' | 'whitePointChromaticityY'>;
|
|
111
|
+
/**
|
|
112
|
+
* Create a typical HDR10 mastering display metadata
|
|
113
|
+
* @param maxLuminance Maximum luminance in nits (typical: 1000-10000)
|
|
114
|
+
* @param minLuminance Minimum luminance in nits (typical: 0.0001-0.05)
|
|
115
|
+
*/
|
|
116
|
+
export declare function createHdr10MasteringMetadata(maxLuminance: number, minLuminance?: number): SmpteSt2086Metadata;
|
|
117
|
+
/**
|
|
118
|
+
* Create content light level info
|
|
119
|
+
* @param maxCLL Maximum Content Light Level in nits
|
|
120
|
+
* @param maxFALL Maximum Frame-Average Light Level in nits
|
|
121
|
+
*/
|
|
122
|
+
export declare function createContentLightLevel(maxCLL: number, maxFALL: number): ContentLightLevelInfo;
|
|
35
123
|
//# sourceMappingURL=color-space.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"color-space.d.ts","sourceRoot":"","sources":["../../src/formats/color-space.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;GAGG;AACH,wBAAgB,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAUnF;AAED;;;GAGG;AACH,wBAAgB,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAgB3F;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,SAAS,CAAC,EAAE,OAAO,GAAG,SAAS,GAAG,WAAW,GAAG,QAAQ,GAAG,UAAU,CAAC;IACtE,QAAQ,CAAC,EAAE,OAAO,GAAG,WAAW,GAAG,cAAc,GAAG,QAAQ,GAAG,IAAI,GAAG,KAAK,CAAC;IAC5E,MAAM,CAAC,EAAE,KAAK,GAAG,OAAO,GAAG,SAAS,GAAG,WAAW,GAAG,YAAY,CAAC;IAClE,SAAS,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"color-space.d.ts","sourceRoot":"","sources":["../../src/formats/color-space.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;GAGG;AACH,wBAAgB,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAUnF;AAED;;;GAGG;AACH,wBAAgB,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAgB3F;AAED;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IAClC;;;OAGG;IACH,qBAAqB,EAAE,MAAM,CAAC;IAC9B,qBAAqB,EAAE,MAAM,CAAC;IAC9B,qBAAqB,EAAE,MAAM,CAAC;IAC9B,qBAAqB,EAAE,MAAM,CAAC;IAC9B,qBAAqB,EAAE,MAAM,CAAC;IAC9B,qBAAqB,EAAE,MAAM,CAAC;IAE9B;;OAEG;IACH,uBAAuB,EAAE,MAAM,CAAC;IAChC,uBAAuB,EAAE,MAAM,CAAC;IAEhC;;OAEG;IACH,YAAY,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;;GAGG;AACH,MAAM,WAAW,qBAAqB;IACpC;;;OAGG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;;OAGG;IACH,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B;;OAEG;IACH,WAAW,CAAC,EAAE,mBAAmB,CAAC;IAElC;;OAEG;IACH,iBAAiB,CAAC,EAAE,qBAAqB,CAAC;CAC3C;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,SAAS,CAAC,EAAE,OAAO,GAAG,SAAS,GAAG,WAAW,GAAG,QAAQ,GAAG,UAAU,CAAC;IACtE,QAAQ,CAAC,EAAE,OAAO,GAAG,WAAW,GAAG,cAAc,GAAG,QAAQ,GAAG,IAAI,GAAG,KAAK,CAAC;IAC5E,MAAM,CAAC,EAAE,KAAK,GAAG,OAAO,GAAG,SAAS,GAAG,WAAW,GAAG,YAAY,CAAC;IAClE,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;OAGG;IACH,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B;AAED;;GAEG;AACH,qBAAa,eAAe;IAC1B,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,QAAQ,CAAC,SAAS,EAAE,OAAO,GAAG,IAAI,CAAC;IACnC,QAAQ,CAAC,WAAW,EAAE,WAAW,GAAG,IAAI,CAAC;gBAE7B,IAAI,CAAC,EAAE,mBAAmB;IAQtC;;OAEG;IACH,IAAI,KAAK,IAAI,OAAO,CAEnB;IAED;;OAEG;IACH,IAAI,cAAc,IAAI,OAAO,CAK5B;IAED,MAAM,IAAI,mBAAmB;CAY9B;AAED;;GAEG;AACH,eAAO,MAAM,uBAAuB,EAAE,IAAI,CACxC,mBAAmB,EACnB,uBAAuB,GAAG,uBAAuB,GACjD,uBAAuB,GAAG,uBAAuB,GACjD,uBAAuB,GAAG,uBAAuB,GACjD,yBAAyB,GAAG,yBAAyB,CAYtD,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,4BAA4B,CAC1C,YAAY,EAAE,MAAM,EACpB,YAAY,GAAE,MAAe,GAC5B,mBAAmB,CAMrB;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,GACd,qBAAqB,CAEvB"}
|
|
@@ -44,19 +44,73 @@ export class VideoColorSpace {
|
|
|
44
44
|
transfer;
|
|
45
45
|
matrix;
|
|
46
46
|
fullRange;
|
|
47
|
+
hdrMetadata;
|
|
47
48
|
constructor(init) {
|
|
48
49
|
this.primaries = init?.primaries ?? null;
|
|
49
50
|
this.transfer = init?.transfer ?? null;
|
|
50
51
|
this.matrix = init?.matrix ?? null;
|
|
51
52
|
this.fullRange = init?.fullRange ?? null;
|
|
53
|
+
this.hdrMetadata = init?.hdrMetadata ?? null;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Check if this color space represents HDR content
|
|
57
|
+
*/
|
|
58
|
+
get isHdr() {
|
|
59
|
+
return this.transfer === 'pq' || this.transfer === 'hlg';
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Check if HDR metadata is available
|
|
63
|
+
*/
|
|
64
|
+
get hasHdrMetadata() {
|
|
65
|
+
return this.hdrMetadata !== null && (this.hdrMetadata.smpteSt2086 !== undefined ||
|
|
66
|
+
this.hdrMetadata.contentLightLevel !== undefined);
|
|
52
67
|
}
|
|
53
68
|
toJSON() {
|
|
54
|
-
|
|
69
|
+
const result = {
|
|
55
70
|
primaries: this.primaries,
|
|
56
71
|
transfer: this.transfer,
|
|
57
72
|
matrix: this.matrix,
|
|
58
73
|
fullRange: this.fullRange ?? undefined,
|
|
59
74
|
};
|
|
75
|
+
if (this.hdrMetadata) {
|
|
76
|
+
result.hdrMetadata = this.hdrMetadata;
|
|
77
|
+
}
|
|
78
|
+
return result;
|
|
60
79
|
}
|
|
61
80
|
}
|
|
81
|
+
/**
|
|
82
|
+
* Common HDR10 display primaries (DCI-P3 D65)
|
|
83
|
+
*/
|
|
84
|
+
export const HDR10_DISPLAY_PRIMARIES = {
|
|
85
|
+
// BT.2020 / Rec. 2020 primaries
|
|
86
|
+
primaryRChromaticityX: 0.708,
|
|
87
|
+
primaryRChromaticityY: 0.292,
|
|
88
|
+
primaryGChromaticityX: 0.170,
|
|
89
|
+
primaryGChromaticityY: 0.797,
|
|
90
|
+
primaryBChromaticityX: 0.131,
|
|
91
|
+
primaryBChromaticityY: 0.046,
|
|
92
|
+
// D65 white point
|
|
93
|
+
whitePointChromaticityX: 0.3127,
|
|
94
|
+
whitePointChromaticityY: 0.3290,
|
|
95
|
+
};
|
|
96
|
+
/**
|
|
97
|
+
* Create a typical HDR10 mastering display metadata
|
|
98
|
+
* @param maxLuminance Maximum luminance in nits (typical: 1000-10000)
|
|
99
|
+
* @param minLuminance Minimum luminance in nits (typical: 0.0001-0.05)
|
|
100
|
+
*/
|
|
101
|
+
export function createHdr10MasteringMetadata(maxLuminance, minLuminance = 0.0001) {
|
|
102
|
+
return {
|
|
103
|
+
...HDR10_DISPLAY_PRIMARIES,
|
|
104
|
+
maxLuminance,
|
|
105
|
+
minLuminance,
|
|
106
|
+
};
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Create content light level info
|
|
110
|
+
* @param maxCLL Maximum Content Light Level in nits
|
|
111
|
+
* @param maxFALL Maximum Frame-Average Light Level in nits
|
|
112
|
+
*/
|
|
113
|
+
export function createContentLightLevel(maxCLL, maxFALL) {
|
|
114
|
+
return { maxCLL, maxFALL };
|
|
115
|
+
}
|
|
62
116
|
//# sourceMappingURL=color-space.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"color-space.js","sourceRoot":"","sources":["../../src/formats/color-space.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;GAGG;AACH,MAAM,UAAU,SAAS,CAAC,CAAS,EAAE,CAAS,EAAE,CAAS;IACvD,sBAAsB;IACtB,MAAM,CAAC,GAAG,MAAM,GAAG,CAAC,GAAG,MAAM,GAAG,CAAC,GAAG,MAAM,GAAG,CAAC,CAAC;IAC/C,MAAM,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,GAAG,MAAM,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC;IACnD,MAAM,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,MAAM,GAAG,CAAC,GAAG,MAAM,GAAG,CAAC,GAAG,GAAG,CAAC;IAClD,OAAO;QACL,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACzC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACzC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;KAC1C,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,SAAS,CAAC,CAAS,EAAE,CAAS,EAAE,CAAS;IACvD,8BAA8B;IAC9B,MAAM,CAAC,GAAG,CAAC,CAAC;IACZ,MAAM,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;IAClB,MAAM,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;IAElB,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,GAAG,CAAC,CAAC;IACzB,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,GAAG,CAAC,GAAG,MAAM,GAAG,CAAC,CAAC;IACtC,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,GAAG,CAAC,CAAC;IAEzB,OAAO;QACL,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACzC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACzC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACzC,GAAG;KACJ,CAAC;AACJ,CAAC;
|
|
1
|
+
{"version":3,"file":"color-space.js","sourceRoot":"","sources":["../../src/formats/color-space.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Pixel format definitions and utilities
|
|
3
3
|
*/
|
|
4
|
-
export type VideoPixelFormat = 'I420' | 'I420A' | 'I422' | 'I444' | 'NV12' | 'RGBA' | 'RGBX' | 'BGRA' | 'BGRX';
|
|
4
|
+
export type VideoPixelFormat = 'I420' | 'I420A' | 'I422' | 'I444' | 'NV12' | 'RGBA' | 'RGBX' | 'BGRA' | 'BGRX' | 'I420P10' | 'I422P10' | 'I444P10' | 'P010';
|
|
5
5
|
/**
|
|
6
6
|
* Information about a single plane in a pixel format
|
|
7
7
|
*/
|
|
@@ -38,4 +38,20 @@ export declare function isBgrFormat(format: VideoPixelFormat): boolean;
|
|
|
38
38
|
* Check if a format has an alpha channel
|
|
39
39
|
*/
|
|
40
40
|
export declare function hasAlphaChannel(format: VideoPixelFormat): boolean;
|
|
41
|
+
/**
|
|
42
|
+
* Check if a format is 10-bit (high bit depth)
|
|
43
|
+
*/
|
|
44
|
+
export declare function is10BitFormat(format: VideoPixelFormat): boolean;
|
|
45
|
+
/**
|
|
46
|
+
* Get the bit depth for a format (8 or 10)
|
|
47
|
+
*/
|
|
48
|
+
export declare function getBitDepth(format: VideoPixelFormat): number;
|
|
49
|
+
/**
|
|
50
|
+
* Get the 8-bit equivalent of a 10-bit format
|
|
51
|
+
*/
|
|
52
|
+
export declare function get8BitEquivalent(format: VideoPixelFormat): VideoPixelFormat;
|
|
53
|
+
/**
|
|
54
|
+
* Get the 10-bit equivalent of an 8-bit format
|
|
55
|
+
*/
|
|
56
|
+
export declare function get10BitEquivalent(format: VideoPixelFormat): VideoPixelFormat;
|
|
41
57
|
//# sourceMappingURL=pixel-formats.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pixel-formats.d.ts","sourceRoot":"","sources":["../../src/formats/pixel-formats.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,MAAM,gBAAgB,GACxB,MAAM,GACN,OAAO,GACP,MAAM,GACN,MAAM,GACN,MAAM,GACN,MAAM,GACN,MAAM,GACN,MAAM,GACN,MAAM,CAAC;AAEX;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,gBAAgB,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"pixel-formats.d.ts","sourceRoot":"","sources":["../../src/formats/pixel-formats.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,MAAM,gBAAgB,GACxB,MAAM,GACN,OAAO,GACP,MAAM,GACN,MAAM,GACN,MAAM,GACN,MAAM,GACN,MAAM,GACN,MAAM,GACN,MAAM,GAEN,SAAS,GACT,SAAS,GACT,SAAS,GACT,MAAM,CAAC;AAEX;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,gBAAgB,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAyCtG;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,gBAAgB,GAAG,MAAM,CAsB9D;AAED;;GAEG;AACH,wBAAgB,YAAY,CAC1B,MAAM,EAAE,gBAAgB,EACxB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,GACjB,SAAS,CAuCX;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAE7D;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAE7D;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAE7D;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAEjE;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAE/D;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,gBAAgB,GAAG,MAAM,CAE5D;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,gBAAgB,GAAG,gBAAgB,CAQ5E;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,gBAAgB,GAAG,gBAAgB,CAQ7E"}
|
|
@@ -5,22 +5,37 @@
|
|
|
5
5
|
* Calculate total allocation size for a frame
|
|
6
6
|
*/
|
|
7
7
|
export function getFrameAllocationSize(format, width, height) {
|
|
8
|
+
const chromaW = Math.ceil(width / 2);
|
|
9
|
+
const chromaH = Math.ceil(height / 2);
|
|
8
10
|
switch (format) {
|
|
9
11
|
case 'I420':
|
|
10
12
|
// Y: width * height, U: (width/2) * (height/2), V: (width/2) * (height/2)
|
|
11
|
-
return width * height + 2 *
|
|
13
|
+
return width * height + 2 * chromaW * chromaH;
|
|
12
14
|
case 'I420A':
|
|
13
15
|
// I420 + Alpha plane (width * height)
|
|
14
|
-
return width * height * 2 + 2 *
|
|
16
|
+
return width * height * 2 + 2 * chromaW * chromaH;
|
|
15
17
|
case 'I422':
|
|
16
18
|
// Y: width * height, U: (width/2) * height, V: (width/2) * height
|
|
17
|
-
return width * height + 2 *
|
|
19
|
+
return width * height + 2 * chromaW * height;
|
|
18
20
|
case 'I444':
|
|
19
21
|
// Y: width * height, U: width * height, V: width * height
|
|
20
22
|
return width * height * 3;
|
|
21
23
|
case 'NV12':
|
|
22
24
|
// Y: width * height, UV interleaved: width * (height/2)
|
|
23
|
-
return width * height + width *
|
|
25
|
+
return width * height + width * chromaH;
|
|
26
|
+
// 10-bit formats: 2 bytes per sample (16-bit container)
|
|
27
|
+
case 'I420P10':
|
|
28
|
+
// Y: width * height * 2, U: chromaW * chromaH * 2, V: chromaW * chromaH * 2
|
|
29
|
+
return (width * height + 2 * chromaW * chromaH) * 2;
|
|
30
|
+
case 'I422P10':
|
|
31
|
+
// Y: width * height * 2, U: chromaW * height * 2, V: chromaW * height * 2
|
|
32
|
+
return (width * height + 2 * chromaW * height) * 2;
|
|
33
|
+
case 'I444P10':
|
|
34
|
+
// Y, U, V all full size, 2 bytes each
|
|
35
|
+
return width * height * 3 * 2;
|
|
36
|
+
case 'P010':
|
|
37
|
+
// Y: width * height * 2, UV interleaved: width * chromaH * 2
|
|
38
|
+
return (width * height + width * chromaH) * 2;
|
|
24
39
|
case 'RGBA':
|
|
25
40
|
case 'RGBX':
|
|
26
41
|
case 'BGRA':
|
|
@@ -38,10 +53,14 @@ export function getPlaneCount(format) {
|
|
|
38
53
|
case 'I420':
|
|
39
54
|
case 'I422':
|
|
40
55
|
case 'I444':
|
|
56
|
+
case 'I420P10':
|
|
57
|
+
case 'I422P10':
|
|
58
|
+
case 'I444P10':
|
|
41
59
|
return 3; // Y, U, V
|
|
42
60
|
case 'I420A':
|
|
43
61
|
return 4; // Y, U, V, A
|
|
44
62
|
case 'NV12':
|
|
63
|
+
case 'P010':
|
|
45
64
|
return 2; // Y, UV interleaved
|
|
46
65
|
case 'RGBA':
|
|
47
66
|
case 'RGBX':
|
|
@@ -77,6 +96,21 @@ export function getPlaneInfo(format, width, height, planeIndex) {
|
|
|
77
96
|
if (planeIndex === 0)
|
|
78
97
|
return { width, height, bytesPerPixel: 1 };
|
|
79
98
|
return { width, height: chromaH, bytesPerPixel: 2 }; // UV interleaved
|
|
99
|
+
// 10-bit formats: 2 bytes per sample
|
|
100
|
+
case 'I420P10':
|
|
101
|
+
if (planeIndex === 0)
|
|
102
|
+
return { width, height, bytesPerPixel: 2 };
|
|
103
|
+
return { width: chromaW, height: chromaH, bytesPerPixel: 2 };
|
|
104
|
+
case 'I422P10':
|
|
105
|
+
if (planeIndex === 0)
|
|
106
|
+
return { width, height, bytesPerPixel: 2 };
|
|
107
|
+
return { width: chromaW, height, bytesPerPixel: 2 };
|
|
108
|
+
case 'I444P10':
|
|
109
|
+
return { width, height, bytesPerPixel: 2 };
|
|
110
|
+
case 'P010':
|
|
111
|
+
if (planeIndex === 0)
|
|
112
|
+
return { width, height, bytesPerPixel: 2 };
|
|
113
|
+
return { width, height: chromaH, bytesPerPixel: 4 }; // UV interleaved, 2 bytes each
|
|
80
114
|
case 'RGBA':
|
|
81
115
|
case 'RGBX':
|
|
82
116
|
case 'BGRA':
|
|
@@ -110,4 +144,40 @@ export function isBgrFormat(format) {
|
|
|
110
144
|
export function hasAlphaChannel(format) {
|
|
111
145
|
return format === 'RGBA' || format === 'BGRA' || format === 'I420A';
|
|
112
146
|
}
|
|
147
|
+
/**
|
|
148
|
+
* Check if a format is 10-bit (high bit depth)
|
|
149
|
+
*/
|
|
150
|
+
export function is10BitFormat(format) {
|
|
151
|
+
return format === 'I420P10' || format === 'I422P10' || format === 'I444P10' || format === 'P010';
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* Get the bit depth for a format (8 or 10)
|
|
155
|
+
*/
|
|
156
|
+
export function getBitDepth(format) {
|
|
157
|
+
return is10BitFormat(format) ? 10 : 8;
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* Get the 8-bit equivalent of a 10-bit format
|
|
161
|
+
*/
|
|
162
|
+
export function get8BitEquivalent(format) {
|
|
163
|
+
switch (format) {
|
|
164
|
+
case 'I420P10': return 'I420';
|
|
165
|
+
case 'I422P10': return 'I422';
|
|
166
|
+
case 'I444P10': return 'I444';
|
|
167
|
+
case 'P010': return 'NV12';
|
|
168
|
+
default: return format;
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
/**
|
|
172
|
+
* Get the 10-bit equivalent of an 8-bit format
|
|
173
|
+
*/
|
|
174
|
+
export function get10BitEquivalent(format) {
|
|
175
|
+
switch (format) {
|
|
176
|
+
case 'I420': return 'I420P10';
|
|
177
|
+
case 'I422': return 'I422P10';
|
|
178
|
+
case 'I444': return 'I444P10';
|
|
179
|
+
case 'NV12': return 'P010';
|
|
180
|
+
default: return format;
|
|
181
|
+
}
|
|
182
|
+
}
|
|
113
183
|
//# sourceMappingURL=pixel-formats.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pixel-formats.js","sourceRoot":"","sources":["../../src/formats/pixel-formats.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"pixel-formats.js","sourceRoot":"","sources":["../../src/formats/pixel-formats.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"detection.d.ts","sourceRoot":"","sources":["../../src/hardware/detection.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EACV,0BAA0B,EAC1B,oBAAoB,EACrB,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"detection.d.ts","sourceRoot":"","sources":["../../src/hardware/detection.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EACV,0BAA0B,EAC1B,oBAAoB,EACrB,MAAM,YAAY,CAAC;AAwIpB;;GAEG;AACH,wBAAsB,0BAA0B,IAAI,OAAO,CAAC,oBAAoB,CAAC,CAEhF;AAED;;GAEG;AACH,wBAAgB,8BAA8B,IAAI,oBAAoB,CAKrE;AAED;;GAEG;AACH,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,0BAA0B,EAAE,CAAC,CAE/E;AAED,wBAAgB,qBAAqB,IAAI,0BAA0B,EAAE,CAEpE;AAED;;GAEG;AACH,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAE3D;AAED,wBAAgB,qBAAqB,IAAI,MAAM,EAAE,CAEhD;AAED;;GAEG;AACH,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAE3D;AAED,wBAAgB,qBAAqB,IAAI,MAAM,EAAE,CAEhD;AAED;;GAEG;AACH,wBAAsB,8BAA8B,IAAI,OAAO,CAAC,MAAM,CAAC,CAgCtE;AAED;;GAEG;AACH,wBAAgB,sBAAsB,IAAI,IAAI,CAE7C"}
|
|
@@ -104,14 +104,17 @@ function buildCapabilities() {
|
|
|
104
104
|
const hwaccels = collectHwaccels();
|
|
105
105
|
capabilities.methods = hwaccels;
|
|
106
106
|
const availableEncoders = collectEncoders();
|
|
107
|
+
// Note: collectEncoders returns codec names (e.g., 'h264') not encoder names (e.g., 'h264_vaapi')
|
|
108
|
+
// So we need to check if the hwaccel method is available AND the codec is supported
|
|
107
109
|
capabilities.encoders = HARDWARE_ENCODERS.map(enc => ({
|
|
108
110
|
...enc,
|
|
109
|
-
available: availableEncoders.includes(enc.
|
|
111
|
+
available: hwaccels.includes(enc.hwaccel) && availableEncoders.includes(enc.codec),
|
|
110
112
|
}));
|
|
111
113
|
const availableDecoders = collectDecoders();
|
|
114
|
+
// Same for decoders - check hwaccel method AND codec support
|
|
112
115
|
capabilities.decoders = HARDWARE_DECODERS.map(dec => ({
|
|
113
116
|
...dec,
|
|
114
|
-
available: availableDecoders.includes(dec.
|
|
117
|
+
available: hwaccels.includes(dec.hwaccel) && availableDecoders.includes(dec.codec),
|
|
115
118
|
}));
|
|
116
119
|
capabilities.detected = true;
|
|
117
120
|
cachedCapabilities = capabilities;
|