node-av 2.0.0 → 2.4.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 +18 -5
- package/binding.gyp +12 -0
- package/dist/api/bitstream-filter.d.ts +132 -0
- package/dist/api/bitstream-filter.js +198 -0
- package/dist/api/bitstream-filter.js.map +1 -1
- package/dist/api/decoder.d.ts +194 -0
- package/dist/api/decoder.js +313 -0
- package/dist/api/decoder.js.map +1 -1
- package/dist/api/encoder.d.ts +263 -0
- package/dist/api/encoder.js +427 -0
- package/dist/api/encoder.js.map +1 -1
- package/dist/api/filter-presets.d.ts +92 -0
- package/dist/api/filter-presets.js +92 -0
- package/dist/api/filter-presets.js.map +1 -1
- package/dist/api/filter.d.ts +234 -9
- package/dist/api/filter.js +372 -9
- package/dist/api/filter.js.map +1 -1
- package/dist/api/hardware.d.ts +17 -0
- package/dist/api/hardware.js +28 -17
- package/dist/api/hardware.js.map +1 -1
- package/dist/api/io-stream.d.ts +6 -0
- package/dist/api/io-stream.js +2 -0
- package/dist/api/io-stream.js.map +1 -1
- package/dist/api/media-input.d.ts +214 -1
- package/dist/api/media-input.js +341 -0
- package/dist/api/media-input.js.map +1 -1
- package/dist/api/media-output.d.ts +132 -1
- package/dist/api/media-output.js +339 -0
- package/dist/api/media-output.js.map +1 -1
- package/dist/api/pipeline.d.ts +73 -8
- package/dist/api/pipeline.js +61 -0
- package/dist/api/pipeline.js.map +1 -1
- package/dist/api/types.d.ts +7 -0
- package/dist/api/utils.js +2 -0
- package/dist/api/utils.js.map +1 -1
- package/dist/lib/audio-fifo.d.ts +103 -0
- package/dist/lib/audio-fifo.js +109 -0
- package/dist/lib/audio-fifo.js.map +1 -1
- package/dist/lib/binding.d.ts +1 -0
- package/dist/lib/binding.js +32 -7
- package/dist/lib/binding.js.map +1 -1
- package/dist/lib/bitstream-filter-context.d.ts +79 -0
- package/dist/lib/bitstream-filter-context.js +83 -0
- package/dist/lib/bitstream-filter-context.js.map +1 -1
- package/dist/lib/bitstream-filter.d.ts +2 -0
- package/dist/lib/bitstream-filter.js +2 -0
- package/dist/lib/bitstream-filter.js.map +1 -1
- package/dist/lib/codec-context.d.ts +168 -0
- package/dist/lib/codec-context.js +178 -0
- package/dist/lib/codec-context.js.map +1 -1
- package/dist/lib/codec-parameters.d.ts +3 -0
- package/dist/lib/codec-parameters.js +3 -0
- package/dist/lib/codec-parameters.js.map +1 -1
- package/dist/lib/codec-parser.d.ts +6 -0
- package/dist/lib/codec-parser.js +6 -0
- package/dist/lib/codec-parser.js.map +1 -1
- package/dist/lib/codec.d.ts +12 -0
- package/dist/lib/codec.js +12 -0
- package/dist/lib/codec.js.map +1 -1
- package/dist/lib/dictionary.d.ts +16 -0
- package/dist/lib/dictionary.js +16 -0
- package/dist/lib/dictionary.js.map +1 -1
- package/dist/lib/error.d.ts +8 -0
- package/dist/lib/error.js +9 -0
- package/dist/lib/error.js.map +1 -1
- package/dist/lib/filter-context.d.ts +100 -0
- package/dist/lib/filter-context.js +104 -0
- package/dist/lib/filter-context.js.map +1 -1
- package/dist/lib/filter-graph.d.ts +80 -0
- package/dist/lib/filter-graph.js +84 -0
- package/dist/lib/filter-graph.js.map +1 -1
- package/dist/lib/filter-inout.d.ts +1 -0
- package/dist/lib/filter-inout.js +1 -0
- package/dist/lib/filter-inout.js.map +1 -1
- package/dist/lib/filter.d.ts +2 -0
- package/dist/lib/filter.js +2 -0
- package/dist/lib/filter.js.map +1 -1
- package/dist/lib/format-context.d.ts +338 -2
- package/dist/lib/format-context.js +355 -3
- package/dist/lib/format-context.js.map +1 -1
- package/dist/lib/frame.d.ts +41 -0
- package/dist/lib/frame.js +43 -0
- package/dist/lib/frame.js.map +1 -1
- package/dist/lib/hardware-device-context.d.ts +8 -0
- package/dist/lib/hardware-device-context.js +8 -0
- package/dist/lib/hardware-device-context.js.map +1 -1
- package/dist/lib/hardware-frames-context.d.ts +55 -0
- package/dist/lib/hardware-frames-context.js +57 -0
- package/dist/lib/hardware-frames-context.js.map +1 -1
- package/dist/lib/input-format.d.ts +43 -3
- package/dist/lib/input-format.js +48 -0
- package/dist/lib/input-format.js.map +1 -1
- package/dist/lib/io-context.d.ts +218 -0
- package/dist/lib/io-context.js +234 -0
- package/dist/lib/io-context.js.map +1 -1
- package/dist/lib/log.d.ts +2 -0
- package/dist/lib/log.js +2 -0
- package/dist/lib/log.js.map +1 -1
- package/dist/lib/native-types.d.ts +39 -1
- package/dist/lib/option.d.ts +90 -0
- package/dist/lib/option.js +97 -0
- package/dist/lib/option.js.map +1 -1
- package/dist/lib/output-format.d.ts +4 -0
- package/dist/lib/output-format.js +4 -0
- package/dist/lib/output-format.js.map +1 -1
- package/dist/lib/packet.d.ts +7 -0
- package/dist/lib/packet.js +7 -0
- package/dist/lib/packet.js.map +1 -1
- package/dist/lib/rational.d.ts +1 -0
- package/dist/lib/rational.js +1 -0
- package/dist/lib/rational.js.map +1 -1
- package/dist/lib/software-resample-context.d.ts +64 -0
- package/dist/lib/software-resample-context.js +66 -0
- package/dist/lib/software-resample-context.js.map +1 -1
- package/dist/lib/software-scale-context.d.ts +98 -0
- package/dist/lib/software-scale-context.js +102 -0
- package/dist/lib/software-scale-context.js.map +1 -1
- package/dist/lib/stream.d.ts +1 -0
- package/dist/lib/stream.js +1 -0
- package/dist/lib/stream.js.map +1 -1
- package/dist/lib/utilities.d.ts +60 -0
- package/dist/lib/utilities.js +60 -0
- package/dist/lib/utilities.js.map +1 -1
- package/package.json +19 -17
package/dist/api/filter.js
CHANGED
|
@@ -14,7 +14,7 @@ import { avGetSampleFmtName } from '../lib/utilities.js';
|
|
|
14
14
|
* import { FilterAPI } from 'node-av/api';
|
|
15
15
|
*
|
|
16
16
|
* // Create video filter - initializes on first frame
|
|
17
|
-
* const filter =
|
|
17
|
+
* const filter = FilterAPI.create('scale=1280:720', {
|
|
18
18
|
* timeBase: video.timeBase,
|
|
19
19
|
* });
|
|
20
20
|
*
|
|
@@ -29,7 +29,7 @@ import { avGetSampleFmtName } from '../lib/utilities.js';
|
|
|
29
29
|
* @example
|
|
30
30
|
* ```typescript
|
|
31
31
|
* // Hardware-accelerated filtering - hw context detected from frame
|
|
32
|
-
* const filter =
|
|
32
|
+
* const filter = FilterAPI.create('hwupload,scale_cuda=1920:1080,hwdownload', {
|
|
33
33
|
* timeBase: video.timeBase,
|
|
34
34
|
* });
|
|
35
35
|
* // Hardware frames context will be automatically detected from first frame
|
|
@@ -48,8 +48,11 @@ export class FilterAPI {
|
|
|
48
48
|
isClosed = false;
|
|
49
49
|
/**
|
|
50
50
|
* @param graph - Filter graph instance
|
|
51
|
+
*
|
|
51
52
|
* @param description - Filter description string
|
|
53
|
+
*
|
|
52
54
|
* @param options - Filter options
|
|
55
|
+
*
|
|
53
56
|
* @internal
|
|
54
57
|
*/
|
|
55
58
|
constructor(graph, description, options) {
|
|
@@ -67,7 +70,9 @@ export class FilterAPI {
|
|
|
67
70
|
* Direct mapping to avfilter_graph_parse_ptr() and avfilter_graph_config().
|
|
68
71
|
*
|
|
69
72
|
* @param description - Filter graph description
|
|
73
|
+
*
|
|
70
74
|
* @param options - Filter options including required timeBase
|
|
75
|
+
*
|
|
71
76
|
* @returns Configured filter instance
|
|
72
77
|
*
|
|
73
78
|
* @throws {Error} If filter creation or configuration fails
|
|
@@ -77,7 +82,7 @@ export class FilterAPI {
|
|
|
77
82
|
* @example
|
|
78
83
|
* ```typescript
|
|
79
84
|
* // Simple video filter
|
|
80
|
-
* const filter =
|
|
85
|
+
* const filter = FilterAPI.create('scale=640:480', {
|
|
81
86
|
* timeBase: video.timeBase
|
|
82
87
|
* });
|
|
83
88
|
* ```
|
|
@@ -85,7 +90,7 @@ export class FilterAPI {
|
|
|
85
90
|
* @example
|
|
86
91
|
* ```typescript
|
|
87
92
|
* // Complex filter chain
|
|
88
|
-
* const filter =
|
|
93
|
+
* const filter = FilterAPI.create('crop=640:480:0:0,rotate=PI/4', {
|
|
89
94
|
* timeBase: video.timeBase
|
|
90
95
|
* });
|
|
91
96
|
* ```
|
|
@@ -93,7 +98,7 @@ export class FilterAPI {
|
|
|
93
98
|
* @example
|
|
94
99
|
* ```typescript
|
|
95
100
|
* // Audio filter
|
|
96
|
-
* const filter =
|
|
101
|
+
* const filter = FilterAPI.create('volume=0.5,aecho=0.8:0.9:1000:0.3', {
|
|
97
102
|
* timeBase: audio.timeBase
|
|
98
103
|
* });
|
|
99
104
|
* ```
|
|
@@ -101,7 +106,7 @@ export class FilterAPI {
|
|
|
101
106
|
* @see {@link process} For frame processing
|
|
102
107
|
* @see {@link FilterOptions} For configuration options
|
|
103
108
|
*/
|
|
104
|
-
static
|
|
109
|
+
static create(description, options) {
|
|
105
110
|
// Create graph
|
|
106
111
|
const graph = new FilterGraph();
|
|
107
112
|
graph.alloc();
|
|
@@ -192,6 +197,7 @@ export class FilterAPI {
|
|
|
192
197
|
* Direct mapping to av_buffersrc_add_frame() and av_buffersink_get_frame().
|
|
193
198
|
*
|
|
194
199
|
* @param frame - Input frame to process (or null to flush)
|
|
200
|
+
*
|
|
195
201
|
* @returns Filtered frame or null if buffered
|
|
196
202
|
*
|
|
197
203
|
* @throws {Error} If filter is closed with non-null frame
|
|
@@ -259,6 +265,86 @@ export class FilterAPI {
|
|
|
259
265
|
return null;
|
|
260
266
|
}
|
|
261
267
|
}
|
|
268
|
+
/**
|
|
269
|
+
* Process a frame through the filter synchronously.
|
|
270
|
+
* Synchronous version of process.
|
|
271
|
+
*
|
|
272
|
+
* Applies filter operations to input frame.
|
|
273
|
+
* On first frame, automatically builds filter graph with frame properties.
|
|
274
|
+
* May buffer frames internally before producing output.
|
|
275
|
+
* Hardware frames context is automatically detected from frame.
|
|
276
|
+
* Returns null if filter is closed and frame is null.
|
|
277
|
+
*
|
|
278
|
+
* Direct mapping to av_buffersrc_add_frame() and av_buffersink_get_frame().
|
|
279
|
+
*
|
|
280
|
+
* @param frame - Input frame to process (or null to flush)
|
|
281
|
+
*
|
|
282
|
+
* @returns Filtered frame or null if buffered
|
|
283
|
+
*
|
|
284
|
+
* @throws {Error} If filter is closed with non-null frame
|
|
285
|
+
*
|
|
286
|
+
* @throws {FFmpegError} If processing fails
|
|
287
|
+
*
|
|
288
|
+
* @example
|
|
289
|
+
* ```typescript
|
|
290
|
+
* const output = filter.processSync(inputFrame);
|
|
291
|
+
* if (output) {
|
|
292
|
+
* console.log(`Got filtered frame: pts=${output.pts}`);
|
|
293
|
+
* output.free();
|
|
294
|
+
* }
|
|
295
|
+
* ```
|
|
296
|
+
*
|
|
297
|
+
* @example
|
|
298
|
+
* ```typescript
|
|
299
|
+
* // Process frame - may buffer internally
|
|
300
|
+
* const output = filter.processSync(frame);
|
|
301
|
+
* if (output) {
|
|
302
|
+
* // Got output immediately
|
|
303
|
+
* yield output;
|
|
304
|
+
* }
|
|
305
|
+
* // For buffered frames, use the framesSync() generator
|
|
306
|
+
* ```
|
|
307
|
+
*
|
|
308
|
+
* @see {@link process} For async version
|
|
309
|
+
*/
|
|
310
|
+
processSync(frame) {
|
|
311
|
+
if (this.isClosed) {
|
|
312
|
+
if (!frame) {
|
|
313
|
+
return null;
|
|
314
|
+
}
|
|
315
|
+
throw new Error('Filter is closed');
|
|
316
|
+
}
|
|
317
|
+
// Open filter if not already done
|
|
318
|
+
if (!this.initialized) {
|
|
319
|
+
if (!frame) {
|
|
320
|
+
return null;
|
|
321
|
+
}
|
|
322
|
+
this.initializeSync(frame);
|
|
323
|
+
}
|
|
324
|
+
if (!this.buffersrcCtx || !this.buffersinkCtx) {
|
|
325
|
+
throw new Error('Filter not initialized');
|
|
326
|
+
}
|
|
327
|
+
// Send frame to filter
|
|
328
|
+
const addRet = this.buffersrcCtx.buffersrcAddFrameSync(frame);
|
|
329
|
+
FFmpegError.throwIfError(addRet, 'Failed to add frame to filter');
|
|
330
|
+
// Try to get filtered frame
|
|
331
|
+
const outputFrame = new Frame();
|
|
332
|
+
outputFrame.alloc();
|
|
333
|
+
const getRet = this.buffersinkCtx.buffersinkGetFrameSync(outputFrame);
|
|
334
|
+
if (getRet >= 0) {
|
|
335
|
+
return outputFrame;
|
|
336
|
+
}
|
|
337
|
+
else if (getRet === AVERROR_EAGAIN) {
|
|
338
|
+
// Need more input
|
|
339
|
+
outputFrame.free();
|
|
340
|
+
return null;
|
|
341
|
+
}
|
|
342
|
+
else {
|
|
343
|
+
outputFrame.free();
|
|
344
|
+
FFmpegError.throwIfError(getRet, 'Failed to get frame from filter');
|
|
345
|
+
return null;
|
|
346
|
+
}
|
|
347
|
+
}
|
|
262
348
|
/**
|
|
263
349
|
* Process multiple frames at once.
|
|
264
350
|
*
|
|
@@ -266,6 +352,7 @@ export class FilterAPI {
|
|
|
266
352
|
* Useful for filters that buffer multiple frames.
|
|
267
353
|
*
|
|
268
354
|
* @param frames - Array of input frames
|
|
355
|
+
*
|
|
269
356
|
* @returns Array of all output frames
|
|
270
357
|
*
|
|
271
358
|
* @throws {Error} If filter not ready
|
|
@@ -300,6 +387,49 @@ export class FilterAPI {
|
|
|
300
387
|
}
|
|
301
388
|
return outputFrames;
|
|
302
389
|
}
|
|
390
|
+
/**
|
|
391
|
+
* Process multiple frames at once synchronously.
|
|
392
|
+
* Synchronous version of processMultiple.
|
|
393
|
+
*
|
|
394
|
+
* Processes batch of frames and drains all output.
|
|
395
|
+
* Useful for filters that buffer multiple frames.
|
|
396
|
+
*
|
|
397
|
+
* @param frames - Array of input frames
|
|
398
|
+
*
|
|
399
|
+
* @returns Array of all output frames
|
|
400
|
+
*
|
|
401
|
+
* @throws {Error} If filter not ready
|
|
402
|
+
*
|
|
403
|
+
* @throws {FFmpegError} If processing fails
|
|
404
|
+
*
|
|
405
|
+
* @example
|
|
406
|
+
* ```typescript
|
|
407
|
+
* const outputs = filter.processMultipleSync([frame1, frame2, frame3]);
|
|
408
|
+
* for (const output of outputs) {
|
|
409
|
+
* console.log(`Output frame: pts=${output.pts}`);
|
|
410
|
+
* output.free();
|
|
411
|
+
* }
|
|
412
|
+
* ```
|
|
413
|
+
*
|
|
414
|
+
* @see {@link processMultiple} For async version
|
|
415
|
+
*/
|
|
416
|
+
processMultipleSync(frames) {
|
|
417
|
+
const outputFrames = [];
|
|
418
|
+
for (const frame of frames) {
|
|
419
|
+
const output = this.processSync(frame);
|
|
420
|
+
if (output) {
|
|
421
|
+
outputFrames.push(output);
|
|
422
|
+
}
|
|
423
|
+
// Drain any additional frames
|
|
424
|
+
while (true) {
|
|
425
|
+
const additional = this.receiveSync();
|
|
426
|
+
if (!additional)
|
|
427
|
+
break;
|
|
428
|
+
outputFrames.push(additional);
|
|
429
|
+
}
|
|
430
|
+
}
|
|
431
|
+
return outputFrames;
|
|
432
|
+
}
|
|
303
433
|
/**
|
|
304
434
|
* Process frame stream through filter.
|
|
305
435
|
*
|
|
@@ -308,7 +438,9 @@ export class FilterAPI {
|
|
|
308
438
|
* Frees input frames after processing.
|
|
309
439
|
*
|
|
310
440
|
* @param frames - Async generator of input frames
|
|
441
|
+
*
|
|
311
442
|
* @yields {Frame} Filtered frames
|
|
443
|
+
*
|
|
312
444
|
* @throws {Error} If filter not ready
|
|
313
445
|
*
|
|
314
446
|
* @throws {FFmpegError} If processing fails
|
|
@@ -325,10 +457,10 @@ export class FilterAPI {
|
|
|
325
457
|
* @example
|
|
326
458
|
* ```typescript
|
|
327
459
|
* // Chain filters
|
|
328
|
-
* const filter1 =
|
|
460
|
+
* const filter1 = FilterAPI.create('scale=640:480', {
|
|
329
461
|
* timeBase: video.timeBase
|
|
330
462
|
* });
|
|
331
|
-
* const filter2 =
|
|
463
|
+
* const filter2 = FilterAPI.create('rotate=PI/4', {
|
|
332
464
|
* timeBase: video.timeBase
|
|
333
465
|
* });
|
|
334
466
|
*
|
|
@@ -371,6 +503,79 @@ export class FilterAPI {
|
|
|
371
503
|
yield remaining;
|
|
372
504
|
}
|
|
373
505
|
}
|
|
506
|
+
/**
|
|
507
|
+
* Process frame stream through filter synchronously.
|
|
508
|
+
* Synchronous version of frames.
|
|
509
|
+
*
|
|
510
|
+
* High-level sync generator for filtering frame streams.
|
|
511
|
+
* Automatically handles buffering and flushing.
|
|
512
|
+
* Frees input frames after processing.
|
|
513
|
+
*
|
|
514
|
+
* @param frames - Generator of input frames
|
|
515
|
+
*
|
|
516
|
+
* @yields {Frame} Filtered frames
|
|
517
|
+
*
|
|
518
|
+
* @throws {Error} If filter not ready
|
|
519
|
+
*
|
|
520
|
+
* @throws {FFmpegError} If processing fails
|
|
521
|
+
*
|
|
522
|
+
* @example
|
|
523
|
+
* ```typescript
|
|
524
|
+
* // Filter decoded frames
|
|
525
|
+
* for (const frame of filter.framesSync(decoder.framesSync(packets))) {
|
|
526
|
+
* encoder.encodeSync(frame);
|
|
527
|
+
* frame.free();
|
|
528
|
+
* }
|
|
529
|
+
* ```
|
|
530
|
+
*
|
|
531
|
+
* @example
|
|
532
|
+
* ```typescript
|
|
533
|
+
* // Chain filters
|
|
534
|
+
* const filter1 = FilterAPI.create('scale=640:480', {
|
|
535
|
+
* timeBase: video.timeBase
|
|
536
|
+
* });
|
|
537
|
+
* const filter2 = FilterAPI.create('rotate=PI/4', {
|
|
538
|
+
* timeBase: video.timeBase
|
|
539
|
+
* });
|
|
540
|
+
*
|
|
541
|
+
* for (const frame of filter2.framesSync(filter1.framesSync(input))) {
|
|
542
|
+
* // Process filtered frames
|
|
543
|
+
* frame.free();
|
|
544
|
+
* }
|
|
545
|
+
* ```
|
|
546
|
+
*
|
|
547
|
+
* @see {@link frames} For async version
|
|
548
|
+
*/
|
|
549
|
+
*framesSync(frames) {
|
|
550
|
+
for (const frame of frames) {
|
|
551
|
+
try {
|
|
552
|
+
// Process input frame
|
|
553
|
+
const output = this.processSync(frame);
|
|
554
|
+
if (output) {
|
|
555
|
+
yield output;
|
|
556
|
+
}
|
|
557
|
+
// Drain any buffered frames
|
|
558
|
+
while (true) {
|
|
559
|
+
const buffered = this.receiveSync();
|
|
560
|
+
if (!buffered)
|
|
561
|
+
break;
|
|
562
|
+
yield buffered;
|
|
563
|
+
}
|
|
564
|
+
}
|
|
565
|
+
finally {
|
|
566
|
+
// Free the input frame after processing
|
|
567
|
+
frame.free();
|
|
568
|
+
}
|
|
569
|
+
}
|
|
570
|
+
// Flush and get remaining frames
|
|
571
|
+
this.flushSync();
|
|
572
|
+
while (true) {
|
|
573
|
+
const remaining = this.receiveSync();
|
|
574
|
+
if (!remaining)
|
|
575
|
+
break;
|
|
576
|
+
yield remaining;
|
|
577
|
+
}
|
|
578
|
+
}
|
|
374
579
|
/**
|
|
375
580
|
* Flush filter and signal end-of-stream.
|
|
376
581
|
*
|
|
@@ -405,6 +610,40 @@ export class FilterAPI {
|
|
|
405
610
|
FFmpegError.throwIfError(ret, 'Failed to flush filter');
|
|
406
611
|
}
|
|
407
612
|
}
|
|
613
|
+
/**
|
|
614
|
+
* Flush filter and signal end-of-stream synchronously.
|
|
615
|
+
* Synchronous version of flush.
|
|
616
|
+
*
|
|
617
|
+
* Sends null frame to flush buffered data.
|
|
618
|
+
* Must call receiveSync() to get flushed frames.
|
|
619
|
+
* Does nothing if filter is closed or was never initialized.
|
|
620
|
+
*
|
|
621
|
+
* Direct mapping to av_buffersrc_add_frame(NULL).
|
|
622
|
+
*
|
|
623
|
+
* @throws {FFmpegError} If flush fails
|
|
624
|
+
*
|
|
625
|
+
* @example
|
|
626
|
+
* ```typescript
|
|
627
|
+
* filter.flushSync();
|
|
628
|
+
* // Get remaining frames
|
|
629
|
+
* let frame;
|
|
630
|
+
* while ((frame = filter.receiveSync()) !== null) {
|
|
631
|
+
* frame.free();
|
|
632
|
+
* }
|
|
633
|
+
* ```
|
|
634
|
+
*
|
|
635
|
+
* @see {@link flush} For async version
|
|
636
|
+
*/
|
|
637
|
+
flushSync() {
|
|
638
|
+
if (this.isClosed || !this.initialized || !this.buffersrcCtx) {
|
|
639
|
+
return;
|
|
640
|
+
}
|
|
641
|
+
// Send flush frame (null)
|
|
642
|
+
const ret = this.buffersrcCtx.buffersrcAddFrameSync(null);
|
|
643
|
+
if (ret < 0 && ret !== AVERROR_EOF) {
|
|
644
|
+
FFmpegError.throwIfError(ret, 'Failed to flush filter');
|
|
645
|
+
}
|
|
646
|
+
}
|
|
408
647
|
/**
|
|
409
648
|
* Flush filter and yield remaining frames.
|
|
410
649
|
*
|
|
@@ -436,6 +675,37 @@ export class FilterAPI {
|
|
|
436
675
|
yield frame;
|
|
437
676
|
}
|
|
438
677
|
}
|
|
678
|
+
/**
|
|
679
|
+
* Flush filter and yield remaining frames synchronously.
|
|
680
|
+
* Synchronous version of flushFrames.
|
|
681
|
+
*
|
|
682
|
+
* Convenient sync generator for flushing.
|
|
683
|
+
* Combines flush and receive operations.
|
|
684
|
+
* Returns immediately if filter is closed or was never initialized.
|
|
685
|
+
*
|
|
686
|
+
* @yields {Frame} Remaining frames from filter
|
|
687
|
+
*
|
|
688
|
+
* @throws {FFmpegError} If flush fails
|
|
689
|
+
*
|
|
690
|
+
* @example
|
|
691
|
+
* ```typescript
|
|
692
|
+
* for (const frame of filter.flushFramesSync()) {
|
|
693
|
+
* console.log(`Flushed frame: pts=${frame.pts}`);
|
|
694
|
+
* frame.free();
|
|
695
|
+
* }
|
|
696
|
+
* ```
|
|
697
|
+
*
|
|
698
|
+
* @see {@link flushFrames} For async version
|
|
699
|
+
*/
|
|
700
|
+
*flushFramesSync() {
|
|
701
|
+
// Send flush signal
|
|
702
|
+
this.flushSync();
|
|
703
|
+
// Yield all remaining frames
|
|
704
|
+
let frame;
|
|
705
|
+
while ((frame = this.receiveSync()) !== null) {
|
|
706
|
+
yield frame;
|
|
707
|
+
}
|
|
708
|
+
}
|
|
439
709
|
/**
|
|
440
710
|
* Receive buffered frame from filter.
|
|
441
711
|
*
|
|
@@ -477,6 +747,50 @@ export class FilterAPI {
|
|
|
477
747
|
return null;
|
|
478
748
|
}
|
|
479
749
|
}
|
|
750
|
+
/**
|
|
751
|
+
* Receive buffered frame from filter synchronously.
|
|
752
|
+
* Synchronous version of receive.
|
|
753
|
+
*
|
|
754
|
+
* Drains frames buffered by the filter.
|
|
755
|
+
* Call repeatedly until null to get all buffered frames.
|
|
756
|
+
* Returns null if filter is closed, not initialized, or no frames available.
|
|
757
|
+
*
|
|
758
|
+
* Direct mapping to av_buffersink_get_frame().
|
|
759
|
+
*
|
|
760
|
+
* @returns Buffered frame or null if none available
|
|
761
|
+
*
|
|
762
|
+
* @throws {FFmpegError} If receiving fails
|
|
763
|
+
*
|
|
764
|
+
* @example
|
|
765
|
+
* ```typescript
|
|
766
|
+
* let frame;
|
|
767
|
+
* while ((frame = filter.receiveSync()) !== null) {
|
|
768
|
+
* console.log(`Received frame: pts=${frame.pts}`);
|
|
769
|
+
* frame.free();
|
|
770
|
+
* }
|
|
771
|
+
* ```
|
|
772
|
+
*
|
|
773
|
+
* @see {@link receive} For async version
|
|
774
|
+
*/
|
|
775
|
+
receiveSync() {
|
|
776
|
+
if (this.isClosed || !this.initialized || !this.buffersinkCtx) {
|
|
777
|
+
return null;
|
|
778
|
+
}
|
|
779
|
+
const frame = new Frame();
|
|
780
|
+
frame.alloc();
|
|
781
|
+
const ret = this.buffersinkCtx.buffersinkGetFrameSync(frame);
|
|
782
|
+
if (ret >= 0) {
|
|
783
|
+
return frame;
|
|
784
|
+
}
|
|
785
|
+
else {
|
|
786
|
+
frame.free();
|
|
787
|
+
if (ret === AVERROR_EAGAIN || ret === AVERROR_EOF) {
|
|
788
|
+
return null;
|
|
789
|
+
}
|
|
790
|
+
FFmpegError.throwIfError(ret, 'Failed to receive frame from filter');
|
|
791
|
+
return null;
|
|
792
|
+
}
|
|
793
|
+
}
|
|
480
794
|
/**
|
|
481
795
|
* Send command to filter.
|
|
482
796
|
*
|
|
@@ -486,9 +800,13 @@ export class FilterAPI {
|
|
|
486
800
|
* Direct mapping to avfilter_graph_send_command().
|
|
487
801
|
*
|
|
488
802
|
* @param target - Target filter name
|
|
803
|
+
*
|
|
489
804
|
* @param cmd - Command name
|
|
805
|
+
*
|
|
490
806
|
* @param arg - Command argument
|
|
807
|
+
*
|
|
491
808
|
* @param flags - Command flags
|
|
809
|
+
*
|
|
492
810
|
* @returns Response string from filter
|
|
493
811
|
*
|
|
494
812
|
* @throws {Error} If filter not ready
|
|
@@ -526,10 +844,15 @@ export class FilterAPI {
|
|
|
526
844
|
* Direct mapping to avfilter_graph_queue_command().
|
|
527
845
|
*
|
|
528
846
|
* @param target - Target filter name
|
|
847
|
+
*
|
|
529
848
|
* @param cmd - Command name
|
|
849
|
+
*
|
|
530
850
|
* @param arg - Command argument
|
|
851
|
+
*
|
|
531
852
|
* @param ts - Timestamp for execution
|
|
853
|
+
*
|
|
532
854
|
* @param flags - Command flags
|
|
855
|
+
*
|
|
533
856
|
* @throws {Error} If filter not ready
|
|
534
857
|
*
|
|
535
858
|
* @throws {FFmpegError} If queue fails
|
|
@@ -612,6 +935,46 @@ export class FilterAPI {
|
|
|
612
935
|
FFmpegError.throwIfError(ret, 'Failed to configure filter graph');
|
|
613
936
|
this.initialized = true;
|
|
614
937
|
}
|
|
938
|
+
/**
|
|
939
|
+
* Initialize filter graph from first frame synchronously.
|
|
940
|
+
* Synchronous version of initialize.
|
|
941
|
+
*
|
|
942
|
+
* Creates and configures filter graph components.
|
|
943
|
+
* Sets buffer source parameters from frame properties.
|
|
944
|
+
* Automatically configures hardware frames context if present.
|
|
945
|
+
*
|
|
946
|
+
* @param frame - First frame to process, provides format and hw context
|
|
947
|
+
*
|
|
948
|
+
* @throws {Error} If initialization fails
|
|
949
|
+
*
|
|
950
|
+
* @throws {FFmpegError} If configuration fails
|
|
951
|
+
*
|
|
952
|
+
* @internal
|
|
953
|
+
*
|
|
954
|
+
* @see {@link initialize} For async version
|
|
955
|
+
*/
|
|
956
|
+
initializeSync(frame) {
|
|
957
|
+
// Create buffer source
|
|
958
|
+
this.createBufferSource(frame);
|
|
959
|
+
// Create buffer sink
|
|
960
|
+
this.createBufferSink(frame);
|
|
961
|
+
// Parse filter description
|
|
962
|
+
this.parseFilterDescription(this.description);
|
|
963
|
+
// Set hw_device_ctx on hardware filters
|
|
964
|
+
const filters = this.graph.filters;
|
|
965
|
+
if (filters) {
|
|
966
|
+
for (const filterCtx of filters) {
|
|
967
|
+
const filter = filterCtx.filter;
|
|
968
|
+
if (filter && (filter.flags & AVFILTER_FLAG_HWDEVICE) !== 0) {
|
|
969
|
+
filterCtx.hwDeviceCtx = frame.hwFramesCtx?.deviceRef ?? this.options.hardware?.deviceContext ?? null;
|
|
970
|
+
}
|
|
971
|
+
}
|
|
972
|
+
}
|
|
973
|
+
// Configure the graph
|
|
974
|
+
const ret = this.graph.configSync();
|
|
975
|
+
FFmpegError.throwIfError(ret, 'Failed to configure filter graph');
|
|
976
|
+
this.initialized = true;
|
|
977
|
+
}
|
|
615
978
|
/**
|
|
616
979
|
* Create buffer source with frame parameters.
|
|
617
980
|
*
|
|
@@ -736,7 +1099,7 @@ export class FilterAPI {
|
|
|
736
1099
|
* @example
|
|
737
1100
|
* ```typescript
|
|
738
1101
|
* {
|
|
739
|
-
* using filter =
|
|
1102
|
+
* using filter = FilterAPI.create('scale=640:480', { ... });
|
|
740
1103
|
* // Use filter...
|
|
741
1104
|
* } // Automatically freed
|
|
742
1105
|
* ```
|
package/dist/api/filter.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filter.js","sourceRoot":"","sources":["../../src/api/filter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AAChG,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACvF,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAMzD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,MAAM,OAAO,SAAS;IACZ,KAAK,CAAc;IACnB,WAAW,CAAS;IACpB,OAAO,CAAgB;IACvB,YAAY,GAAyB,IAAI,CAAC;IAC1C,aAAa,GAAyB,IAAI,CAAC;IAC3C,WAAW,GAAG,KAAK,CAAC;IACpB,QAAQ,GAAG,KAAK,CAAC;IAEzB;;;;;OAKG;IACH,YAAoB,KAAkB,EAAE,WAAmB,EAAE,OAAsB;QACjF,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2CG;IACH,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,WAAmB,EAAE,OAAsB;QAC7D,eAAe;QACf,MAAM,KAAK,GAAG,IAAI,WAAW,EAAE,CAAC;QAChC,KAAK,CAAC,KAAK,EAAE,CAAC;QAEd,sBAAsB;QACtB,IAAI,OAAO,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YAClC,KAAK,CAAC,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC;QACpC,CAAC;QAED,2BAA2B;QAC3B,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;YACzB,KAAK,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;QAC5C,CAAC;QAED,OAAO,IAAI,SAAS,CAAC,KAAK,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;IACpD,CAAC;IAED;;;;;;;;;OASG;IACH,IAAI,YAAY;QACd,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC;IACxB,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACH,IAAI,mBAAmB;QACrB,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED;;;;;;;;;;;OAWG;IACH,OAAO;QACL,OAAO,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,YAAY,KAAK,IAAI,IAAI,IAAI,CAAC,aAAa,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;IACzG,CAAC;IAED;;;;;;;;;;;;;;;OAeG;IACH,mBAAmB;QACjB,OAAO,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IACvE,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAwCG;IACH,KAAK,CAAC,OAAO,CAAC,KAAmB;QAC/B,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,OAAO,IAAI,CAAC;YACd,CAAC;YAED,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;QACtC,CAAC;QAED,kCAAkC;QAClC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACtB,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,OAAO,IAAI,CAAC;YACd,CAAC;YAED,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAC/B,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;YAC9C,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;QAC5C,CAAC;QAED,uBAAuB;QACvB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAChE,WAAW,CAAC,YAAY,CAAC,MAAM,EAAE,+BAA+B,CAAC,CAAC;QAElE,4BAA4B;QAC5B,MAAM,WAAW,GAAG,IAAI,KAAK,EAAE,CAAC;QAChC,WAAW,CAAC,KAAK,EAAE,CAAC;QAEpB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,WAAW,CAAC,CAAC;QAExE,IAAI,MAAM,IAAI,CAAC,EAAE,CAAC;YAChB,OAAO,WAAW,CAAC;QACrB,CAAC;aAAM,IAAI,MAAM,KAAK,cAAc,EAAE,CAAC;YACrC,kBAAkB;YAClB,WAAW,CAAC,IAAI,EAAE,CAAC;YACnB,OAAO,IAAI,CAAC;QACd,CAAC;aAAM,CAAC;YACN,WAAW,CAAC,IAAI,EAAE,CAAC;YACnB,WAAW,CAAC,YAAY,CAAC,MAAM,EAAE,iCAAiC,CAAC,CAAC;YACpE,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH,KAAK,CAAC,eAAe,CAAC,MAAe;QACnC,MAAM,YAAY,GAAY,EAAE,CAAC;QAEjC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YACzC,IAAI,MAAM,EAAE,CAAC;gBACX,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC5B,CAAC;YAED,8BAA8B;YAC9B,OAAO,IAAI,EAAE,CAAC;gBACZ,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;gBACxC,IAAI,CAAC,UAAU;oBAAE,MAAM;gBACvB,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAChC,CAAC;QACH,CAAC;QAED,OAAO,YAAY,CAAC;IACtB,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAwCG;IACH,KAAK,CAAC,CAAC,MAAM,CAAC,MAA6B;QACzC,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YACjC,IAAI,CAAC;gBACH,sBAAsB;gBACtB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;gBACzC,IAAI,MAAM,EAAE,CAAC;oBACX,MAAM,MAAM,CAAC;gBACf,CAAC;gBAED,4BAA4B;gBAC5B,OAAO,IAAI,EAAE,CAAC;oBACZ,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;oBACtC,IAAI,CAAC,QAAQ;wBAAE,MAAM;oBACrB,MAAM,QAAQ,CAAC;gBACjB,CAAC;YACH,CAAC;oBAAS,CAAC;gBACT,wCAAwC;gBACxC,KAAK,CAAC,IAAI,EAAE,CAAC;YACf,CAAC;QACH,CAAC;QAED,iCAAiC;QACjC,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;QACnB,OAAO,IAAI,EAAE,CAAC;YACZ,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;YACvC,IAAI,CAAC,SAAS;gBAAE,MAAM;YACtB,MAAM,SAAS,CAAC;QAClB,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH,KAAK,CAAC,KAAK;QACT,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;YAC7D,OAAO;QACT,CAAC;QAED,0BAA0B;QAC1B,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAC5D,IAAI,GAAG,GAAG,CAAC,IAAI,GAAG,KAAK,WAAW,EAAE,CAAC;YACnC,WAAW,CAAC,YAAY,CAAC,GAAG,EAAE,wBAAwB,CAAC,CAAC;QAC1D,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,KAAK,CAAC,CAAC,WAAW;QAChB,oBAAoB;QACpB,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;QAEnB,6BAA6B;QAC7B,IAAI,KAAK,CAAC;QACV,OAAO,CAAC,KAAK,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC;YAC/C,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,KAAK,CAAC,OAAO;QACX,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;YAC9D,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,KAAK,EAAE,CAAC;QAC1B,KAAK,CAAC,KAAK,EAAE,CAAC;QAEd,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;QAE/D,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC;YACb,OAAO,KAAK,CAAC;QACf,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,IAAI,EAAE,CAAC;YACb,IAAI,GAAG,KAAK,cAAc,IAAI,GAAG,KAAK,WAAW,EAAE,CAAC;gBAClD,OAAO,IAAI,CAAC;YACd,CAAC;YACD,WAAW,CAAC,YAAY,CAAC,GAAG,EAAE,qCAAqC,CAAC,CAAC;YACrE,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACH,WAAW,CAAC,MAAc,EAAE,GAAW,EAAE,GAAW,EAAE,KAAuB;QAC3E,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;QACtC,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;QAC5C,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;QAE/D,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC/B,WAAW,CAAC,YAAY,CAAC,MAAM,EAAE,+BAA+B,CAAC,CAAC;QACpE,CAAC;QAED,OAAQ,MAAc,CAAC,QAAQ,CAAC;IAClC,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACH,YAAY,CAAC,MAAc,EAAE,GAAW,EAAE,GAAW,EAAE,EAAU,EAAE,KAAuB;QACxF,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;QACtC,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;QAC5C,CAAC;QAED,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;QACjE,WAAW,CAAC,YAAY,CAAC,GAAG,EAAE,gCAAgC,CAAC,CAAC;IAClE,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,KAAK;QACH,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,OAAO;QACT,CAAC;QAED,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QAErB,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QAClB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAE1B,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;IAC3B,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACK,KAAK,CAAC,UAAU,CAAC,KAAY;QACnC,uBAAuB;QACvB,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;QAE/B,qBAAqB;QACrB,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;QAE7B,2BAA2B;QAC3B,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAE9C,wCAAwC;QACxC,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;QACnC,IAAI,OAAO,EAAE,CAAC;YACZ,KAAK,MAAM,SAAS,IAAI,OAAO,EAAE,CAAC;gBAChC,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC;gBAChC,IAAI,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,sBAAsB,CAAC,KAAK,CAAC,EAAE,CAAC;oBAC5D,SAAS,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW,EAAE,SAAS,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,aAAa,IAAI,IAAI,CAAC;gBACvG,CAAC;YACH,CAAC;QACH,CAAC;QAED,sBAAsB;QACtB,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;QACtC,WAAW,CAAC,YAAY,CAAC,GAAG,EAAE,kCAAkC,CAAC,CAAC;QAElE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;IAC1B,CAAC;IAED;;;;;;;;;;;;;OAaG;IACK,kBAAkB,CAAC,KAAY;QACrC,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;QAC1D,MAAM,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QAClD,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,GAAG,UAAU,mBAAmB,CAAC,CAAC;QACpD,CAAC;QAED,mFAAmF;QACnF,IAAI,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC;YACpB,+BAA+B;YAC/B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;YAC/D,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;gBACvB,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;YACtD,CAAC;YAED,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,sBAAsB,CAAC;gBACnD,KAAK,EAAE,KAAK,CAAC,KAAK;gBAClB,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ;gBAC/B,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,KAAK,CAAC,QAAQ;gBACnD,iBAAiB,EAAE,KAAK,CAAC,iBAAiB;gBAC1C,UAAU,EAAE,KAAK,CAAC,UAAU;gBAC5B,UAAU,EAAE,KAAK,CAAC,UAAU;gBAC5B,WAAW,EAAE,KAAK,CAAC,WAAW;aAC/B,CAAC,CAAC;YACH,WAAW,CAAC,YAAY,CAAC,GAAG,EAAE,wCAAwC,CAAC,CAAC;YAExE,oBAAoB;YACpB,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC7C,WAAW,CAAC,YAAY,CAAC,OAAO,EAAE,oCAAoC,CAAC,CAAC;QAC1E,CAAC;aAAM,CAAC;YACN,qCAAqC;YACrC,MAAM,UAAU,GAAG,kBAAkB,CAAC,KAAK,CAAC,MAAwB,CAAC,CAAC;YACtE,MAAM,aAAa,GAAG,KAAK,CAAC,aAAa,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACvG,8CAA8C;YAC9C,MAAM,IAAI,GAAG,aAAa,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,gBAAgB,KAAK,CAAC,UAAU,eAAe,UAAU,mBAAmB,aAAa,EAAE,CAAC;YAC5K,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,YAAY,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;YACtE,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;gBACvB,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;YAC1D,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;;;;;;OAQG;IACK,gBAAgB,CAAC,KAAY;QACnC,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,aAAa,CAAC;QAClE,MAAM,UAAU,GAAG,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QAChD,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CAAC,GAAG,UAAU,mBAAmB,CAAC,CAAC;QACpD,CAAC;QAED,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,UAAU,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QACtE,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;QAClD,CAAC;IACH,CAAC;IAED;;;;;;;;;;OAUG;IACK,sBAAsB,CAAC,WAAmB;QAChD,IAAI,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;YAC9C,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;QACpD,CAAC;QAED,qCAAqC;QACrC,IAAI,CAAC,WAAW,IAAI,WAAW,KAAK,MAAM,IAAI,WAAW,KAAK,OAAO,EAAE,CAAC;YACtE,qCAAqC;YACrC,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;YAC7D,WAAW,CAAC,YAAY,CAAC,GAAG,EAAE,+BAA+B,CAAC,CAAC;YAC/D,OAAO;QACT,CAAC;QAED,wCAAwC;QACxC,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;QAClC,OAAO,CAAC,KAAK,EAAE,CAAC;QAChB,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;QACpB,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC;QACtC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;QAEnB,MAAM,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;QACjC,MAAM,CAAC,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,IAAI,GAAG,KAAK,CAAC;QACpB,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC;QACtC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;QAElB,yBAAyB;QACzB,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;QAC9D,WAAW,CAAC,YAAY,CAAC,GAAG,EAAE,oCAAoC,CAAC,CAAC;QAEpE,WAAW;QACX,MAAM,CAAC,IAAI,EAAE,CAAC;QACd,OAAO,CAAC,IAAI,EAAE,CAAC;IACjB,CAAC;IAED;;;;;;;;;;;;;;;OAeG;IACH,CAAC,MAAM,CAAC,OAAO,CAAC;QACd,IAAI,CAAC,KAAK,EAAE,CAAC;IACf,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"filter.js","sourceRoot":"","sources":["../../src/api/filter.ts"],"names":[],"mappings":"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"}
|
package/dist/api/hardware.d.ts
CHANGED
|
@@ -42,8 +42,11 @@ export declare class HardwareContext implements Disposable {
|
|
|
42
42
|
private _isDisposed;
|
|
43
43
|
/**
|
|
44
44
|
* @param deviceContext - Initialized hardware device context
|
|
45
|
+
*
|
|
45
46
|
* @param deviceType - Hardware device type enum
|
|
47
|
+
*
|
|
46
48
|
* @param deviceTypeName - Human-readable device type name
|
|
49
|
+
*
|
|
47
50
|
* @internal
|
|
48
51
|
*/
|
|
49
52
|
private constructor();
|
|
@@ -55,6 +58,7 @@ export declare class HardwareContext implements Disposable {
|
|
|
55
58
|
* Platform-specific preference order ensures optimal performance.
|
|
56
59
|
*
|
|
57
60
|
* @param options - Optional hardware configuration
|
|
61
|
+
*
|
|
58
62
|
* @returns Hardware context or null if unavailable
|
|
59
63
|
*
|
|
60
64
|
* @example
|
|
@@ -87,8 +91,11 @@ export declare class HardwareContext implements Disposable {
|
|
|
87
91
|
* Direct mapping to av_hwdevice_ctx_create().
|
|
88
92
|
*
|
|
89
93
|
* @param deviceType - Hardware device type from AVHWDeviceType
|
|
94
|
+
*
|
|
90
95
|
* @param device - Optional device specifier (e.g., GPU index, device path)
|
|
96
|
+
*
|
|
91
97
|
* @param options - Optional device initialization options
|
|
98
|
+
*
|
|
92
99
|
* @returns Initialized hardware context
|
|
93
100
|
*
|
|
94
101
|
* @throws {Error} If device type unsupported or initialization fails
|
|
@@ -202,7 +209,9 @@ export declare class HardwareContext implements Disposable {
|
|
|
202
209
|
* Direct mapping to avcodec_get_hw_config().
|
|
203
210
|
*
|
|
204
211
|
* @param codecId - Codec ID from AVCodecID enum
|
|
212
|
+
*
|
|
205
213
|
* @param isEncoder - Check for encoder support (default: decoder)
|
|
214
|
+
*
|
|
206
215
|
* @returns true if codec is supported
|
|
207
216
|
*
|
|
208
217
|
* @example
|
|
@@ -224,8 +233,11 @@ export declare class HardwareContext implements Disposable {
|
|
|
224
233
|
* Important for ensuring format compatibility in pipelines.
|
|
225
234
|
*
|
|
226
235
|
* @param codecId - Codec ID from AVCodecID enum
|
|
236
|
+
*
|
|
227
237
|
* @param pixelFormat - Pixel format to check
|
|
238
|
+
*
|
|
228
239
|
* @param isEncoder - Check for encoder (default: decoder)
|
|
240
|
+
*
|
|
229
241
|
* @returns true if pixel format is supported
|
|
230
242
|
*
|
|
231
243
|
* @example
|
|
@@ -248,6 +260,7 @@ export declare class HardwareContext implements Disposable {
|
|
|
248
260
|
* Automatically tests encoder viability before returning.
|
|
249
261
|
*
|
|
250
262
|
* @param codec - Generic codec name (e.g., 'h264', 'hevc', 'av1') or AVCodecID
|
|
263
|
+
*
|
|
251
264
|
* @returns Hardware encoder codec or null if unsupported
|
|
252
265
|
*
|
|
253
266
|
* @example
|
|
@@ -280,6 +293,7 @@ export declare class HardwareContext implements Disposable {
|
|
|
280
293
|
* Direct mapping to av_codec_iterate() with hardware config checks.
|
|
281
294
|
*
|
|
282
295
|
* @param isEncoder - Find encoders (true) or decoders (false)
|
|
296
|
+
*
|
|
283
297
|
* @returns Array of codec names that support this hardware
|
|
284
298
|
*
|
|
285
299
|
* @example
|
|
@@ -323,6 +337,7 @@ export declare class HardwareContext implements Disposable {
|
|
|
323
337
|
* Used internally to find hardware-specific encoder implementations.
|
|
324
338
|
*
|
|
325
339
|
* @param codecId - AVCodecID enum value
|
|
340
|
+
*
|
|
326
341
|
* @returns Base codec name or null if unsupported
|
|
327
342
|
*
|
|
328
343
|
* @internal
|
|
@@ -345,7 +360,9 @@ export declare class HardwareContext implements Disposable {
|
|
|
345
360
|
* Internal factory method using av_hwdevice_ctx_create().
|
|
346
361
|
*
|
|
347
362
|
* @param deviceType - AVHWDeviceType enum value
|
|
363
|
+
*
|
|
348
364
|
* @param device - Optional device specifier
|
|
365
|
+
*
|
|
349
366
|
* @param options - Optional device options
|
|
350
367
|
*
|
|
351
368
|
* @returns Hardware context or null if creation fails
|