node-av 2.0.0 → 2.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +10 -2
- 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 +145 -0
- package/dist/api/decoder.js +225 -0
- package/dist/api/decoder.js.map +1 -1
- package/dist/api/encoder.d.ts +206 -0
- package/dist/api/encoder.js +315 -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 +225 -0
- package/dist/api/filter.js +363 -0
- package/dist/api/filter.js.map +1 -1
- package/dist/api/hardware.d.ts +17 -0
- package/dist/api/hardware.js +17 -0
- 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 +207 -1
- package/dist/api/media-input.js +353 -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 +65 -0
- 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.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 +212 -0
- package/dist/lib/io-context.js +228 -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 +13 -13
package/dist/api/filter.js
CHANGED
|
@@ -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
|
|
@@ -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
|
|
@@ -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 = await FilterAPI.create('scale=640:480', {
|
|
535
|
+
* timeBase: video.timeBase
|
|
536
|
+
* });
|
|
537
|
+
* const filter2 = await 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
|
*
|
package/dist/api/filter.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filter.js","sourceRoot":"","sources":["../../src/api/filter.ts"],"names":[],"mappings":"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"}
|
|
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
|
package/dist/api/hardware.js
CHANGED
|
@@ -41,8 +41,11 @@ export class HardwareContext {
|
|
|
41
41
|
_isDisposed = false;
|
|
42
42
|
/**
|
|
43
43
|
* @param deviceContext - Initialized hardware device context
|
|
44
|
+
*
|
|
44
45
|
* @param deviceType - Hardware device type enum
|
|
46
|
+
*
|
|
45
47
|
* @param deviceTypeName - Human-readable device type name
|
|
48
|
+
*
|
|
46
49
|
* @internal
|
|
47
50
|
*/
|
|
48
51
|
constructor(deviceContext, deviceType, deviceTypeName) {
|
|
@@ -59,6 +62,7 @@ export class HardwareContext {
|
|
|
59
62
|
* Platform-specific preference order ensures optimal performance.
|
|
60
63
|
*
|
|
61
64
|
* @param options - Optional hardware configuration
|
|
65
|
+
*
|
|
62
66
|
* @returns Hardware context or null if unavailable
|
|
63
67
|
*
|
|
64
68
|
* @example
|
|
@@ -104,8 +108,11 @@ export class HardwareContext {
|
|
|
104
108
|
* Direct mapping to av_hwdevice_ctx_create().
|
|
105
109
|
*
|
|
106
110
|
* @param deviceType - Hardware device type from AVHWDeviceType
|
|
111
|
+
*
|
|
107
112
|
* @param device - Optional device specifier (e.g., GPU index, device path)
|
|
113
|
+
*
|
|
108
114
|
* @param options - Optional device initialization options
|
|
115
|
+
*
|
|
109
116
|
* @returns Initialized hardware context
|
|
110
117
|
*
|
|
111
118
|
* @throws {Error} If device type unsupported or initialization fails
|
|
@@ -251,7 +258,9 @@ export class HardwareContext {
|
|
|
251
258
|
* Direct mapping to avcodec_get_hw_config().
|
|
252
259
|
*
|
|
253
260
|
* @param codecId - Codec ID from AVCodecID enum
|
|
261
|
+
*
|
|
254
262
|
* @param isEncoder - Check for encoder support (default: decoder)
|
|
263
|
+
*
|
|
255
264
|
* @returns true if codec is supported
|
|
256
265
|
*
|
|
257
266
|
* @example
|
|
@@ -285,8 +294,11 @@ export class HardwareContext {
|
|
|
285
294
|
* Important for ensuring format compatibility in pipelines.
|
|
286
295
|
*
|
|
287
296
|
* @param codecId - Codec ID from AVCodecID enum
|
|
297
|
+
*
|
|
288
298
|
* @param pixelFormat - Pixel format to check
|
|
299
|
+
*
|
|
289
300
|
* @param isEncoder - Check for encoder (default: decoder)
|
|
301
|
+
*
|
|
290
302
|
* @returns true if pixel format is supported
|
|
291
303
|
*
|
|
292
304
|
* @example
|
|
@@ -319,6 +331,7 @@ export class HardwareContext {
|
|
|
319
331
|
* Automatically tests encoder viability before returning.
|
|
320
332
|
*
|
|
321
333
|
* @param codec - Generic codec name (e.g., 'h264', 'hevc', 'av1') or AVCodecID
|
|
334
|
+
*
|
|
322
335
|
* @returns Hardware encoder codec or null if unsupported
|
|
323
336
|
*
|
|
324
337
|
* @example
|
|
@@ -421,6 +434,7 @@ export class HardwareContext {
|
|
|
421
434
|
* Direct mapping to av_codec_iterate() with hardware config checks.
|
|
422
435
|
*
|
|
423
436
|
* @param isEncoder - Find encoders (true) or decoders (false)
|
|
437
|
+
*
|
|
424
438
|
* @returns Array of codec names that support this hardware
|
|
425
439
|
*
|
|
426
440
|
* @example
|
|
@@ -496,6 +510,7 @@ export class HardwareContext {
|
|
|
496
510
|
* Used internally to find hardware-specific encoder implementations.
|
|
497
511
|
*
|
|
498
512
|
* @param codecId - AVCodecID enum value
|
|
513
|
+
*
|
|
499
514
|
* @returns Base codec name or null if unsupported
|
|
500
515
|
*
|
|
501
516
|
* @internal
|
|
@@ -572,7 +587,9 @@ export class HardwareContext {
|
|
|
572
587
|
* Internal factory method using av_hwdevice_ctx_create().
|
|
573
588
|
*
|
|
574
589
|
* @param deviceType - AVHWDeviceType enum value
|
|
590
|
+
*
|
|
575
591
|
* @param device - Optional device specifier
|
|
592
|
+
*
|
|
576
593
|
* @param options - Optional device options
|
|
577
594
|
*
|
|
578
595
|
* @returns Hardware context or null if creation fails
|