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.
Files changed (123) hide show
  1. package/README.md +10 -2
  2. package/binding.gyp +12 -0
  3. package/dist/api/bitstream-filter.d.ts +132 -0
  4. package/dist/api/bitstream-filter.js +198 -0
  5. package/dist/api/bitstream-filter.js.map +1 -1
  6. package/dist/api/decoder.d.ts +145 -0
  7. package/dist/api/decoder.js +225 -0
  8. package/dist/api/decoder.js.map +1 -1
  9. package/dist/api/encoder.d.ts +206 -0
  10. package/dist/api/encoder.js +315 -0
  11. package/dist/api/encoder.js.map +1 -1
  12. package/dist/api/filter-presets.d.ts +92 -0
  13. package/dist/api/filter-presets.js +92 -0
  14. package/dist/api/filter-presets.js.map +1 -1
  15. package/dist/api/filter.d.ts +225 -0
  16. package/dist/api/filter.js +363 -0
  17. package/dist/api/filter.js.map +1 -1
  18. package/dist/api/hardware.d.ts +17 -0
  19. package/dist/api/hardware.js +17 -0
  20. package/dist/api/hardware.js.map +1 -1
  21. package/dist/api/io-stream.d.ts +6 -0
  22. package/dist/api/io-stream.js +2 -0
  23. package/dist/api/io-stream.js.map +1 -1
  24. package/dist/api/media-input.d.ts +207 -1
  25. package/dist/api/media-input.js +353 -0
  26. package/dist/api/media-input.js.map +1 -1
  27. package/dist/api/media-output.d.ts +132 -1
  28. package/dist/api/media-output.js +339 -0
  29. package/dist/api/media-output.js.map +1 -1
  30. package/dist/api/pipeline.d.ts +65 -0
  31. package/dist/api/pipeline.js +61 -0
  32. package/dist/api/pipeline.js.map +1 -1
  33. package/dist/api/types.d.ts +7 -0
  34. package/dist/api/utils.js +2 -0
  35. package/dist/api/utils.js.map +1 -1
  36. package/dist/lib/audio-fifo.d.ts +103 -0
  37. package/dist/lib/audio-fifo.js +109 -0
  38. package/dist/lib/audio-fifo.js.map +1 -1
  39. package/dist/lib/binding.d.ts +1 -0
  40. package/dist/lib/binding.js.map +1 -1
  41. package/dist/lib/bitstream-filter-context.d.ts +79 -0
  42. package/dist/lib/bitstream-filter-context.js +83 -0
  43. package/dist/lib/bitstream-filter-context.js.map +1 -1
  44. package/dist/lib/bitstream-filter.d.ts +2 -0
  45. package/dist/lib/bitstream-filter.js +2 -0
  46. package/dist/lib/bitstream-filter.js.map +1 -1
  47. package/dist/lib/codec-context.d.ts +168 -0
  48. package/dist/lib/codec-context.js +178 -0
  49. package/dist/lib/codec-context.js.map +1 -1
  50. package/dist/lib/codec-parameters.d.ts +3 -0
  51. package/dist/lib/codec-parameters.js +3 -0
  52. package/dist/lib/codec-parameters.js.map +1 -1
  53. package/dist/lib/codec-parser.d.ts +6 -0
  54. package/dist/lib/codec-parser.js +6 -0
  55. package/dist/lib/codec-parser.js.map +1 -1
  56. package/dist/lib/codec.d.ts +12 -0
  57. package/dist/lib/codec.js +12 -0
  58. package/dist/lib/codec.js.map +1 -1
  59. package/dist/lib/dictionary.d.ts +16 -0
  60. package/dist/lib/dictionary.js +16 -0
  61. package/dist/lib/dictionary.js.map +1 -1
  62. package/dist/lib/error.d.ts +8 -0
  63. package/dist/lib/error.js +9 -0
  64. package/dist/lib/error.js.map +1 -1
  65. package/dist/lib/filter-context.d.ts +100 -0
  66. package/dist/lib/filter-context.js +104 -0
  67. package/dist/lib/filter-context.js.map +1 -1
  68. package/dist/lib/filter-graph.d.ts +80 -0
  69. package/dist/lib/filter-graph.js +84 -0
  70. package/dist/lib/filter-graph.js.map +1 -1
  71. package/dist/lib/filter-inout.d.ts +1 -0
  72. package/dist/lib/filter-inout.js +1 -0
  73. package/dist/lib/filter-inout.js.map +1 -1
  74. package/dist/lib/filter.d.ts +2 -0
  75. package/dist/lib/filter.js +2 -0
  76. package/dist/lib/filter.js.map +1 -1
  77. package/dist/lib/format-context.d.ts +338 -2
  78. package/dist/lib/format-context.js +355 -3
  79. package/dist/lib/format-context.js.map +1 -1
  80. package/dist/lib/frame.d.ts +41 -0
  81. package/dist/lib/frame.js +43 -0
  82. package/dist/lib/frame.js.map +1 -1
  83. package/dist/lib/hardware-device-context.d.ts +8 -0
  84. package/dist/lib/hardware-device-context.js +8 -0
  85. package/dist/lib/hardware-device-context.js.map +1 -1
  86. package/dist/lib/hardware-frames-context.d.ts +55 -0
  87. package/dist/lib/hardware-frames-context.js +57 -0
  88. package/dist/lib/hardware-frames-context.js.map +1 -1
  89. package/dist/lib/input-format.d.ts +43 -3
  90. package/dist/lib/input-format.js +48 -0
  91. package/dist/lib/input-format.js.map +1 -1
  92. package/dist/lib/io-context.d.ts +212 -0
  93. package/dist/lib/io-context.js +228 -0
  94. package/dist/lib/io-context.js.map +1 -1
  95. package/dist/lib/log.d.ts +2 -0
  96. package/dist/lib/log.js +2 -0
  97. package/dist/lib/log.js.map +1 -1
  98. package/dist/lib/native-types.d.ts +39 -1
  99. package/dist/lib/option.d.ts +90 -0
  100. package/dist/lib/option.js +97 -0
  101. package/dist/lib/option.js.map +1 -1
  102. package/dist/lib/output-format.d.ts +4 -0
  103. package/dist/lib/output-format.js +4 -0
  104. package/dist/lib/output-format.js.map +1 -1
  105. package/dist/lib/packet.d.ts +7 -0
  106. package/dist/lib/packet.js +7 -0
  107. package/dist/lib/packet.js.map +1 -1
  108. package/dist/lib/rational.d.ts +1 -0
  109. package/dist/lib/rational.js +1 -0
  110. package/dist/lib/rational.js.map +1 -1
  111. package/dist/lib/software-resample-context.d.ts +64 -0
  112. package/dist/lib/software-resample-context.js +66 -0
  113. package/dist/lib/software-resample-context.js.map +1 -1
  114. package/dist/lib/software-scale-context.d.ts +98 -0
  115. package/dist/lib/software-scale-context.js +102 -0
  116. package/dist/lib/software-scale-context.js.map +1 -1
  117. package/dist/lib/stream.d.ts +1 -0
  118. package/dist/lib/stream.js +1 -0
  119. package/dist/lib/stream.js.map +1 -1
  120. package/dist/lib/utilities.d.ts +60 -0
  121. package/dist/lib/utilities.js +60 -0
  122. package/dist/lib/utilities.js.map +1 -1
  123. package/package.json +13 -13
