webcodecs-node 0.5.2 → 0.7.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 +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 +58 -48
- 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 +56 -13
- 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 +58 -7
- 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 +94 -1
- package/dist/formats/color-space.d.ts.map +1 -1
- package/dist/formats/color-space.js +51 -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/codec-validation.d.ts +33 -0
- package/dist/utils/codec-validation.d.ts.map +1 -0
- package/dist/utils/codec-validation.js +247 -0
- package/dist/utils/codec-validation.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
|
@@ -10,11 +10,26 @@ import { isVideoCodecBaseSupported } from '../capabilities/index.js';
|
|
|
10
10
|
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
|
+
import { validateVideoEncoderConfig, validateVideoCodec } from '../utils/codec-validation.js';
|
|
13
14
|
const DEFAULT_FLUSH_TIMEOUT = 30000;
|
|
14
|
-
const
|
|
15
|
+
const DEFAULT_MAX_QUEUE_SIZE = 100; // Fallback if resolution unknown
|
|
16
|
+
/**
|
|
17
|
+
* Calculate optimal queue size based on resolution to limit memory usage.
|
|
18
|
+
* Target: ~250-500MB max memory for queued frames (RGBA format).
|
|
19
|
+
*/
|
|
20
|
+
function calculateMaxQueueSize(width, height) {
|
|
21
|
+
const pixels = width * height;
|
|
22
|
+
const rgbaFrameBytes = pixels * 4;
|
|
23
|
+
// Target max memory: ~300MB for queue
|
|
24
|
+
const targetMemory = 300 * 1024 * 1024;
|
|
25
|
+
const calculated = Math.floor(targetMemory / rgbaFrameBytes);
|
|
26
|
+
// Clamp between 4 (minimum for smooth operation) and 100 (legacy max)
|
|
27
|
+
return Math.max(4, Math.min(100, calculated));
|
|
28
|
+
}
|
|
15
29
|
export class VideoEncoder extends WebCodecsEventTarget {
|
|
16
30
|
_state = 'unconfigured';
|
|
17
31
|
_encodeQueueSize = 0;
|
|
32
|
+
_maxQueueSize = DEFAULT_MAX_QUEUE_SIZE;
|
|
18
33
|
_config = null;
|
|
19
34
|
_outputCallback;
|
|
20
35
|
_errorCallback;
|
|
@@ -26,6 +41,7 @@ export class VideoEncoder extends WebCodecsEventTarget {
|
|
|
26
41
|
_inputFormat = null;
|
|
27
42
|
_hardwarePreference = 'no-preference';
|
|
28
43
|
_ondequeue = null;
|
|
44
|
+
_flushPromise = null;
|
|
29
45
|
constructor(init) {
|
|
30
46
|
super();
|
|
31
47
|
if (!init || typeof init.output !== 'function') {
|
|
@@ -73,11 +89,19 @@ export class VideoEncoder extends WebCodecsEventTarget {
|
|
|
73
89
|
}
|
|
74
90
|
}
|
|
75
91
|
static async isConfigSupported(config) {
|
|
76
|
-
|
|
92
|
+
// Validate config - throws TypeError for invalid configs per spec
|
|
93
|
+
validateVideoEncoderConfig(config);
|
|
94
|
+
// Check for odd dimensions (required for YUV420)
|
|
95
|
+
if (config.width % 2 !== 0 || config.height % 2 !== 0) {
|
|
96
|
+
return { supported: false, config };
|
|
97
|
+
}
|
|
98
|
+
// Check for unreasonably large dimensions
|
|
99
|
+
if (config.width > 16384 || config.height > 16384) {
|
|
77
100
|
return { supported: false, config };
|
|
78
101
|
}
|
|
79
|
-
|
|
80
|
-
|
|
102
|
+
// Validate codec string format and check if supported
|
|
103
|
+
const codecValidation = validateVideoCodec(config.codec);
|
|
104
|
+
return { supported: codecValidation.supported, config };
|
|
81
105
|
}
|
|
82
106
|
configure(config) {
|
|
83
107
|
if (this._state === 'closed') {
|
|
@@ -95,6 +119,18 @@ export class VideoEncoder extends WebCodecsEventTarget {
|
|
|
95
119
|
if (typeof config.height !== 'number' || config.height <= 0 || !Number.isInteger(config.height)) {
|
|
96
120
|
throw new TypeError('height must be a positive integer');
|
|
97
121
|
}
|
|
122
|
+
// Validate even dimensions for hardware encoder compatibility
|
|
123
|
+
// Many hardware encoders (NVENC, QuickSync, VideoToolbox) fail silently with odd dimensions
|
|
124
|
+
if (config.width % 2 !== 0 || config.height % 2 !== 0) {
|
|
125
|
+
const oddDims = [];
|
|
126
|
+
if (config.width % 2 !== 0)
|
|
127
|
+
oddDims.push(`width=${config.width}`);
|
|
128
|
+
if (config.height % 2 !== 0)
|
|
129
|
+
oddDims.push(`height=${config.height}`);
|
|
130
|
+
throw new TypeError(`Dimensions must be even for video encoding (${oddDims.join(', ')}). ` +
|
|
131
|
+
`Most video codecs require even dimensions for YUV420 chroma subsampling. ` +
|
|
132
|
+
`Use ensureEvenDimensions() to auto-fix odd dimensions.`);
|
|
133
|
+
}
|
|
98
134
|
if (config.bitrate !== undefined && (typeof config.bitrate !== 'number' || config.bitrate <= 0)) {
|
|
99
135
|
throw new TypeError('bitrate must be a positive number');
|
|
100
136
|
}
|
|
@@ -121,11 +157,16 @@ export class VideoEncoder extends WebCodecsEventTarget {
|
|
|
121
157
|
this._pendingFrames = [];
|
|
122
158
|
this._inputFormat = null;
|
|
123
159
|
this._hardwarePreference = config.hardwareAcceleration ?? 'no-preference';
|
|
160
|
+
this._maxQueueSize = config.maxQueueSize ?? calculateMaxQueueSize(config.width, config.height);
|
|
124
161
|
}
|
|
125
162
|
encode(frame, options) {
|
|
126
163
|
if (this._state !== 'configured') {
|
|
127
164
|
throw new DOMException('Encoder is not configured', 'InvalidStateError');
|
|
128
165
|
}
|
|
166
|
+
// Prevent encoding during flush to avoid race conditions
|
|
167
|
+
if (this._flushPromise) {
|
|
168
|
+
throw new DOMException('Cannot encode while flush is pending. Wait for flush() to complete.', 'InvalidStateError');
|
|
169
|
+
}
|
|
129
170
|
if (!(frame instanceof VideoFrame)) {
|
|
130
171
|
throw new TypeError('frame must be a VideoFrame');
|
|
131
172
|
}
|
|
@@ -147,8 +188,8 @@ export class VideoEncoder extends WebCodecsEventTarget {
|
|
|
147
188
|
return;
|
|
148
189
|
}
|
|
149
190
|
// Check queue saturation to prevent unbounded memory growth
|
|
150
|
-
if (this._encodeQueueSize >=
|
|
151
|
-
this._safeErrorCallback(new DOMException(`Encoder queue saturated (${
|
|
191
|
+
if (this._encodeQueueSize >= this._maxQueueSize) {
|
|
192
|
+
this._safeErrorCallback(new DOMException(`Encoder queue saturated (${this._maxQueueSize} frames pending). Wait for dequeue events before encoding more frames.`, 'QuotaExceededError'));
|
|
152
193
|
return;
|
|
153
194
|
}
|
|
154
195
|
const keyFrame = options?.keyFrame ?? (this._frameCount % this._keyFrameInterval === 0);
|
|
@@ -173,7 +214,11 @@ export class VideoEncoder extends WebCodecsEventTarget {
|
|
|
173
214
|
if (this._state !== 'configured') {
|
|
174
215
|
throw new DOMException('Encoder is not configured', 'InvalidStateError');
|
|
175
216
|
}
|
|
176
|
-
|
|
217
|
+
// If flush is already pending, return the existing promise
|
|
218
|
+
if (this._flushPromise) {
|
|
219
|
+
return this._flushPromise;
|
|
220
|
+
}
|
|
221
|
+
this._flushPromise = new Promise((resolve, reject) => {
|
|
177
222
|
if (!this._encoder) {
|
|
178
223
|
resolve();
|
|
179
224
|
return;
|
|
@@ -197,6 +242,7 @@ export class VideoEncoder extends WebCodecsEventTarget {
|
|
|
197
242
|
this._inputFormat = null;
|
|
198
243
|
this._frameCount = 0;
|
|
199
244
|
this._firstChunk = true;
|
|
245
|
+
this._flushPromise = null;
|
|
200
246
|
resolve();
|
|
201
247
|
};
|
|
202
248
|
const doReject = (err) => {
|
|
@@ -204,6 +250,7 @@ export class VideoEncoder extends WebCodecsEventTarget {
|
|
|
204
250
|
return;
|
|
205
251
|
resolved = true;
|
|
206
252
|
cleanup();
|
|
253
|
+
this._flushPromise = null;
|
|
207
254
|
reject(err);
|
|
208
255
|
};
|
|
209
256
|
timeoutId = setTimeout(() => {
|
|
@@ -213,6 +260,7 @@ export class VideoEncoder extends WebCodecsEventTarget {
|
|
|
213
260
|
this._encoder.once('close', doResolve);
|
|
214
261
|
this._encoder.once('error', doReject);
|
|
215
262
|
});
|
|
263
|
+
return this._flushPromise;
|
|
216
264
|
}
|
|
217
265
|
reset() {
|
|
218
266
|
if (this._state === 'closed') {
|
|
@@ -226,6 +274,7 @@ export class VideoEncoder extends WebCodecsEventTarget {
|
|
|
226
274
|
this._frameCount = 0;
|
|
227
275
|
this._firstChunk = true;
|
|
228
276
|
this._inputFormat = null;
|
|
277
|
+
this._flushPromise = null;
|
|
229
278
|
}
|
|
230
279
|
close() {
|
|
231
280
|
if (this._state === 'closed')
|
|
@@ -235,6 +284,7 @@ export class VideoEncoder extends WebCodecsEventTarget {
|
|
|
235
284
|
this._config = null;
|
|
236
285
|
this._encodeQueueSize = 0;
|
|
237
286
|
this._pendingFrames = [];
|
|
287
|
+
this._flushPromise = null;
|
|
238
288
|
}
|
|
239
289
|
_startEncoder(inputFormat) {
|
|
240
290
|
if (!this._config)
|
|
@@ -252,6 +302,7 @@ export class VideoEncoder extends WebCodecsEventTarget {
|
|
|
252
302
|
latencyMode: this._config.latencyMode,
|
|
253
303
|
alpha: this._config.alpha,
|
|
254
304
|
hardwareAcceleration: this._hardwarePreference,
|
|
305
|
+
format: this._config.format,
|
|
255
306
|
});
|
|
256
307
|
this._encoder.on('encodedFrame', (frame) => {
|
|
257
308
|
this._handleEncodedFrame(frame);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VideoEncoder.js","sourceRoot":"","sources":["../../src/encoders/VideoEncoder.ts"],"names":[],"mappings":"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"}
|
|
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,37 @@ 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);
|
|
33
|
-
|
|
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;
|
|
105
|
+
toJSON(): {
|
|
106
|
+
primaries: string | null;
|
|
107
|
+
transfer: string | null;
|
|
108
|
+
matrix: string | null;
|
|
109
|
+
fullRange: boolean | null;
|
|
110
|
+
};
|
|
34
111
|
}
|
|
112
|
+
/**
|
|
113
|
+
* Common HDR10 display primaries (DCI-P3 D65)
|
|
114
|
+
*/
|
|
115
|
+
export declare const HDR10_DISPLAY_PRIMARIES: Pick<SmpteSt2086Metadata, 'primaryRChromaticityX' | 'primaryRChromaticityY' | 'primaryGChromaticityX' | 'primaryGChromaticityY' | 'primaryBChromaticityX' | 'primaryBChromaticityY' | 'whitePointChromaticityX' | 'whitePointChromaticityY'>;
|
|
116
|
+
/**
|
|
117
|
+
* Create a typical HDR10 mastering display metadata
|
|
118
|
+
* @param maxLuminance Maximum luminance in nits (typical: 1000-10000)
|
|
119
|
+
* @param minLuminance Minimum luminance in nits (typical: 0.0001-0.05)
|
|
120
|
+
*/
|
|
121
|
+
export declare function createHdr10MasteringMetadata(maxLuminance: number, minLuminance?: number): SmpteSt2086Metadata;
|
|
122
|
+
/**
|
|
123
|
+
* Create content light level info
|
|
124
|
+
* @param maxCLL Maximum Content Light Level in nits
|
|
125
|
+
* @param maxFALL Maximum Frame-Average Light Level in nits
|
|
126
|
+
*/
|
|
127
|
+
export declare function createContentLightLevel(maxCLL: number, maxFALL: number): ContentLightLevelInfo;
|
|
35
128
|
//# 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":"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"}
|
|
@@ -44,19 +44,69 @@ 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
|
return {
|
|
55
70
|
primaries: this.primaries,
|
|
56
71
|
transfer: this.transfer,
|
|
57
72
|
matrix: this.matrix,
|
|
58
|
-
fullRange: this.fullRange
|
|
73
|
+
fullRange: this.fullRange,
|
|
59
74
|
};
|
|
60
75
|
}
|
|
61
76
|
}
|
|
77
|
+
/**
|
|
78
|
+
* Common HDR10 display primaries (DCI-P3 D65)
|
|
79
|
+
*/
|
|
80
|
+
export const HDR10_DISPLAY_PRIMARIES = {
|
|
81
|
+
// BT.2020 / Rec. 2020 primaries
|
|
82
|
+
primaryRChromaticityX: 0.708,
|
|
83
|
+
primaryRChromaticityY: 0.292,
|
|
84
|
+
primaryGChromaticityX: 0.170,
|
|
85
|
+
primaryGChromaticityY: 0.797,
|
|
86
|
+
primaryBChromaticityX: 0.131,
|
|
87
|
+
primaryBChromaticityY: 0.046,
|
|
88
|
+
// D65 white point
|
|
89
|
+
whitePointChromaticityX: 0.3127,
|
|
90
|
+
whitePointChromaticityY: 0.3290,
|
|
91
|
+
};
|
|
92
|
+
/**
|
|
93
|
+
* Create a typical HDR10 mastering display metadata
|
|
94
|
+
* @param maxLuminance Maximum luminance in nits (typical: 1000-10000)
|
|
95
|
+
* @param minLuminance Minimum luminance in nits (typical: 0.0001-0.05)
|
|
96
|
+
*/
|
|
97
|
+
export function createHdr10MasteringMetadata(maxLuminance, minLuminance = 0.0001) {
|
|
98
|
+
return {
|
|
99
|
+
...HDR10_DISPLAY_PRIMARIES,
|
|
100
|
+
maxLuminance,
|
|
101
|
+
minLuminance,
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Create content light level info
|
|
106
|
+
* @param maxCLL Maximum Content Light Level in nits
|
|
107
|
+
* @param maxFALL Maximum Frame-Average Light Level in nits
|
|
108
|
+
*/
|
|
109
|
+
export function createContentLightLevel(maxCLL, maxFALL) {
|
|
110
|
+
return { maxCLL, maxFALL };
|
|
111
|
+
}
|
|
62
112
|
//# 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":"AAAA;;GAEG;AA2BH;;GAEG;AACH,MAAM,UAAU,sBAAsB,CAAC,MAAwB,EAAE,KAAa,EAAE,MAAc;IAC5F,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;IACrC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAEtC,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,MAAM;YACT,0EAA0E;YAC1E,OAAO,KAAK,GAAG,MAAM,GAAG,CAAC,GAAG,OAAO,GAAG,OAAO,CAAC;QAChD,KAAK,OAAO;YACV,sCAAsC;YACtC,OAAO,KAAK,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,GAAG,OAAO,GAAG,OAAO,CAAC;QACpD,KAAK,MAAM;YACT,kEAAkE;YAClE,OAAO,KAAK,GAAG,MAAM,GAAG,CAAC,GAAG,OAAO,GAAG,MAAM,CAAC;QAC/C,KAAK,MAAM;YACT,0DAA0D;YAC1D,OAAO,KAAK,GAAG,MAAM,GAAG,CAAC,CAAC;QAC5B,KAAK,MAAM;YACT,wDAAwD;YACxD,OAAO,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,CAAC;QAC1C,wDAAwD;QACxD,KAAK,SAAS;YACZ,4EAA4E;YAC5E,OAAO,CAAC,KAAK,GAAG,MAAM,GAAG,CAAC,GAAG,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;QACtD,KAAK,SAAS;YACZ,0EAA0E;YAC1E,OAAO,CAAC,KAAK,GAAG,MAAM,GAAG,CAAC,GAAG,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QACrD,KAAK,SAAS;YACZ,sCAAsC;YACtC,OAAO,KAAK,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC;QAChC,KAAK,MAAM;YACT,6DAA6D;YAC7D,OAAO,CAAC,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;QAChD,KAAK,MAAM,CAAC;QACZ,KAAK,MAAM,CAAC;QACZ,KAAK,MAAM,CAAC;QACZ,KAAK,MAAM;YACT,OAAO,KAAK,GAAG,MAAM,GAAG,CAAC,CAAC;QAC5B;YACE,OAAO,KAAK,GAAG,MAAM,GAAG,CAAC,CAAC,CAAC,0BAA0B;IACzD,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,MAAwB;IACpD,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,MAAM,CAAC;QACZ,KAAK,MAAM,CAAC;QACZ,KAAK,MAAM,CAAC;QACZ,KAAK,SAAS,CAAC;QACf,KAAK,SAAS,CAAC;QACf,KAAK,SAAS;YACZ,OAAO,CAAC,CAAC,CAAC,UAAU;QACtB,KAAK,OAAO;YACV,OAAO,CAAC,CAAC,CAAC,aAAa;QACzB,KAAK,MAAM,CAAC;QACZ,KAAK,MAAM;YACT,OAAO,CAAC,CAAC,CAAC,oBAAoB;QAChC,KAAK,MAAM,CAAC;QACZ,KAAK,MAAM,CAAC;QACZ,KAAK,MAAM,CAAC;QACZ,KAAK,MAAM;YACT,OAAO,CAAC,CAAC,CAAC,eAAe;QAC3B;YACE,OAAO,CAAC,CAAC;IACb,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY,CAC1B,MAAwB,EACxB,KAAa,EACb,MAAc,EACd,UAAkB;IAElB,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;IACrC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAEtC,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,MAAM;YACT,IAAI,UAAU,KAAK,CAAC;gBAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,EAAE,CAAC;YACjE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC,EAAE,CAAC;QAC/D,KAAK,OAAO;YACV,IAAI,UAAU,KAAK,CAAC,IAAI,UAAU,KAAK,CAAC;gBAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,EAAE,CAAC;YACrF,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC,EAAE,CAAC;QAC/D,KAAK,MAAM;YACT,IAAI,UAAU,KAAK,CAAC;gBAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,EAAE,CAAC;YACjE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,EAAE,CAAC;QACtD,KAAK,MAAM;YACT,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,EAAE,CAAC;QAC7C,KAAK,MAAM;YACT,IAAI,UAAU,KAAK,CAAC;gBAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,EAAE,CAAC;YACjE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC,EAAE,CAAC,CAAC,iBAAiB;QACxE,qCAAqC;QACrC,KAAK,SAAS;YACZ,IAAI,UAAU,KAAK,CAAC;gBAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,EAAE,CAAC;YACjE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC,EAAE,CAAC;QAC/D,KAAK,SAAS;YACZ,IAAI,UAAU,KAAK,CAAC;gBAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,EAAE,CAAC;YACjE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,EAAE,CAAC;QACtD,KAAK,SAAS;YACZ,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,EAAE,CAAC;QAC7C,KAAK,MAAM;YACT,IAAI,UAAU,KAAK,CAAC;gBAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,EAAE,CAAC;YACjE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC,EAAE,CAAC,CAAC,+BAA+B;QACtF,KAAK,MAAM,CAAC;QACZ,KAAK,MAAM,CAAC;QACZ,KAAK,MAAM,CAAC;QACZ,KAAK,MAAM;YACT,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,EAAE,CAAC;QAC7C;YACE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,EAAE,CAAC;IAC/C,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,MAAwB;IAClD,OAAO,MAAM,KAAK,MAAM,IAAI,MAAM,KAAK,MAAM,IAAI,MAAM,KAAK,MAAM,IAAI,MAAM,KAAK,MAAM,CAAC;AAC1F,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,MAAwB;IAClD,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;AAC9B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,MAAwB;IAClD,OAAO,MAAM,KAAK,MAAM,IAAI,MAAM,KAAK,MAAM,CAAC;AAChD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,MAAwB;IACtD,OAAO,MAAM,KAAK,MAAM,IAAI,MAAM,KAAK,MAAM,IAAI,MAAM,KAAK,OAAO,CAAC;AACtE,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,MAAwB;IACpD,OAAO,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,MAAM,CAAC;AACnG,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,MAAwB;IAClD,OAAO,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AACxC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,MAAwB;IACxD,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,SAAS,CAAC,CAAC,OAAO,MAAM,CAAC;QAC9B,KAAK,SAAS,CAAC,CAAC,OAAO,MAAM,CAAC;QAC9B,KAAK,SAAS,CAAC,CAAC,OAAO,MAAM,CAAC;QAC9B,KAAK,MAAM,CAAC,CAAC,OAAO,MAAM,CAAC;QAC3B,OAAO,CAAC,CAAC,OAAO,MAAM,CAAC;IACzB,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,MAAwB;IACzD,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,MAAM,CAAC,CAAC,OAAO,SAAS,CAAC;QAC9B,KAAK,MAAM,CAAC,CAAC,OAAO,SAAS,CAAC;QAC9B,KAAK,MAAM,CAAC,CAAC,OAAO,SAAS,CAAC;QAC9B,KAAK,MAAM,CAAC,CAAC,OAAO,MAAM,CAAC;QAC3B,OAAO,CAAC,CAAC,OAAO,MAAM,CAAC;IACzB,CAAC;AACH,CAAC"}
|