node-av 1.3.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 +47 -40
- package/binding.gyp +12 -0
- package/dist/api/bitstream-filter.d.ts +134 -2
- package/dist/api/bitstream-filter.js +200 -2
- package/dist/api/bitstream-filter.js.map +1 -1
- package/dist/api/decoder.d.ts +261 -105
- package/dist/api/decoder.js +384 -171
- package/dist/api/decoder.js.map +1 -1
- package/dist/api/encoder.d.ts +338 -74
- package/dist/api/encoder.js +546 -188
- package/dist/api/encoder.js.map +1 -1
- package/dist/api/filter-presets.d.ts +479 -1513
- package/dist/api/filter-presets.js +1044 -2005
- package/dist/api/filter-presets.js.map +1 -1
- package/dist/api/filter.d.ts +370 -150
- package/dist/api/filter.js +647 -364
- package/dist/api/filter.js.map +1 -1
- package/dist/api/hardware.d.ts +25 -31
- package/dist/api/hardware.js +36 -70
- package/dist/api/hardware.js.map +1 -1
- package/dist/api/index.d.ts +1 -1
- package/dist/api/index.js +1 -1
- package/dist/api/index.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 +208 -2
- package/dist/api/media-input.js +356 -8
- package/dist/api/media-input.js.map +1 -1
- package/dist/api/media-output.d.ts +142 -104
- package/dist/api/media-output.js +446 -179
- package/dist/api/media-output.js.map +1 -1
- package/dist/api/pipeline.d.ts +82 -17
- package/dist/api/pipeline.js +80 -42
- package/dist/api/pipeline.js.map +1 -1
- package/dist/api/types.d.ts +24 -57
- 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 +18 -2
- package/dist/lib/dictionary.js +18 -2
- 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 +119 -2
- package/dist/lib/filter-context.js +119 -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 +356 -20
- package/dist/lib/format-context.js +375 -23
- package/dist/lib/format-context.js.map +1 -1
- package/dist/lib/frame.d.ts +84 -1
- package/dist/lib/frame.js +96 -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 +18 -18
- package/release_notes.md +0 -29
|
@@ -315,8 +315,11 @@ export class FormatContext extends OptionMember {
|
|
|
315
315
|
* Direct mapping to avformat_alloc_output_context2().
|
|
316
316
|
*
|
|
317
317
|
* @param oformat - Specific output format to use
|
|
318
|
+
*
|
|
318
319
|
* @param formatName - Format name (e.g., 'mp4', 'mkv')
|
|
320
|
+
*
|
|
319
321
|
* @param filename - Filename to guess format from extension
|
|
322
|
+
*
|
|
320
323
|
* @returns 0 on success, negative AVERROR on error:
|
|
321
324
|
* - AVERROR_ENOMEM: Memory allocation failure
|
|
322
325
|
* - AVERROR_EINVAL: Invalid parameters
|
|
@@ -357,26 +360,6 @@ export class FormatContext extends OptionMember {
|
|
|
357
360
|
freeContext() {
|
|
358
361
|
this.native.freeContext();
|
|
359
362
|
}
|
|
360
|
-
/**
|
|
361
|
-
* Close an input format context.
|
|
362
|
-
*
|
|
363
|
-
* Closes input file and releases resources.
|
|
364
|
-
*
|
|
365
|
-
* Direct mapping to avformat_close_input().
|
|
366
|
-
*
|
|
367
|
-
* @returns Promise that resolves when closed
|
|
368
|
-
*
|
|
369
|
-
* @example
|
|
370
|
-
* ```typescript
|
|
371
|
-
* await ctx.closeInput();
|
|
372
|
-
* // Input closed and context freed
|
|
373
|
-
* ```
|
|
374
|
-
*
|
|
375
|
-
* @see {@link openInput} To open input
|
|
376
|
-
*/
|
|
377
|
-
async closeInput() {
|
|
378
|
-
return await this.native.closeInput();
|
|
379
|
-
}
|
|
380
363
|
/**
|
|
381
364
|
* Open output file for writing.
|
|
382
365
|
*
|
|
@@ -404,6 +387,32 @@ export class FormatContext extends OptionMember {
|
|
|
404
387
|
async openOutput() {
|
|
405
388
|
return await this.native.openOutput();
|
|
406
389
|
}
|
|
390
|
+
/**
|
|
391
|
+
* Open output file synchronously.
|
|
392
|
+
* Synchronous version of openOutput.
|
|
393
|
+
*
|
|
394
|
+
* Opens output file for writing.
|
|
395
|
+
* I/O context must be set before calling.
|
|
396
|
+
*
|
|
397
|
+
* Direct mapping to avio_open2().
|
|
398
|
+
*
|
|
399
|
+
* @returns 0 on success, negative AVERROR on error:
|
|
400
|
+
* - AVERROR(EIO): I/O error
|
|
401
|
+
* - AVERROR(ENOMEM): Memory allocation failure
|
|
402
|
+
*
|
|
403
|
+
* @example
|
|
404
|
+
* ```typescript
|
|
405
|
+
* import { FFmpegError } from 'node-av';
|
|
406
|
+
*
|
|
407
|
+
* const ret = ctx.openOutputSync();
|
|
408
|
+
* FFmpegError.throwIfError(ret, 'openOutputSync');
|
|
409
|
+
* ```
|
|
410
|
+
*
|
|
411
|
+
* @see {@link openOutput} For async version
|
|
412
|
+
*/
|
|
413
|
+
openOutputSync() {
|
|
414
|
+
return this.native.openOutputSync();
|
|
415
|
+
}
|
|
407
416
|
/**
|
|
408
417
|
* Close output file.
|
|
409
418
|
*
|
|
@@ -424,6 +433,25 @@ export class FormatContext extends OptionMember {
|
|
|
424
433
|
async closeOutput() {
|
|
425
434
|
return await this.native.closeOutput();
|
|
426
435
|
}
|
|
436
|
+
/**
|
|
437
|
+
* Close output file synchronously.
|
|
438
|
+
* Synchronous version of closeOutput.
|
|
439
|
+
*
|
|
440
|
+
* Closes the output file and releases I/O resources.
|
|
441
|
+
*
|
|
442
|
+
* Direct mapping to avio_closep().
|
|
443
|
+
*
|
|
444
|
+
* @example
|
|
445
|
+
* ```typescript
|
|
446
|
+
* ctx.closeOutputSync();
|
|
447
|
+
* // Output file closed
|
|
448
|
+
* ```
|
|
449
|
+
*
|
|
450
|
+
* @see {@link closeOutput} For async version
|
|
451
|
+
*/
|
|
452
|
+
closeOutputSync() {
|
|
453
|
+
this.native.closeOutputSync();
|
|
454
|
+
}
|
|
427
455
|
/**
|
|
428
456
|
* Open input file for reading.
|
|
429
457
|
*
|
|
@@ -433,8 +461,11 @@ export class FormatContext extends OptionMember {
|
|
|
433
461
|
* Direct mapping to avformat_open_input().
|
|
434
462
|
*
|
|
435
463
|
* @param url - URL or file path to open
|
|
464
|
+
*
|
|
436
465
|
* @param fmt - Force specific input format (null for auto-detect)
|
|
466
|
+
*
|
|
437
467
|
* @param options - Format-specific options
|
|
468
|
+
*
|
|
438
469
|
* @returns 0 on success, negative AVERROR on error:
|
|
439
470
|
* - AVERROR_ENOENT: File not found
|
|
440
471
|
* - AVERROR_INVALIDDATA: Invalid file format
|
|
@@ -454,6 +485,78 @@ export class FormatContext extends OptionMember {
|
|
|
454
485
|
async openInput(url, fmt = null, options = null) {
|
|
455
486
|
return await this.native.openInput(url, fmt?.getNative() ?? null, options?.getNative() ?? null);
|
|
456
487
|
}
|
|
488
|
+
/**
|
|
489
|
+
* Open an input file or URL synchronously.
|
|
490
|
+
* Synchronous version of openInput.
|
|
491
|
+
*
|
|
492
|
+
* Opens a media file or stream for reading.
|
|
493
|
+
* The format is auto-detected if not specified.
|
|
494
|
+
*
|
|
495
|
+
* Direct mapping to avformat_open_input().
|
|
496
|
+
*
|
|
497
|
+
* @param url - File path or URL to open
|
|
498
|
+
*
|
|
499
|
+
* @param fmt - Force specific format (null for auto-detect)
|
|
500
|
+
*
|
|
501
|
+
* @param options - Format-specific options
|
|
502
|
+
*
|
|
503
|
+
* @returns 0 on success, negative AVERROR on error:
|
|
504
|
+
* - AVERROR_EINVAL: Invalid arguments
|
|
505
|
+
* - AVERROR(EIO): I/O error
|
|
506
|
+
* - AVERROR(ENOMEM): Memory allocation failure
|
|
507
|
+
*
|
|
508
|
+
* @example
|
|
509
|
+
* ```typescript
|
|
510
|
+
* import { FFmpegError } from 'node-av';
|
|
511
|
+
*
|
|
512
|
+
* const ret = ctx.openInputSync('input.mp4');
|
|
513
|
+
* FFmpegError.throwIfError(ret, 'openInputSync');
|
|
514
|
+
* ```
|
|
515
|
+
*
|
|
516
|
+
* @see {@link openInput} For async version
|
|
517
|
+
*/
|
|
518
|
+
openInputSync(url, fmt = null, options = null) {
|
|
519
|
+
return this.native.openInputSync(url, fmt?.getNative() ?? null, options?.getNative() ?? null);
|
|
520
|
+
}
|
|
521
|
+
/**
|
|
522
|
+
* Close an input format context.
|
|
523
|
+
*
|
|
524
|
+
* Closes input file and releases resources.
|
|
525
|
+
*
|
|
526
|
+
* Direct mapping to avformat_close_input().
|
|
527
|
+
*
|
|
528
|
+
* @returns Promise that resolves when closed
|
|
529
|
+
*
|
|
530
|
+
* @example
|
|
531
|
+
* ```typescript
|
|
532
|
+
* await ctx.closeInput();
|
|
533
|
+
* // Input closed and context freed
|
|
534
|
+
* ```
|
|
535
|
+
*
|
|
536
|
+
* @see {@link openInput} To open input
|
|
537
|
+
*/
|
|
538
|
+
async closeInput() {
|
|
539
|
+
return await this.native.closeInput();
|
|
540
|
+
}
|
|
541
|
+
/**
|
|
542
|
+
* Close an input format context synchronously.
|
|
543
|
+
* Synchronous version of closeInput.
|
|
544
|
+
*
|
|
545
|
+
* Closes input file and releases resources.
|
|
546
|
+
*
|
|
547
|
+
* Direct mapping to avformat_close_input().
|
|
548
|
+
*
|
|
549
|
+
* @example
|
|
550
|
+
* ```typescript
|
|
551
|
+
* ctx.closeInputSync();
|
|
552
|
+
* // Input closed and context freed
|
|
553
|
+
* ```
|
|
554
|
+
*
|
|
555
|
+
* @see {@link closeInput} For async version
|
|
556
|
+
*/
|
|
557
|
+
closeInputSync() {
|
|
558
|
+
this.native.closeInputSync();
|
|
559
|
+
}
|
|
457
560
|
/**
|
|
458
561
|
* Analyze streams to get stream info.
|
|
459
562
|
*
|
|
@@ -463,6 +566,7 @@ export class FormatContext extends OptionMember {
|
|
|
463
566
|
* Direct mapping to avformat_find_stream_info().
|
|
464
567
|
*
|
|
465
568
|
* @param options - Per-stream options array
|
|
569
|
+
*
|
|
466
570
|
* @returns >=0 on success, negative AVERROR on error:
|
|
467
571
|
* - AVERROR_EOF: End of file reached
|
|
468
572
|
* - AVERROR_ENOMEM: Memory allocation failure
|
|
@@ -481,6 +585,35 @@ export class FormatContext extends OptionMember {
|
|
|
481
585
|
async findStreamInfo(options = null) {
|
|
482
586
|
return await this.native.findStreamInfo(options?.map((d) => d.getNative()) ?? null);
|
|
483
587
|
}
|
|
588
|
+
/**
|
|
589
|
+
* Analyze streams to get stream info synchronously.
|
|
590
|
+
* Synchronous version of findStreamInfo.
|
|
591
|
+
*
|
|
592
|
+
* Reads packet headers to fill in stream information.
|
|
593
|
+
* Should be called after openInputSync for accurate stream data.
|
|
594
|
+
*
|
|
595
|
+
* Direct mapping to avformat_find_stream_info().
|
|
596
|
+
*
|
|
597
|
+
* @param options - Options dictionary (single, not array for sync version)
|
|
598
|
+
*
|
|
599
|
+
* @returns >=0 on success, negative AVERROR on error:
|
|
600
|
+
* - AVERROR_EOF: End of file reached
|
|
601
|
+
* - AVERROR_ENOMEM: Memory allocation failure
|
|
602
|
+
*
|
|
603
|
+
* @example
|
|
604
|
+
* ```typescript
|
|
605
|
+
* import { FFmpegError } from 'node-av';
|
|
606
|
+
*
|
|
607
|
+
* const ret = ctx.findStreamInfoSync();
|
|
608
|
+
* FFmpegError.throwIfError(ret, 'findStreamInfoSync');
|
|
609
|
+
* console.log(`Found ${ctx.nbStreams} streams`);
|
|
610
|
+
* ```
|
|
611
|
+
*
|
|
612
|
+
* @see {@link findStreamInfo} For async version
|
|
613
|
+
*/
|
|
614
|
+
findStreamInfoSync(options = null) {
|
|
615
|
+
return this.native.findStreamInfoSync(options?.getNative() ?? null);
|
|
616
|
+
}
|
|
484
617
|
/**
|
|
485
618
|
* Read next packet from the input.
|
|
486
619
|
*
|
|
@@ -490,6 +623,7 @@ export class FormatContext extends OptionMember {
|
|
|
490
623
|
* Direct mapping to av_read_frame().
|
|
491
624
|
*
|
|
492
625
|
* @param pkt - Packet to read into
|
|
626
|
+
*
|
|
493
627
|
* @returns 0 on success, negative AVERROR on error:
|
|
494
628
|
* - AVERROR_EOF: End of file
|
|
495
629
|
* - AVERROR_EAGAIN: Temporarily unavailable
|
|
@@ -519,6 +653,46 @@ export class FormatContext extends OptionMember {
|
|
|
519
653
|
async readFrame(pkt) {
|
|
520
654
|
return await this.native.readFrame(pkt.getNative());
|
|
521
655
|
}
|
|
656
|
+
/**
|
|
657
|
+
* Read next packet from the input synchronously.
|
|
658
|
+
* Synchronous version of readFrame.
|
|
659
|
+
*
|
|
660
|
+
* Reads and returns the next packet in the stream.
|
|
661
|
+
* Packet must be unreferenced after use.
|
|
662
|
+
*
|
|
663
|
+
* Direct mapping to av_read_frame().
|
|
664
|
+
*
|
|
665
|
+
* @param pkt - Packet to read into
|
|
666
|
+
*
|
|
667
|
+
* @returns 0 on success, negative AVERROR on error:
|
|
668
|
+
* - AVERROR_EOF: End of file
|
|
669
|
+
* - AVERROR_EAGAIN: Temporarily unavailable
|
|
670
|
+
*
|
|
671
|
+
* @example
|
|
672
|
+
* ```typescript
|
|
673
|
+
* import { FFmpegError } from 'node-av';
|
|
674
|
+
* import { AVERROR_EOF } from 'node-av';
|
|
675
|
+
*
|
|
676
|
+
* const packet = new Packet();
|
|
677
|
+
* packet.alloc();
|
|
678
|
+
*
|
|
679
|
+
* let ret;
|
|
680
|
+
* while ((ret = ctx.readFrameSync(packet)) >= 0) {
|
|
681
|
+
* // Process packet
|
|
682
|
+
* console.log(`Stream ${packet.streamIndex}, PTS: ${packet.pts}`);
|
|
683
|
+
* packet.unref();
|
|
684
|
+
* }
|
|
685
|
+
*
|
|
686
|
+
* if (ret !== AVERROR_EOF) {
|
|
687
|
+
* FFmpegError.throwIfError(ret, 'readFrameSync');
|
|
688
|
+
* }
|
|
689
|
+
* ```
|
|
690
|
+
*
|
|
691
|
+
* @see {@link readFrame} For async version
|
|
692
|
+
*/
|
|
693
|
+
readFrameSync(pkt) {
|
|
694
|
+
return this.native.readFrameSync(pkt.getNative());
|
|
695
|
+
}
|
|
522
696
|
/**
|
|
523
697
|
* Seek to timestamp in stream.
|
|
524
698
|
*
|
|
@@ -527,8 +701,11 @@ export class FormatContext extends OptionMember {
|
|
|
527
701
|
* Direct mapping to av_seek_frame().
|
|
528
702
|
*
|
|
529
703
|
* @param streamIndex - Stream to seek in (-1 for default)
|
|
704
|
+
*
|
|
530
705
|
* @param timestamp - Target timestamp in stream time base
|
|
706
|
+
*
|
|
531
707
|
* @param flags - Seek flags (AVSEEK_FLAG_*)
|
|
708
|
+
*
|
|
532
709
|
* @returns >=0 on success, negative AVERROR on error:
|
|
533
710
|
* - AVERROR_EINVAL: Invalid parameters
|
|
534
711
|
* - AVERROR_EOF: Seek beyond file
|
|
@@ -548,6 +725,41 @@ export class FormatContext extends OptionMember {
|
|
|
548
725
|
async seekFrame(streamIndex, timestamp, flags = AVFLAG_NONE) {
|
|
549
726
|
return await this.native.seekFrame(streamIndex, timestamp, flags);
|
|
550
727
|
}
|
|
728
|
+
/**
|
|
729
|
+
* Seek to timestamp in stream synchronously.
|
|
730
|
+
* Synchronous version of seekFrame.
|
|
731
|
+
*
|
|
732
|
+
* Seeks to closest keyframe at or before timestamp.
|
|
733
|
+
* Timestamp is in stream timebase units.
|
|
734
|
+
*
|
|
735
|
+
* Direct mapping to av_seek_frame().
|
|
736
|
+
*
|
|
737
|
+
* @param streamIndex - Stream to seek in (-1 for default)
|
|
738
|
+
*
|
|
739
|
+
* @param timestamp - Target timestamp in stream timebase
|
|
740
|
+
*
|
|
741
|
+
* @param flags - Seek flags (AVSEEK_FLAG_*)
|
|
742
|
+
*
|
|
743
|
+
* @returns >=0 on success, negative AVERROR on error:
|
|
744
|
+
* - AVERROR_EINVAL: Invalid arguments
|
|
745
|
+
* - AVERROR(EIO): I/O error
|
|
746
|
+
*
|
|
747
|
+
* @example
|
|
748
|
+
* ```typescript
|
|
749
|
+
* import { FFmpegError } from 'node-av';
|
|
750
|
+
* import { AVSEEK_FLAG_BACKWARD } from 'node-av/constants';
|
|
751
|
+
*
|
|
752
|
+
* // Seek to 10 seconds
|
|
753
|
+
* const timestamp = 10n * 1000000n; // Assuming microsecond timebase
|
|
754
|
+
* const ret = ctx.seekFrameSync(-1, timestamp, AVSEEK_FLAG_BACKWARD);
|
|
755
|
+
* FFmpegError.throwIfError(ret, 'seekFrameSync');
|
|
756
|
+
* ```
|
|
757
|
+
*
|
|
758
|
+
* @see {@link seekFrame} For async version
|
|
759
|
+
*/
|
|
760
|
+
seekFrameSync(streamIndex, timestamp, flags = AVFLAG_NONE) {
|
|
761
|
+
return this.native.seekFrameSync(streamIndex, timestamp, flags);
|
|
762
|
+
}
|
|
551
763
|
/**
|
|
552
764
|
* Seek to timestamp with bounds.
|
|
553
765
|
*
|
|
@@ -556,10 +768,15 @@ export class FormatContext extends OptionMember {
|
|
|
556
768
|
* Direct mapping to avformat_seek_file().
|
|
557
769
|
*
|
|
558
770
|
* @param streamIndex - Stream to seek in (-1 for default)
|
|
771
|
+
*
|
|
559
772
|
* @param minTs - Minimum acceptable timestamp
|
|
773
|
+
*
|
|
560
774
|
* @param ts - Target timestamp
|
|
775
|
+
*
|
|
561
776
|
* @param maxTs - Maximum acceptable timestamp
|
|
777
|
+
*
|
|
562
778
|
* @param flags - Seek flags
|
|
779
|
+
*
|
|
563
780
|
* @returns >=0 on success, negative AVERROR on error
|
|
564
781
|
*
|
|
565
782
|
* @example
|
|
@@ -591,6 +808,7 @@ export class FormatContext extends OptionMember {
|
|
|
591
808
|
* Direct mapping to avformat_write_header().
|
|
592
809
|
*
|
|
593
810
|
* @param options - Muxer-specific options
|
|
811
|
+
*
|
|
594
812
|
* @returns 0 on success, negative AVERROR on error:
|
|
595
813
|
* - AVERROR_EINVAL: Invalid parameters
|
|
596
814
|
* - AVERROR_EIO: I/O error
|
|
@@ -610,6 +828,33 @@ export class FormatContext extends OptionMember {
|
|
|
610
828
|
async writeHeader(options = null) {
|
|
611
829
|
return await this.native.writeHeader(options?.getNative() ?? null);
|
|
612
830
|
}
|
|
831
|
+
/**
|
|
832
|
+
* Write file header synchronously.
|
|
833
|
+
* Synchronous version of writeHeader.
|
|
834
|
+
*
|
|
835
|
+
* Writes format header to output file.
|
|
836
|
+
* Must be called before writing packets.
|
|
837
|
+
*
|
|
838
|
+
* Direct mapping to avformat_write_header().
|
|
839
|
+
*
|
|
840
|
+
* @param options - Muxer-specific options
|
|
841
|
+
*
|
|
842
|
+
* @returns 0 on success, negative AVERROR on error:
|
|
843
|
+
* - AVERROR_EINVAL: Invalid parameters
|
|
844
|
+
*
|
|
845
|
+
* @example
|
|
846
|
+
* ```typescript
|
|
847
|
+
* import { FFmpegError } from 'node-av';
|
|
848
|
+
*
|
|
849
|
+
* const ret = ctx.writeHeaderSync();
|
|
850
|
+
* FFmpegError.throwIfError(ret, 'writeHeaderSync');
|
|
851
|
+
* ```
|
|
852
|
+
*
|
|
853
|
+
* @see {@link writeHeader} For async version
|
|
854
|
+
*/
|
|
855
|
+
writeHeaderSync(options = null) {
|
|
856
|
+
return this.native.writeHeaderSync(options?.getNative() ?? null);
|
|
857
|
+
}
|
|
613
858
|
/**
|
|
614
859
|
* Write packet to output.
|
|
615
860
|
*
|
|
@@ -619,6 +864,7 @@ export class FormatContext extends OptionMember {
|
|
|
619
864
|
* Direct mapping to av_write_frame().
|
|
620
865
|
*
|
|
621
866
|
* @param pkt - Packet to write (null to flush)
|
|
867
|
+
*
|
|
622
868
|
* @returns 0 on success, negative AVERROR on error:
|
|
623
869
|
* - AVERROR_EINVAL: Invalid packet
|
|
624
870
|
* - AVERROR_EIO: I/O error
|
|
@@ -636,6 +882,32 @@ export class FormatContext extends OptionMember {
|
|
|
636
882
|
async writeFrame(pkt) {
|
|
637
883
|
return await this.native.writeFrame(pkt ? pkt.getNative() : null);
|
|
638
884
|
}
|
|
885
|
+
/**
|
|
886
|
+
* Write packet to output synchronously.
|
|
887
|
+
* Synchronous version of writeFrame.
|
|
888
|
+
*
|
|
889
|
+
* Writes a packet directly without interleaving.
|
|
890
|
+
* Caller must handle correct interleaving.
|
|
891
|
+
*
|
|
892
|
+
* Direct mapping to av_write_frame().
|
|
893
|
+
*
|
|
894
|
+
* @param pkt - Packet to write (null to flush)
|
|
895
|
+
*
|
|
896
|
+
* @returns 0 on success, negative AVERROR on error
|
|
897
|
+
*
|
|
898
|
+
* @example
|
|
899
|
+
* ```typescript
|
|
900
|
+
* import { FFmpegError } from 'node-av';
|
|
901
|
+
*
|
|
902
|
+
* const ret = ctx.writeFrameSync(packet);
|
|
903
|
+
* FFmpegError.throwIfError(ret, 'writeFrameSync');
|
|
904
|
+
* ```
|
|
905
|
+
*
|
|
906
|
+
* @see {@link writeFrame} For async version
|
|
907
|
+
*/
|
|
908
|
+
writeFrameSync(pkt) {
|
|
909
|
+
return this.native.writeFrameSync(pkt ? pkt.getNative() : null);
|
|
910
|
+
}
|
|
639
911
|
/**
|
|
640
912
|
* Write packet with automatic interleaving.
|
|
641
913
|
*
|
|
@@ -645,6 +917,7 @@ export class FormatContext extends OptionMember {
|
|
|
645
917
|
* Direct mapping to av_interleaved_write_frame().
|
|
646
918
|
*
|
|
647
919
|
* @param pkt - Packet to write (null to flush)
|
|
920
|
+
*
|
|
648
921
|
* @returns 0 on success, negative AVERROR on error:
|
|
649
922
|
* - AVERROR_EINVAL: Invalid packet
|
|
650
923
|
* - AVERROR_EIO: I/O error
|
|
@@ -666,6 +939,38 @@ export class FormatContext extends OptionMember {
|
|
|
666
939
|
async interleavedWriteFrame(pkt) {
|
|
667
940
|
return await this.native.interleavedWriteFrame(pkt ? pkt.getNative() : null);
|
|
668
941
|
}
|
|
942
|
+
/**
|
|
943
|
+
* Write packet with automatic interleaving synchronously.
|
|
944
|
+
* Synchronous version of interleavedWriteFrame.
|
|
945
|
+
*
|
|
946
|
+
* Writes packet with proper interleaving for muxing.
|
|
947
|
+
* Preferred method for writing packets.
|
|
948
|
+
*
|
|
949
|
+
* Direct mapping to av_interleaved_write_frame().
|
|
950
|
+
*
|
|
951
|
+
* @param pkt - Packet to write (null to flush)
|
|
952
|
+
*
|
|
953
|
+
* @returns 0 on success, negative AVERROR on error:
|
|
954
|
+
* - AVERROR_EINVAL: Invalid parameters
|
|
955
|
+
* - AVERROR(EIO): I/O error
|
|
956
|
+
*
|
|
957
|
+
* @example
|
|
958
|
+
* ```typescript
|
|
959
|
+
* import { FFmpegError } from 'node-av';
|
|
960
|
+
*
|
|
961
|
+
* // Write packet
|
|
962
|
+
* const ret = ctx.interleavedWriteFrameSync(packet);
|
|
963
|
+
* FFmpegError.throwIfError(ret, 'interleavedWriteFrameSync');
|
|
964
|
+
*
|
|
965
|
+
* // Flush interleaved packets
|
|
966
|
+
* ctx.interleavedWriteFrameSync(null);
|
|
967
|
+
* ```
|
|
968
|
+
*
|
|
969
|
+
* @see {@link interleavedWriteFrame} For async version
|
|
970
|
+
*/
|
|
971
|
+
interleavedWriteFrameSync(pkt) {
|
|
972
|
+
return this.native.interleavedWriteFrameSync(pkt ? pkt.getNative() : null);
|
|
973
|
+
}
|
|
669
974
|
/**
|
|
670
975
|
* Write file trailer.
|
|
671
976
|
*
|
|
@@ -691,6 +996,31 @@ export class FormatContext extends OptionMember {
|
|
|
691
996
|
async writeTrailer() {
|
|
692
997
|
return await this.native.writeTrailer();
|
|
693
998
|
}
|
|
999
|
+
/**
|
|
1000
|
+
* Write file trailer synchronously.
|
|
1001
|
+
* Synchronous version of writeTrailer.
|
|
1002
|
+
*
|
|
1003
|
+
* Finalizes the output file, writing index and metadata.
|
|
1004
|
+
* Must be called to properly close output files.
|
|
1005
|
+
*
|
|
1006
|
+
* Direct mapping to av_write_trailer().
|
|
1007
|
+
*
|
|
1008
|
+
* @returns 0 on success, negative AVERROR on error
|
|
1009
|
+
*
|
|
1010
|
+
* @example
|
|
1011
|
+
* ```typescript
|
|
1012
|
+
* import { FFmpegError } from 'node-av';
|
|
1013
|
+
*
|
|
1014
|
+
* const ret = ctx.writeTrailerSync();
|
|
1015
|
+
* FFmpegError.throwIfError(ret, 'writeTrailerSync');
|
|
1016
|
+
* // File is now finalized
|
|
1017
|
+
* ```
|
|
1018
|
+
*
|
|
1019
|
+
* @see {@link writeTrailer} For async version
|
|
1020
|
+
*/
|
|
1021
|
+
writeTrailerSync() {
|
|
1022
|
+
return this.native.writeTrailerSync();
|
|
1023
|
+
}
|
|
694
1024
|
/**
|
|
695
1025
|
* Flush buffered data.
|
|
696
1026
|
*
|
|
@@ -700,12 +1030,31 @@ export class FormatContext extends OptionMember {
|
|
|
700
1030
|
*
|
|
701
1031
|
* @example
|
|
702
1032
|
* ```typescript
|
|
703
|
-
* ctx.flush();
|
|
1033
|
+
* await ctx.flush();
|
|
704
1034
|
* // Buffered data written to output
|
|
705
1035
|
* ```
|
|
706
1036
|
*/
|
|
707
|
-
flush() {
|
|
708
|
-
this.native.flush();
|
|
1037
|
+
async flush() {
|
|
1038
|
+
await this.native.flush();
|
|
1039
|
+
}
|
|
1040
|
+
/**
|
|
1041
|
+
* Flush buffered data synchronously.
|
|
1042
|
+
* Synchronous version of flush.
|
|
1043
|
+
*
|
|
1044
|
+
* Flushes any buffered packets in muxers.
|
|
1045
|
+
*
|
|
1046
|
+
* Direct mapping to avio_flush().
|
|
1047
|
+
*
|
|
1048
|
+
* @example
|
|
1049
|
+
* ```typescript
|
|
1050
|
+
* ctx.flushSync();
|
|
1051
|
+
* // Buffered data written to output
|
|
1052
|
+
* ```
|
|
1053
|
+
*
|
|
1054
|
+
* @see {@link flush} For async version
|
|
1055
|
+
*/
|
|
1056
|
+
flushSync() {
|
|
1057
|
+
this.native.flushSync();
|
|
709
1058
|
}
|
|
710
1059
|
/**
|
|
711
1060
|
* Print format information.
|
|
@@ -716,7 +1065,9 @@ export class FormatContext extends OptionMember {
|
|
|
716
1065
|
* Direct mapping to av_dump_format().
|
|
717
1066
|
*
|
|
718
1067
|
* @param index - Stream index to highlight (-1 for none)
|
|
1068
|
+
*
|
|
719
1069
|
* @param url - URL to display
|
|
1070
|
+
*
|
|
720
1071
|
* @param isOutput - True for output format, false for input
|
|
721
1072
|
*
|
|
722
1073
|
* @example
|
|
@@ -754,6 +1105,7 @@ export class FormatContext extends OptionMember {
|
|
|
754
1105
|
* Direct mapping to avformat_new_stream().
|
|
755
1106
|
*
|
|
756
1107
|
* @param c - Codec for the stream (optional)
|
|
1108
|
+
*
|
|
757
1109
|
* @returns New stream instance
|
|
758
1110
|
*
|
|
759
1111
|
* @example
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"format-context.js","sourceRoot":"","sources":["../../src/lib/format-context.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"format-context.js","sourceRoot":"","sources":["../../src/lib/format-context.ts"],"names":[],"mappings":"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"}
|