node-av 6.0.0-beta.2 → 6.0.0-beta.4

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 (51) hide show
  1. package/dist/api/bitstream-filter.d.ts +110 -87
  2. package/dist/api/bitstream-filter.js +157 -100
  3. package/dist/api/bitstream-filter.js.map +1 -1
  4. package/dist/api/decoder.d.ts +9 -7
  5. package/dist/api/decoder.js.map +1 -1
  6. package/dist/api/demuxer.d.ts +27 -22
  7. package/dist/api/demuxer.js.map +1 -1
  8. package/dist/api/encoder.d.ts +9 -7
  9. package/dist/api/encoder.js +10 -4
  10. package/dist/api/encoder.js.map +1 -1
  11. package/dist/api/filter-presets.d.ts +27 -658
  12. package/dist/api/filter-presets.js +45 -838
  13. package/dist/api/filter-presets.js.map +1 -1
  14. package/dist/api/fmp4-stream.js +1 -1
  15. package/dist/api/fmp4-stream.js.map +1 -1
  16. package/dist/api/muxer.d.ts +24 -15
  17. package/dist/api/muxer.js +27 -0
  18. package/dist/api/muxer.js.map +1 -1
  19. package/dist/api/pipeline.js +6 -6
  20. package/dist/api/pipeline.js.map +1 -1
  21. package/dist/api/rtp-stream.js +1 -1
  22. package/dist/api/rtp-stream.js.map +1 -1
  23. package/dist/constants/bsf-options.d.ts +333 -0
  24. package/dist/constants/bsf-options.js +7 -0
  25. package/dist/constants/bsf-options.js.map +1 -0
  26. package/dist/constants/decoders.d.ts +636 -618
  27. package/dist/constants/decoders.js +0 -2
  28. package/dist/constants/decoders.js.map +1 -1
  29. package/dist/constants/encoders.d.ts +300 -282
  30. package/dist/constants/encoders.js +0 -2
  31. package/dist/constants/encoders.js.map +1 -1
  32. package/dist/constants/filter-options.d.ts +10915 -0
  33. package/dist/constants/filter-options.js +7 -0
  34. package/dist/constants/filter-options.js.map +1 -0
  35. package/dist/constants/format-options.d.ts +3056 -0
  36. package/dist/constants/format-options.js +7 -0
  37. package/dist/constants/format-options.js.map +1 -0
  38. package/dist/constants/formats.d.ts +18 -0
  39. package/dist/constants/formats.js +7 -0
  40. package/dist/constants/formats.js.map +1 -0
  41. package/dist/constants/index.d.ts +5 -0
  42. package/dist/constants/options.d.ts +4073 -0
  43. package/dist/constants/options.js +7 -0
  44. package/dist/constants/options.js.map +1 -0
  45. package/dist/lib/codec.d.ts +26 -1
  46. package/dist/lib/codec.js +27 -0
  47. package/dist/lib/codec.js.map +1 -1
  48. package/dist/lib/dictionary.d.ts +1 -1
  49. package/dist/lib/dictionary.js.map +1 -1
  50. package/dist/lib/native-types.d.ts +18 -0
  51. package/package.json +17 -12
@@ -55,7 +55,9 @@ import { BitStreamFilterContext } from '../lib/bitstream-filter-context.js';
55
55
  import { BitStreamFilter } from '../lib/bitstream-filter.js';
56
56
  import { FFmpegError } from '../lib/error.js';
57
57
  import { Packet } from '../lib/packet.js';
58
+ import { Stream } from '../lib/stream.js';
58
59
  import { PACKET_THREAD_QUEUE_SIZE } from './constants.js';
60
+ import { Encoder } from './encoder.js';
59
61
  import { Muxer } from './muxer.js';
60
62
  import { AsyncQueue } from './utilities/async-queue.js';
61
63
  import { Scheduler, SchedulerControl } from './utilities/scheduler.js';