@@ -1,3 +1,4 @@
1
+ import { mkdirSync } from 'fs';
1
2
  import { mkdir } from 'fs/promises';
2
3
  import { dirname, resolve } from 'path';
3
4
  import { AVFMT_FLAG_CUSTOM_IO, AVFMT_NOFILE, AVIO_FLAG_WRITE } from '../constants/constants.js';
@@ -75,7 +76,9 @@ export class MediaOutput {
75
76
  * Direct mapping to avformat_alloc_output_context2() and avio_open2().
76
77
  *
77
78
  * @param target - File path, URL, or I/O callbacks
79
+ *
78
80
  * @param options - Output configuration options
81
+ *
79
82
  * @returns Opened media output instance
80
83
  *
81
84
  * @throws {Error} If format required for custom I/O
@@ -193,6 +196,116 @@ export class MediaOutput {
193
196
  throw error;
194
197
  }
195
198
  }
199
+ /**
200
+ * Open media output for writing synchronously.
201
+ * Synchronous version of open.
202
+ *
203
+ * Creates and configures output context for muxing.
204
+ * Automatically creates directories for file output.
205
+ * Supports files, URLs, and custom I/O callbacks.
206
+ *
207
+ * Direct mapping to avformat_alloc_output_context2() and avio_open2().
208
+ *
209
+ * @param target - File path, URL, or I/O callbacks
210
+ *
211
+ * @param options - Output configuration options
212
+ *
213
+ * @returns Opened media output instance
214
+ *
215
+ * @throws {Error} If format required for custom I/O
216
+ *
217
+ * @throws {FFmpegError} If allocation or opening fails
218
+ *
219
+ * @example
220
+ * ```typescript
221
+ * // Create file output
222
+ * using output = MediaOutput.openSync('output.mp4');
223
+ * ```
224
+ *
225
+ * @example
226
+ * ```typescript
227
+ * // Create output with specific format
228
+ * using output = MediaOutput.openSync('output.ts', {
229
+ * format: 'mpegts'
230
+ * });
231
+ * ```
232
+ *
233
+ * @see {@link open} For async version
234
+ */
235
+ static openSync(target, options) {
236
+ const output = new MediaOutput();
237
+ try {
238
+ if (typeof target === 'string') {
239
+ // File or stream URL - resolve relative paths and create directories
240
+ // Check if it's a URL (starts with protocol://) or a file path
241
+ const isUrl = /^[a-zA-Z][a-zA-Z0-9+.-]*:\/\//.test(target);
242
+ const resolvedTarget = isUrl ? target : resolve(target);
243
+ // Create directory structure for local files (not URLs)
244
+ if (!isUrl && target !== '') {
245
+ const dir = dirname(resolvedTarget);
246
+ mkdirSync(dir, { recursive: true });
247
+ }
248
+ // Allocate output context
249
+ const ret = output.formatContext.allocOutputContext2(null, options?.format ?? null, resolvedTarget === '' ? null : resolvedTarget);
250
+ FFmpegError.throwIfError(ret, 'Failed to allocate output context');
251
+ // Check if we need to open IO
252
+ const oformat = output.formatContext.oformat;
253
+ if (resolvedTarget && oformat && !(oformat.flags & AVFMT_NOFILE)) {
254
+ // For file-based formats, we need to open the file using avio_open2
255
+ // FFmpeg will manage the AVIOContext internally
256
+ output.ioContext = new IOContext();
257
+ const openRet = output.ioContext.open2Sync(resolvedTarget, AVIO_FLAG_WRITE);
258
+ FFmpegError.throwIfError(openRet, `Failed to open output file: ${resolvedTarget}`);
259
+ output.formatContext.pb = output.ioContext;
260
+ }
261
+ }
262
+ else {
263
+ // Custom IO with callbacks - format is required
264
+ if (!options?.format) {
265
+ throw new Error('Format must be specified for custom IO');
266
+ }
267
+ const ret = output.formatContext.allocOutputContext2(null, options.format, null);
268
+ FFmpegError.throwIfError(ret, 'Failed to allocate output context');
269
+ // Setup custom IO with callbacks
270
+ output.ioContext = new IOContext();
271
+ output.ioContext.allocContextWithCallbacks(options.bufferSize ?? 4096, 1, target.read, target.write, target.seek);
272
+ output.ioContext.maxPacketSize = options.bufferSize ?? 4096;
273
+ output.formatContext.pb = output.ioContext;
274
+ output.formatContext.flags = AVFMT_FLAG_CUSTOM_IO;
275
+ }
276
+ return output;
277
+ }
278
+ catch (error) {
279
+ // Cleanup on error
280
+ if (output.ioContext) {
281
+ try {
282
+ const isCustomIO = (output.formatContext.flags & AVFMT_FLAG_CUSTOM_IO) !== 0;
283
+ if (isCustomIO) {
284
+ // Clear the pb reference first
285
+ output.formatContext.pb = null;
286
+ // For custom IO with callbacks, free the context
287
+ output.ioContext.freeContext();
288
+ }
289
+ else {
290
+ // For file-based IO, close the file handle
291
+ output.ioContext.closepSync();
292
+ }
293
+ }
294
+ catch {
295
+ // Ignore errors
296
+ }
297
+ }
298
+ if (output.formatContext) {
299
+ try {
300
+ output.formatContext.freeContext();
301
+ }
302
+ catch {
303
+ // Ignore errors
304
+ }
305
+ }
306
+ throw error;
307
+ }
308
+ }
196
309
  /**
197
310
  * Add a stream to the output.
198
311
  *
@@ -207,8 +320,11 @@ export class MediaOutput {
207
320
  * Direct mapping to avformat_new_stream().
208
321
  *
209
322
  * @param source - Encoder or stream to add
323
+ *
210
324
  * @param options - Stream configuration options
325
+ *
211
326
  * @param options.timeBase - Optional custom timebase for the stream
327
+ *
212
328
  * @returns Stream index for packet writing
213
329
  *
214
330
  * @throws {Error} If called after packets have been written or output closed
@@ -290,7 +406,9 @@ export class MediaOutput {
290
406
  * Direct mapping to avformat_write_header() (on first packet) and av_interleaved_write_frame().
291
407
  *
292
408
  * @param packet - Packet to write
409
+ *
293
410
  * @param streamIndex - Target stream index
411
+ *
294
412
  * @throws {Error} If stream invalid or encoder not initialized
295
413
  *
296
414
  * @throws {FFmpegError} If write fails
@@ -399,6 +517,129 @@ export class MediaOutput {
399
517
  // Write the current packet
400
518
  await write(packet);
401
519
  }
520
+ /**
521
+ * Write a packet to the output synchronously.
522
+ * Synchronous version of writePacket.
523
+ *
524
+ * Writes muxed packet to the specified stream.
525
+ * Automatically handles:
526
+ * - Stream initialization on first packet (lazy initialization)
527
+ * - Codec parameter configuration from encoder or input stream
528
+ * - Header writing on first packet
529
+ * - Timestamp rescaling between source and output timebases
530
+ *
531
+ * For encoder sources, the encoder must have processed at least one frame
532
+ * before packets can be written (encoder must be initialized).
533
+ *
534
+ * Direct mapping to avformat_write_header() (on first packet) and av_interleaved_write_frame().
535
+ *
536
+ * @param packet - Packet to write
537
+ *
538
+ * @param streamIndex - Target stream index
539
+ *
540
+ * @throws {Error} If stream invalid or encoder not initialized
541
+ *
542
+ * @throws {FFmpegError} If write fails
543
+ *
544
+ * @example
545
+ * ```typescript
546
+ * // Write encoded packet - header written automatically on first packet
547
+ * const packet = encoder.encodeSync(frame);
548
+ * if (packet) {
549
+ * output.writePacketSync(packet, videoIdx);
550
+ * packet.free();
551
+ * }
552
+ * ```
553
+ *
554
+ * @example
555
+ * ```typescript
556
+ * // Stream copy with packet processing
557
+ * for (const packet of input.packetsSync()) {
558
+ * if (packet.streamIndex === inputVideoIdx) {
559
+ * output.writePacketSync(packet, outputVideoIdx);
560
+ * }
561
+ * packet.free();
562
+ * }
563
+ * ```
564
+ *
565
+ * @see {@link writePacket} For async version
566
+ */
567
+ writePacketSync(packet, streamIndex) {
568
+ if (this.isClosed) {
569
+ throw new Error('MediaOutput is closed');
570
+ }
571
+ if (this.trailerWritten) {
572
+ throw new Error('Cannot write packets after output is finalized');
573
+ }
574
+ if (!this.streams.get(streamIndex)) {
575
+ throw new Error(`Invalid stream index: ${streamIndex}`);
576
+ }
577
+ // Initialize any encoder streams that are ready
578
+ for (const streamInfo of this.streams.values()) {
579
+ if (!streamInfo.initialized && streamInfo.source instanceof Encoder) {
580
+ const encoder = streamInfo.source;
581
+ const codecContext = encoder.getCodecContext();
582
+ // Skip if encoder not ready yet
583
+ if (!encoder.isEncoderInitialized || !codecContext) {
584
+ continue;
585
+ }
586
+ // This encoder is ready, initialize it now
587
+ const ret = streamInfo.stream.codecpar.fromContext(codecContext);
588
+ FFmpegError.throwIfError(ret, 'Failed to copy codec parameters from encoder');
589
+ // Update the timebase from the encoder
590
+ streamInfo.sourceTimeBase = codecContext.timeBase;
591
+ // Output stream uses encoder's timebase (or custom if specified)
592
+ streamInfo.stream.timeBase = streamInfo.timeBase ? new Rational(streamInfo.timeBase.num, streamInfo.timeBase.den) : codecContext.timeBase;
593
+ // Mark as initialized
594
+ streamInfo.initialized = true;
595
+ }
596
+ }
597
+ const streamInfo = this.streams.get(streamIndex);
598
+ // Check if any streams are still uninitialized
599
+ const uninitialized = Array.from(this.streams.values()).some((s) => !s.initialized);
600
+ if (uninitialized) {
601
+ const clonedPacket = packet.clone();
602
+ packet.free();
603
+ if (clonedPacket) {
604
+ streamInfo.bufferedPackets.push(clonedPacket);
605
+ }
606
+ return;
607
+ }
608
+ // Automatically write header if not written yet
609
+ if (!this.headerWritten) {
610
+ const ret = this.formatContext.writeHeaderSync();
611
+ FFmpegError.throwIfError(ret, 'Failed to write header');
612
+ this.headerWritten = true;
613
+ }
614
+ // Set stream index
615
+ packet.streamIndex = streamIndex;
616
+ const write = (pkt) => {
617
+ // Rescale packet timestamps if source and output timebases differ
618
+ // Note: The stream's timebase may have been changed by writeHeader (e.g., MP4 uses 1/time_scale)
619
+ if (streamInfo.sourceTimeBase) {
620
+ const outputStream = this.formatContext.streams?.[streamIndex];
621
+ if (outputStream) {
622
+ // Only rescale if timebases actually differ
623
+ const srcTb = streamInfo.sourceTimeBase;
624
+ const dstTb = outputStream.timeBase;
625
+ if (srcTb.num !== dstTb.num || srcTb.den !== dstTb.den) {
626
+ pkt.rescaleTs(streamInfo.sourceTimeBase, outputStream.timeBase);
627
+ }
628
+ }
629
+ }
630
+ // Write the packet
631
+ const ret = this.formatContext.interleavedWriteFrameSync(pkt);
632
+ FFmpegError.throwIfError(ret, 'Failed to write packet');
633
+ };
634
+ // Write any buffered packets first
635
+ for (const bufferedPacket of streamInfo.bufferedPackets) {
636
+ write(bufferedPacket);
637
+ bufferedPacket.free();
638
+ }
639
+ streamInfo.bufferedPackets = [];
640
+ // Write the current packet
641
+ write(packet);
642
+ }
402
643
  /**
403
644
  * Close media output and free resources.
404
645
  *
@@ -477,6 +718,85 @@ export class MediaOutput {
477
718
  }
478
719
  }
479
720
  }
721
+ /**
722
+ * Close media output and free resources synchronously.
723
+ * Synchronous version of close.
724
+ *
725
+ * Automatically writes trailer if header was written.
726
+ * Closes the output file and releases all resources.
727
+ * Safe to call multiple times.
728
+ * Automatically called by Symbol.dispose.
729
+ *
730
+ * @example
731
+ * ```typescript
732
+ * const output = MediaOutput.openSync('output.mp4');
733
+ * try {
734
+ * // Use output - trailer written automatically on close
735
+ * } finally {
736
+ * output.closeSync();
737
+ * }
738
+ * ```
739
+ *
740
+ * @see {@link close} For async version
741
+ */
742
+ closeSync() {
743
+ if (this.isClosed) {
744
+ return;
745
+ }
746
+ this.isClosed = true;
747
+ // Free any buffered packets
748
+ for (const streamInfo of this.streams.values()) {
749
+ // Free any buffered packets
750
+ for (const pkt of streamInfo.bufferedPackets) {
751
+ pkt.free();
752
+ }
753
+ streamInfo.bufferedPackets = [];
754
+ }
755
+ // Try to write trailer if header was written but trailer wasn't
756
+ try {
757
+ if (this.headerWritten && !this.trailerWritten) {
758
+ this.formatContext.writeTrailerSync();
759
+ this.trailerWritten = true;
760
+ }
761
+ }
762
+ catch {
763
+ // Ignore errors
764
+ }
765
+ // Clear pb reference first to prevent use-after-free
766
+ if (this.ioContext) {
767
+ this.formatContext.pb = null;
768
+ }
769
+ // Determine if this is custom IO before freeing format context
770
+ const isCustomIO = (this.formatContext.flags & AVFMT_FLAG_CUSTOM_IO) !== 0;
771
+ // For file-based IO, close the file handle via closep
772
+ // For custom IO, the context will be freed below
773
+ if (this.ioContext && !isCustomIO) {
774
+ try {
775
+ this.ioContext.closepSync();
776
+ }
777
+ catch {
778
+ // Ignore errors
779
+ }
780
+ }
781
+ // Free format context
782
+ if (this.formatContext) {
783
+ try {
784
+ this.formatContext.freeContext();
785
+ }
786
+ catch {
787
+ // Ignore errors
788
+ }
789
+ }
790
+ // Now free custom IO context if present
791
+ if (this.ioContext && isCustomIO) {
792
+ try {
793
+ this.ioContext.freeContext();
794
+ }
795
+ catch {
796
+ // Ignore errors
797
+ }
798
+ }
799
+ }
480
800
  /**
481
801
  * Get underlying format context.
482
802
  *
@@ -508,5 +828,24 @@ export class MediaOutput {
508
828
  async [Symbol.asyncDispose]() {
509
829
  await this.close();
510
830
  }
831
+ /**
832
+ * Dispose of media output synchronously.
833
+ *
834
+ * Implements Disposable interface for automatic cleanup.
835
+ * Equivalent to calling closeSync().
836
+ *
837
+ * @example
838
+ * ```typescript
839
+ * {
840
+ * using output = MediaOutput.openSync('output.mp4');
841
+ * // Use output...
842
+ * } // Automatically closed
843
+ * ```
844
+ *
845
+ * @see {@link closeSync} For manual cleanup
846
+ */
847
+ [Symbol.dispose]() {
848
+ this.closeSync();
849
+ }
511
850
  }