@@ -101,7 +103,8 @@ import { Scheduler, SchedulerControl } from './utilities/scheduler.js';
101
103
  export class BitStreamFilterAPI {
102
104
  ctx;
103
105
  bsf;
104
- stream;
106
+ source;
107
+ initialized = false;
105
108
  packet;
106
109
  isClosed = false;
107
110
  // Worker pattern for push-based processing
@@ -116,73 +119,66 @@ export class BitStreamFilterAPI {
116
119
  *
117
120
  * @param ctx - Filter context
118
121
  *
119
- * @param stream - Associated stream
122
+ * @param source - Input source for lazy parameter resolution
120
123
  *
121
124
  * @internal
122
125
  */
123
- constructor(bsf, ctx, stream) {
126
+ constructor(bsf, ctx, source) {
124
127
  this.bsf = bsf;
125
128
  this.ctx = ctx;
126
- this.stream = stream;
129
+ this.source = source;
127
130
  this.packet = new Packet();
128
131
  this.packet.alloc();
129
132
  this.inputQueue = new AsyncQueue(PACKET_THREAD_QUEUE_SIZE);
130
133
  this.outputQueue = new AsyncQueue(PACKET_THREAD_QUEUE_SIZE);
131
134
  }
132
135
  /**
133
- * Create a bitstream filter for a stream.
136
+ * Create a bitstream filter.
134
137
  *
135
- * Initializes filter with stream codec parameters.
136
- * Configures time base and prepares for packet processing.
138
+ * The input source provides the codec parameters the filter is configured with.
139
+ * Pass a {@link Stream} to filter its packets directly (stream copy), or an
140
+ * {@link Encoder} to filter that encoder's output (transcode) - parameters are
141
+ * derived from the encoder once it is open. Another {@link BitStreamFilterAPI}
142
+ * may be passed to chain filters.
143
+ *
144
+ * Initialization is lazy: filter options are validated immediately, but the
145
+ * input parameters are bound and the filter is initialized on the first packet,
146
+ * so an `Encoder` source (opened lazily on its first frame) is ready in time.
137
147
  *
138
148
  * Direct mapping to av_bsf_get_by_name() and av_bsf_alloc().
139
149
  *
140
150
  * @param filterName - Name of the bitstream filter
141
151
  *
142
- * @param stream - Stream to apply filter to
152
+ * @param source - Input source: a `Stream` (copy), `Encoder` (transcode), or upstream filter (chain)
143
153
  *
144
154
  * @param filterOptions - Optional filter-specific options
145
155
  *
146
156
  * @returns Configured bitstream filter
147
157
  *
148
- * @throws {Error} If initialization fails
149
- *
150
- * @throws {FFmpegError} If allocation or initialization fails
158
+ * @throws {FFmpegError} If the filter is not found, allocation fails, or an option is invalid
151
159
  *
152
160
  * @example
153
161
  * ```typescript
154
- * // H.264 MP4 to Annex B conversion
162
+ * // Stream copy: H.264 MP4 to Annex B conversion
155
163
  * const filter = BitStreamFilterAPI.create('h264_mp4toannexb', videoStream);
156
164
  * ```
157
165
  *
158
166
  * @example
159
167
  * ```typescript
160
- * // AAC ADTS to ASC conversion
161
- * const filter = BitStreamFilterAPI.create('aac_adtstoasc', audioStream);
162
- * ```
163
- *
164
- * @example
165
- * ```typescript
166
- * // Remove AUDs from H.264 stream
167
- * const filter = BitStreamFilterAPI.create('h264_metadata', stream, {
168
- * options: { aud: 'remove' }
169
- * });
170
- * ```
171
- *
172
- * @example
173
- * ```typescript
174
- * // Set H.264 level
175
- * const filter = BitStreamFilterAPI.create('h264_metadata', stream, {
176
- * options: { level: 51 }
168
+ * // Transcode: derive parameters from the encoder's output
169
+ * const filter = BitStreamFilterAPI.create('h264_metadata', encoder, {
170
+ * options: { aud: 'remove', level: '4.1' },
177
171
  * });
172
+ * pipeline(input, decoder, encoder, filter, output);
178
173
  * ```
179
174
  *
180
175
  * @see {@link BitStreamFilter.getByName} For filter discovery
181
176
  * @see {@link BitstreamFilterOptions} For available options
182
177
  */
183
- static create(filterName, stream, filterOptions) {
184
- if (!stream) {
185
- throw new Error('Stream is required');
178
+ // eslint-disable-next-line space-before-function-paren
179
+ static create(filterName, source, filterOptions) {
180
+ if (!source) {
181
+ throw new Error('A source (Stream, Encoder, or BitStreamFilterAPI) is required');
186
182
  }
187
183
  // Find the bitstream filter
188
184
  const filter = BitStreamFilter.getByName(filterName);
@@ -194,24 +190,15 @@ export class BitStreamFilterAPI {
194
190
  const allocRet = ctx.alloc(filter);
195
191
  FFmpegError.throwIfError(allocRet, 'Failed to allocate bitstream filter context');
196
192
  try {
197
- // Copy codec parameters from stream
198
- if (!ctx.inputCodecParameters) {
199
- throw new Error('Failed to get input codec parameters from filter context');
200
- }
201
- stream.codecpar.copy(ctx.inputCodecParameters);
202
- // Set time base
203
- ctx.inputTimeBase = stream.timeBase;
204
- // Apply filter-specific options before init
193
+ // Apply (and validate) filter-specific options now; input parameters and
194
+ // init() are deferred to ensureInitialized() on the first packet.
205
195
  if (filterOptions?.options) {
206
196
  for (const [key, value] of Object.entries(filterOptions.options)) {
207
197
  const ret = ctx.setOption(key, value);
208
198
  FFmpegError.throwIfError(ret, `Failed to set bitstream filter option '${key}'`);
209
199
  }
210
200
  }
211
- // Initialize the filter
212
- const initRet = ctx.init();
213
- FFmpegError.throwIfError(initRet, 'Failed to initialize bitstream filter');
214
- const bsfApi = new BitStreamFilterAPI(filter, ctx, stream);
201
+ const bsfApi = new BitStreamFilterAPI(filter, ctx, source);
215
202
  if (filterOptions?.signal) {
216
203
  filterOptions.signal.throwIfAborted();
217
204
  bsfApi.signal = filterOptions.signal;
@@ -277,6 +264,45 @@ export class BitStreamFilterAPI {
277
264
  get isBitstreamFilterOpen() {
278
265
  return !this.isClosed;
279
266
  }
267
+ /**
268
+ * Check if the filter has been initialized.
269
+ *
270
+ * Initialization is lazy and happens on the first processed packet, after
271
+ * which {@link outputCodecParameters} reflect the filter's output.
272
+ *
273
+ * @example
274
+ * ```typescript
275
+ * if (filter.isInitialized) {
276
+ * const params = filter.outputCodecParameters;
277
+ * }
278
+ * ```
279
+ */
280
+ get isInitialized() {
281
+ return this.initialized;
282
+ }
283
+ /**
284
+ * Get associated stream.
285
+ *
286
+ * Returns the stream this filter was created for. Only available when the
287
+ * filter was created from a {@link Stream}; filters created from an `Encoder`
288
+ * derive their parameters from the encoder's output instead.
289
+ *
290
+ * @returns Associated stream
291
+ *
292
+ * @throws {Error} If the filter was not created from a stream
293
+ *
294
+ * @example
295
+ * ```typescript
296
+ * const stream = filter.getStream();
297
+ * console.log(`Filtering stream ${stream.index}`);
298
+ * ```
299
+ */
300
+ getStream() {
301
+ if (!(this.source instanceof Stream)) {
302
+ throw new Error('No associated stream: this bitstream filter derives its parameters from an upstream component');
303
+ }
304
+ return this.source;
305
+ }
280
306
  /**
281
307
  * Send a packet to the filter.
282
308
  *
@@ -334,6 +360,7 @@ export class BitStreamFilterAPI {
334
360
  if (this.isClosed) {
335
361
  return;
336
362
  }
363
+ this.ensureInitialized();
337
364
  // Send packet to filter (null signals EOF/flush)
338
365
  const sendRet = await this.ctx.sendPacket(packet);
339
366
  if (sendRet < 0 && sendRet !== AVERROR_EOF && sendRet !== AVERROR_EAGAIN) {
@@ -397,6 +424,7 @@ export class BitStreamFilterAPI {
397
424
  if (this.isClosed) {
398
425
  return;
399
426
  }
427
+ this.ensureInitialized();
400
428
  // Send packet to filter (null signals EOF/flush)
401
429
  const sendRet = this.ctx.sendPacketSync(packet);
402
430
  if (sendRet < 0 && sendRet !== AVERROR_EOF && sendRet !== AVERROR_EAGAIN) {
@@ -748,7 +776,7 @@ export class BitStreamFilterAPI {
748
776
  */
749
777
  async flush() {
750
778
  this.signal?.throwIfAborted();
751
- if (this.isClosed) {
779
+ if (this.isClosed || !this.initialized) {
752
780
  return;
753
781
  }
754
782
  // Send EOF
@@ -791,7 +819,7 @@ export class BitStreamFilterAPI {
791
819
  * @see {@link flush} For async version
792
820
  */
793
821
  flushSync() {
794
- if (this.isClosed) {
822
+ if (this.isClosed || !this.initialized) {
795
823
  return;
796
824
  }
797
825
  // Send EOF
@@ -844,7 +872,7 @@ export class BitStreamFilterAPI {
844
872
  * @see {@link receiveSync} For synchronous version
845
873
  */
846
874
  async receive() {
847
- if (this.isClosed) {
875
+ if (this.isClosed || !this.initialized) {
848
876
  return null;
849
877
  }
850
878
  // Clear previous packet data
@@ -911,7 +939,7 @@ export class BitStreamFilterAPI {
911
939
  * @see {@link receive} For async version
912
940
  */
913
941
  receiveSync() {
914
- if (this.isClosed) {
942
+ if (this.isClosed || !this.initialized) {
915
943
  return null;
916
944
  }
917
945
  // Clear previous packet data
@@ -935,6 +963,42 @@ export class BitStreamFilterAPI {
935
963
  return null;
936
964
  }
937
965
  }
966
+ pipeTo(target, streamIndex) {
967
+ if (target instanceof Muxer) {
968
+ // Start worker if not already running
969
+ this.workerPromise ??= this.runWorker();
970
+ // Start pipe task: filter.outputQueue -> output
971
+ this.pipeToPromise = (async () => {
972
+ while (true) {
973
+ const packet = await this.receiveFromQueue();
974
+ if (!packet)
975
+ break;
976
+ await target.writePacket(packet, streamIndex);
977
+ }
978
+ })();
979
+ // Return control without pipeTo (terminal stage)
980
+ return new SchedulerControl(this);
981
+ }
982
+ else {
983
+ // BitStreamFilterAPI
984
+ const t = target;
985
+ // Store reference to next component for flush propagation
986
+ this.nextComponent = t;
987
+ // Start worker if not already running
988
+ this.workerPromise ??= this.runWorker();
989
+ // Start pipe task: filter.outputQueue -> target.inputQueue (via target.send)
990
+ this.pipeToPromise = (async () => {
991
+ while (true) {
992
+ const packet = await this.receiveFromQueue();
993
+ if (!packet)
994
+ break;
995
+ await t.sendToQueue(packet);
996
+ }
997
+ })();
998
+ // Return scheduler for chaining (target is now the last component)
999
+ return new Scheduler(this, t);
1000
+ }
1001
+ }
938
1002
  /**
939
1003
  * Flush all buffered packets as async generator.
940
1004
  *
@@ -998,22 +1062,6 @@ export class BitStreamFilterAPI {
998
1062
  yield packet;
999
1063
  }
1000
1064
  }
1001
- /**
1002
- * Get associated stream.
1003
- *
1004
- * Returns the stream this filter was created for.
1005
- *
1006
- * @returns Associated stream
1007
- *
1008
- * @example
1009
- * ```typescript
1010
- * const stream = filter.getStream();
1011
- * console.log(`Filtering stream ${stream.index}`);
1012
- * ```
1013
- */
1014
- getStream() {
1015
- return this.stream;
1016
- }
1017
1065
  /**
1018
1066
  * Reset filter state.
1019
1067
  *
@@ -1079,6 +1127,50 @@ export class BitStreamFilterAPI {
1079
1127
  [Symbol.dispose]() {
1080
1128
  this.close();
1081
1129
  }
1130
+ /**
1131
+ * Bind input parameters from the source and initialize the filter.
1132
+ *
1133
+ * @internal
1134
+ */
1135
+ ensureInitialized() {
1136
+ if (this.initialized) {
1137
+ return;
1138
+ }
1139
+ const params = this.ctx.inputCodecParameters;
1140
+ if (!params) {
1141
+ throw new Error('Failed to get input codec parameters from filter context');
1142
+ }
1143
+ const source = this.source;
1144
+ if (source instanceof Stream) {
1145
+ source.codecpar.copy(params);
1146
+ this.ctx.inputTimeBase = source.timeBase;
1147
+ }
1148
+ else if (source instanceof Encoder) {
1149
+ const codecContext = source.getCodecContext();
1150
+ if (!codecContext) {
1151
+ throw new Error('Encoder is not initialized yet; cannot derive bitstream filter parameters.');
1152
+ }
1153
+ const ret = params.fromContext(codecContext);
1154
+ FFmpegError.throwIfError(ret, 'Failed to derive bitstream filter parameters from encoder');
1155
+ this.ctx.inputTimeBase = codecContext.timeBase;
1156
+ }
1157
+ else {
1158
+ // Upstream is another bitstream filter: chain from its output.
1159
+ source.ensureInitialized();
1160
+ const upstream = source.outputCodecParameters;
1161
+ if (!upstream) {
1162
+ throw new Error('Upstream bitstream filter has no output parameters.');
1163
+ }
1164
+ upstream.copy(params);
1165
+ const tb = source.outputTimeBase;
1166
+ if (tb) {
1167
+ this.ctx.inputTimeBase = tb;
1168
+ }
1169
+ }
1170
+ const initRet = this.ctx.init();
1171
+ FFmpegError.throwIfError(initRet, 'Failed to initialize bitstream filter');
1172
+ this.initialized = true;
1173
+ }
1082
1174
  /**
1083
1175
  * Send packet to input queue or flush the pipeline.
1084
1176
  *
@@ -1146,6 +1238,7 @@ export class BitStreamFilterAPI {
1146
1238
  if (this.isClosed) {
1147
1239
  break;
1148
1240
  }
1241
+ this.ensureInitialized();
1149
1242
  // Send packet to filter
1150
1243
  const sendRet = await this.ctx.sendPacket(packet);
1151
1244
  // Handle EAGAIN
@@ -1202,41 +1295,5 @@ export class BitStreamFilterAPI {
1202
1295
  this.outputQueue?.close();
1203
1296
  }
1204
1297
  }
1205
- pipeTo(target, streamIndex) {
1206
- if (target instanceof Muxer) {
1207
- // Start worker if not already running
1208
- this.workerPromise ??= this.runWorker();
1209
- // Start pipe task: filter.outputQueue -> output
1210
- this.pipeToPromise = (async () => {
1211
- while (true) {
1212
- const packet = await this.receiveFromQueue();
1213
- if (!packet)
1214
- break;
1215
- await target.writePacket(packet, streamIndex);
1216
- }
1217
- })();
1218
- // Return control without pipeTo (terminal stage)
1219
- return new SchedulerControl(this);
1220
- }
1221
- else {
1222
- // BitStreamFilterAPI
1223
- const t = target;
1224
- // Store reference to next component for flush propagation
1225
- this.nextComponent = t;
1226
- // Start worker if not already running
1227
- this.workerPromise ??= this.runWorker();
1228
- // Start pipe task: filter.outputQueue -> target.inputQueue (via target.send)
1229
- this.pipeToPromise = (async () => {
1230
- while (true) {
1231
- const packet = await this.receiveFromQueue();
1232
- if (!packet)
1233
- break;
1234
- await t.sendToQueue(packet);
1235
- }
1236
- })();
1237
- // Return scheduler for chaining (target is now the last component)
1238
- return new Scheduler(this, t);
1239
- }
1240
- }
1241
1298
  }
1242
1299
  //# sourceMappingURL=bitstream-filter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"bitstream-filter.js","sourceRoot":"","sources":["../../src/api/bitstream-filter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bitstream-filter.js","sourceRoot":"","sources":["../../src/api/bitstream-filter.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@ import { Codec } from '../lib/codec.js';
3
3
  import { Frame } from '../lib/frame.js';
4
4
  import { Packet } from '../lib/packet.js';
5
5
  import { Scheduler } from './utilities/scheduler.js';
6
- import type { AVCodecID, AVPixelFormat, AVThreadType, EOFSignal, FFDecoderCodec } from '../constants/index.js';
6
+ import type { AVCodecID, AVPixelFormat, AVThreadType, DecoderOptionsFor, EOFSignal, FFDecoderCodec } from '../constants/index.js';
7
7
  import type { Stream } from '../lib/stream.js';
8
8
  import type { IRational } from '../lib/types.js';
9
9
  import type { Encoder } from './encoder.js';
@@ -12,7 +12,7 @@ import type { HardwareContext } from './hardware.js';
12
12
  /**
13
13
  * Options for decoder creation.
14
14
  */
15
- export interface DecoderOptions {
15
+ export interface DecoderOptions<C = unknown> {
16
16
  /**
17
17
  * Exit immediately on first decode error.
18
18
  *
@@ -92,10 +92,12 @@ export interface DecoderOptions {
92
92
  /**
93
93
  * Additional codec-specific options.
94
94
  *
95
- * Key-value pairs of FFmpeg AVCodecContext options.
96
- * These are passed directly to the decoder.
95
+ * Key-value pairs of FFmpeg private codec options, passed directly to the decoder.
96
+ * When the codec is created from a branded constant (e.g. `FF_DECODER_H264_CUVID`),
97
+ * these are strongly typed to that codec's known options (autocomplete + validation);
98
+ * otherwise any string/number/boolean values are accepted.
97
99
  */
98
- options?: Record<string, string | number | boolean | undefined | null>;
100
+ options?: DecoderOptionsFor<C>;
99
101
  /**
100
102
  * AbortSignal for cancellation.
101
103
  *
@@ -235,7 +237,7 @@ export declare class Decoder implements Disposable {
235
237
  * @see {@link createSync} For synchronous version
236
238
  */
237
239
  static create(stream: Stream, options?: DecoderOptions): Promise<Decoder>;
238
- static create(stream: Stream, decoderCodec?: FFDecoderCodec | AVCodecID | Codec, options?: DecoderOptions): Promise<Decoder>;
240
+ static create<const C extends FFDecoderCodec | AVCodecID | Codec>(stream: Stream, decoderCodec: C, options?: DecoderOptions<C>): Promise<Decoder>;
239
241
  /**
240
242
  * Create a decoder for a media stream synchronously.
241
243
  * Synchronous version of create.
@@ -292,7 +294,7 @@ export declare class Decoder implements Disposable {
292
294
  * @see {@link create} For async version
293
295
  */
294
296
  static createSync(stream: Stream, options?: DecoderOptions): Decoder;
295
- static createSync(stream: Stream, decoderCodec?: FFDecoderCodec | AVCodecID | Codec, options?: DecoderOptions): Decoder;
297
+ static createSync<const C extends FFDecoderCodec | AVCodecID | Codec>(stream: Stream, decoderCodec: C, options?: DecoderOptions<C>): Decoder;
296
298
  /**
297
299
  * Check if decoder is open.
298
300
  *