512
851
  //# sourceMappingURL=media-output.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"media-output.js","sourceRoot":"","sources":["../../src/api/media-output.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"media-output.js","sourceRoot":"","sources":["../../src/api/media-output.ts"],"names":[],"mappings":"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"}
@@ -51,9 +51,13 @@ export interface PipelineControl {
51
51
  * Full transcoding pipeline: input → decoder → encoder → output.
52
52
  *
53
53
  * @param source - Media input source
54
+ *
54
55
  * @param decoder - Decoder for decoding packets to frames
56
+ *
55
57
  * @param encoder - Encoder for encoding frames to packets
58
+ *
56
59
  * @param output - Media output destination
60
+ *
57
61
  * @returns Pipeline control for managing execution
58
62
  *
59
63
  * @example
@@ -67,10 +71,15 @@ export declare function pipeline(source: MediaInput, decoder: Decoder, encoder:
67
71
  * Full transcoding pipeline with filter: input → decoder → filter → encoder → output.
68
72
  *
69
73
  * @param source - Media input source
74
+ *
70
75
  * @param decoder - Decoder for decoding packets to frames
76
+ *
71
77
  * @param filter - Filter or filter chain for processing frames
78
+ *
72
79
  * @param encoder - Encoder for encoding frames to packets
80
+ *
73
81
  * @param output - Media output destination
82
+ *
74
83
  * @returns Pipeline control for managing execution
75
84
  *
76
85
  * @example
@@ -84,10 +93,15 @@ export declare function pipeline(source: MediaInput, decoder: Decoder, filter: F
84
93
  * Transcoding with bitstream filter: input → decoder → encoder → bsf → output.
85
94
  *
86
95
  * @param source - Media input source
96
+ *
87
97
  * @param decoder - Decoder for decoding packets
98
+ *
88
99
  * @param encoder - Encoder for encoding frames
100
+ *
89
101
  * @param bsf - Bitstream filter for packet processing
102
+ *
90
103
  * @param output - Media output destination
104
+ *
91
105
  * @returns Pipeline control for managing execution
92
106
  *
93
107
  * @example
@@ -104,11 +118,17 @@ export declare function pipeline(source: MediaInput, decoder: Decoder, encoder:
104
118
  * Full pipeline with filter and bsf: input → decoder → filter → encoder → bsf → output.
105
119
  *
106
120
  * @param source - Media input source
121
+ *
107
122
  * @param decoder - Decoder for decoding packets
123
+ *
108
124
  * @param filter - Filter or filter chain
125
+ *
109
126
  * @param encoder - Encoder for encoding frames
127
+ *
110
128
  * @param bsf - Bitstream filter
129
+ *
111
130
  * @param output - Media output destination
131
+ *
112
132
  * @returns Pipeline control for managing execution
113
133
  *
114
134
  * @example
@@ -126,11 +146,17 @@ export declare function pipeline(source: MediaInput, decoder: Decoder, filter: F
126
146
  * Decode + multiple filters + encode: input → decoder → filter1 → filter2 → encoder → output.
127
147
  *
128
148
  * @param source - Media input source
149
+ *
129
150
  * @param decoder - Decoder for decoding packets
151
+ *
130
152
  * @param filter1 - First filter
153
+ *
131
154
  * @param filter2 - Second filter
155
+ *
132
156
  * @param encoder - Encoder for encoding frames
157
+ *
133
158
  * @param output - Media output destination
159
+ *
134
160
  * @returns Pipeline control for managing execution
135
161
  *
136
162
  * @example
@@ -148,7 +174,9 @@ export declare function pipeline(source: MediaInput, decoder: Decoder, filter1:
148
174
  * Stream copy pipeline: input → output (copies all streams).
149
175
  *
150
176
  * @param source - Media input source
177
+ *
151
178
  * @param output - Media output destination
179
+ *
152
180
  * @returns Pipeline control for managing execution
153
181
  *
154
182
  * @example
@@ -163,8 +191,11 @@ export declare function pipeline(source: MediaInput, output: MediaOutput): Pipel
163
191
  * Stream copy with bitstream filter: input → bsf → output.
164
192
  *
165
193
  * @param source - Media input source
194
+ *
166
195
  * @param bsf - Bitstream filter for packet processing
196
+ *
167
197
  * @param output - Media output destination
198
+ *
168
199
  * @returns Pipeline control for managing execution
169
200
  *
170
201
  * @example
@@ -180,9 +211,13 @@ export declare function pipeline(source: MediaInput, bsf: BitStreamFilterAPI | B
180
211
  * Filter + encode + output: frames → filter → encoder → output.
181
212
  *
182
213
  * @param source - Frame source (async iterable)
214
+ *
183
215
  * @param filter - Filter or filter chain
216
+ *
184
217
  * @param encoder - Encoder for encoding frames
218
+ *
185
219
  * @param output - Media output destination
220
+ *
186
221
  * @returns Pipeline control for managing execution
187
222
  *
188
223
  * @example
@@ -200,8 +235,11 @@ export declare function pipeline(source: AsyncIterable<Frame>, filter: FilterAPI
200
235
  * Encode + output: frames → encoder → output.
201
236
  *
202
237
  * @param source - Frame source (async iterable)
238
+ *
203
239
  * @param encoder - Encoder for encoding frames
240
+ *
204
241
  * @param output - Media output destination
242
+ *
205
243
  * @returns Pipeline control for managing execution
206
244
  *
207
245
  * @example
@@ -218,7 +256,9 @@ export declare function pipeline(source: AsyncIterable<Frame>, encoder: Encoder,
218
256
  * Partial pipeline: input → decoder (returns frames).
219
257
  *
220
258
  * @param source - Media input source
259
+ *
221
260
  * @param decoder - Decoder for decoding packets
261
+ *
222
262
  * @returns Async generator of frames
223
263
  *
224
264
  * @example
@@ -237,8 +277,11 @@ export declare function pipeline(source: MediaInput, decoder: Decoder): AsyncGen
237
277
  * Partial pipeline: input → decoder → filter (returns frames).
238
278
  *
239
279
  * @param source - Media input source
280
+ *
240
281
  * @param decoder - Decoder for decoding packets
282
+ *
241
283
  * @param filter - Filter or filter chain
284
+ *
242
285
  * @returns Async generator of frames
243
286
  *
244
287
  * @example
@@ -258,9 +301,13 @@ export declare function pipeline(source: MediaInput, decoder: Decoder, filter: F
258
301
  * Partial pipeline: input → decoder → filter → encoder (returns packets).
259
302
  *
260
303
  * @param source - Media input source
304
+ *
261
305
  * @param decoder - Decoder for decoding packets
306
+ *
262
307
  * @param filter - Filter or filter chain
308
+ *
263
309
  * @param encoder - Encoder for encoding frames
310
+ *
264
311
  * @returns Async generator of packets
265
312
  *
266
313
  * @example
@@ -281,8 +328,11 @@ export declare function pipeline(source: MediaInput, decoder: Decoder, filter: F
281
328
  * Partial pipeline: input → decoder → encoder (returns packets).
282
329
  *
283
330
  * @param source - Media input source
331
+ *
284
332
  * @param decoder - Decoder for decoding packets
333
+ *
285
334
  * @param encoder - Encoder for encoding frames
335
+ *
286
336
  * @returns Async generator of packets
287
337
  *
288
338
  * @example
@@ -302,7 +352,9 @@ export declare function pipeline(source: MediaInput, decoder: Decoder, encoder:
302
352
  * Partial pipeline: frames → filter (returns frames).
303
353
  *
304
354
  * @param source - Frame source (async iterable)
355
+ *
305
356
  * @param filter - Filter or filter chain
357
+ *
306
358
  * @returns Async generator of filtered frames
307
359
  *
308
360
  * @example
@@ -322,7 +374,9 @@ export declare function pipeline(source: AsyncIterable<Frame>, filter: FilterAPI
322
374
  * Partial pipeline: frames → encoder (returns packets).
323
375
  *
324
376
  * @param source - Frame source (async iterable)
377
+ *
325
378
  * @param encoder - Encoder for encoding frames
379
+ *
326
380
  * @returns Async generator of packets
327
381
  *
328
382
  * @example
@@ -342,8 +396,11 @@ export declare function pipeline(source: AsyncIterable<Frame>, encoder: Encoder)
342
396
  * Partial pipeline: frames → filter → encoder (returns packets).
343
397
  *
344
398
  * @param source - Frame source (async iterable)
399
+ *
345
400
  * @param filter - Filter or filter chain
401
+ *
346
402
  * @param encoder - Encoder for encoding frames
403
+ *
347
404
  * @returns Async generator of packets
348
405
  *
349
406
  * @example
@@ -364,8 +421,11 @@ export declare function pipeline(source: AsyncIterable<Frame>, filter: FilterAPI
364
421
  * Named pipeline with single output - all streams go to the same output.
365
422
  *
366
423
  * @param inputs - Named input sources (video/audio)
424
+ *
367
425
  * @param stages - Named processing stages for each stream
426
+ *
368
427
  * @param output - Single output destination for all streams
428
+ *
369
429
  * @returns Pipeline control for managing execution
370
430
  *
371
431
  * @example
@@ -387,8 +447,11 @@ export declare function pipeline<K extends StreamName>(inputs: NamedInputs<K>, s
387
447
  * Named pipeline with multiple outputs - each stream has its own output.
388
448
  *
389
449
  * @param inputs - Named input sources (video/audio)
450
+ *
390
451
  * @param stages - Named processing stages for each stream
452
+ *
391
453
  * @param outputs - Named output destinations
454
+ *
392
455
  * @returns Pipeline control for managing execution
393
456
  *
394
457
  * @example
@@ -410,7 +473,9 @@ export declare function pipeline<K extends StreamName>(inputs: NamedInputs<K>, s
410
473
  * Partial named pipeline (returns generators for further processing).
411
474
  *
412
475
  * @param inputs - Named input sources
476
+ *
413
477
  * @param stages - Named processing stages
478
+ *
414
479
  * @returns Record of async generators for each stream
415
480
  *
416
481
  * @example