node-av 2.6.4 → 2.7.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.
@@ -1,5 +1,5 @@
1
1
  import { Codec, HardwareDeviceContext } from '../lib/index.js';
2
- import type { AVCodecID, AVHWDeviceType, AVPixelFormat } from '../constants/index.js';
2
+ import type { AVCodecID, AVHWDeviceType, AVPixelFormat, FFDecoderCodec, FFEncoderCodec } from '../constants/index.js';
3
3
  import type { BaseCodecName, HardwareOptions } from './types.js';
4
4
  /**
5
5
  * High-level hardware acceleration management.
@@ -259,6 +259,8 @@ export declare class HardwareContext implements Disposable {
259
259
  *
260
260
  * @param codec - Generic codec name (e.g., 'h264', 'hevc', 'av1') or AVCodecID
261
261
  *
262
+ * @param validate - Whether to validate encoder by testing (default: false)
263
+ *
262
264
  * @returns Hardware encoder codec or null if unsupported
263
265
  *
264
266
  * @example
@@ -281,7 +283,67 @@ export declare class HardwareContext implements Disposable {
281
283
  *
282
284
  * @see {@link Encoder.create} For using the codec
283
285
  */
284
- getEncoderCodec(codec: BaseCodecName | AVCodecID): Codec | null;
286
+ getEncoderCodec(codec: BaseCodecName | AVCodecID, validate?: boolean): Codec | null;
287
+ /**
288
+ * Test if hardware acceleration is working by decoding a test frame.
289
+ *
290
+ * Creates a simple decoder and attempts to decode with hardware acceleration.
291
+ * Returns true if hardware decoding succeeds, false otherwise.
292
+ * Useful for validating hardware setup before processing.
293
+ *
294
+ * @param codecId - Codec ID to test (default: H.264)
295
+ *
296
+ * @returns Promise that resolves to true if hardware works
297
+ *
298
+ * @example
299
+ * ```typescript
300
+ * const hw = HardwareContext.auto();
301
+ * if (hw && await hw.testDecoder()) {
302
+ * console.log('Hardware acceleration working!');
303
+ * // Proceed with hardware decoding/encoding
304
+ * } else {
305
+ * console.log('Hardware acceleration not available');
306
+ * // Fall back to software
307
+ * }
308
+ * ```
309
+ *
310
+ * @example
311
+ * ```typescript
312
+ * // Test specific hardware
313
+ * const cuda = HardwareContext.create(AV_HWDEVICE_TYPE_CUDA);
314
+ * if (cuda && await cuda.testDecoder()) {
315
+ * console.log('CUDA acceleration works');
316
+ * }
317
+ * ```
318
+ *
319
+ * @see {@link supportsCodec} For checking codec support
320
+ */
321
+ testDecoder(codecId?: AVCodecID): boolean;
322
+ /**
323
+ * Test if hardware encoding works with a specific codec pair.
324
+ *
325
+ * Attempts to decode and re-encode a test frame using hardware acceleration.
326
+ * Validates both decoding and encoding paths for the given codecs.
327
+ *
328
+ * @param decoderCodec - Codec name, ID, or instance to use for decoding
329
+ *
330
+ * @param encoderCodec - Codec name or instance to use for encoding
331
+ *
332
+ * @returns true if both decoding and encoding succeed
333
+ *
334
+ * @example
335
+ * ```typescript
336
+ * import { AV_CODEC_ID_H264 } from 'node-av/constants';
337
+ *
338
+ * const hw = HardwareContext.auto();
339
+ * if (hw && hw.testEncoder(AV_CODEC_ID_H264, AV_CODEC_ID_H264)) {
340
+ * console.log('Hardware H.264 encoding works!');
341
+ * }
342
+ * ```
343
+ *
344
+ * @see {@link getEncoderCodec} For obtaining hardware encoder codec
345
+ */
346
+ testEncoder(decoderCodec: FFDecoderCodec | Codec | AVCodecID, encoderCodec: FFEncoderCodec | Codec): boolean;
285
347
  /**
286
348
  * Find all codecs that support this hardware device.
287
349
  *
@@ -328,6 +390,18 @@ export declare class HardwareContext implements Disposable {
328
390
  * @see {@link Symbol.dispose} For automatic cleanup
329
391
  */
330
392
  dispose(): void;
393
+ /**
394
+ * Test hardware decoding with a specific codec.
395
+ *
396
+ * @param decoderCodec - Decoder codec name, ID, or instance to test
397
+ *
398
+ * @param encoderCodec - Optional encoder codec name or instance to test
399
+ *
400
+ * @returns true if decoding succeeds
401
+ *
402
+ * @internal
403
+ */
404
+ private testCodec;
331
405
  /**
332
406
  * Map AVCodecID to base codec name for hardware encoder lookup.
333
407
  *
@@ -341,6 +415,19 @@ export declare class HardwareContext implements Disposable {
341
415
  * @internal
342
416
  */
343
417
  private getBaseCodecName;
418
+ /**
419
+ * Map base codec name to AVCodecID for internal use.
420
+ *
421
+ * Converts generic codec names to AVCodecID enum values.
422
+ * Used internally for codec testing and validation.
423
+ *
424
+ * @param codecBaseName - Base codec name string
425
+ *
426
+ * @returns Corresponding AVCodecID or null if unsupported
427
+ *
428
+ * @internal
429
+ */
430
+ private getCodecIDFromBaseName;
344
431
  /**
345
432
  * Get the hardware decoder pixel format for this device type.
346
433
  *
@@ -1,5 +1,64 @@
1
+ var __addDisposableResource = (this && this.__addDisposableResource) || function (env, value, async) {
2
+ if (value !== null && value !== void 0) {
3
+ if (typeof value !== "object" && typeof value !== "function") throw new TypeError("Object expected.");
4
+ var dispose, inner;
5
+ if (async) {
6
+ if (!Symbol.asyncDispose) throw new TypeError("Symbol.asyncDispose is not defined.");
7
+ dispose = value[Symbol.asyncDispose];
8
+ }
9
+ if (dispose === void 0) {
10
+ if (!Symbol.dispose) throw new TypeError("Symbol.dispose is not defined.");
11
+ dispose = value[Symbol.dispose];
12
+ if (async) inner = dispose;
13
+ }
14
+ if (typeof dispose !== "function") throw new TypeError("Object not disposable.");
15
+ if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };
16
+ env.stack.push({ value: value, dispose: dispose, async: async });
17
+ }
18
+ else if (async) {
19
+ env.stack.push({ async: true });
20
+ }
21
+ return value;
22
+ };
23
+ var __disposeResources = (this && this.__disposeResources) || (function (SuppressedError) {
24
+ return function (env) {
25
+ function fail(e) {
26
+ env.error = env.hasError ? new SuppressedError(e, env.error, "An error was suppressed during disposal.") : e;
27
+ env.hasError = true;
28
+ }
29
+ var r, s = 0;
30
+ function next() {
31
+ while (r = env.stack.pop()) {
32
+ try {
33
+ if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);
34
+ if (r.dispose) {
35
+ var result = r.dispose.call(r.value);
36
+ if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });
37
+ }
38
+ else s |= 1;
39
+ }
40
+ catch (e) {
41
+ fail(e);
42
+ }
43
+ }
44
+ if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();
45
+ if (env.hasError) throw env.error;
46
+ }
47
+ return next();
48
+ };
49
+ })(typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {
50
+ var e = new Error(message);
51
+ return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
52
+ });
53
+ import { dirname, join } from 'node:path';
54
+ import { fileURLToPath } from 'node:url';
55
+ import { Decoder, Encoder, MediaInput } from '../api/index.js';
1
56
  import { AV_CODEC_HW_CONFIG_METHOD_HW_DEVICE_CTX, AV_CODEC_HW_CONFIG_METHOD_HW_FRAMES_CTX, AV_CODEC_ID_AV1, AV_CODEC_ID_H263, AV_CODEC_ID_H264, AV_CODEC_ID_HEVC, AV_CODEC_ID_MJPEG, AV_CODEC_ID_MPEG2VIDEO, AV_CODEC_ID_MPEG4, AV_CODEC_ID_PRORES, AV_CODEC_ID_VP8, AV_CODEC_ID_VP9, AV_HWDEVICE_TYPE_CUDA, AV_HWDEVICE_TYPE_D3D11VA, AV_HWDEVICE_TYPE_D3D12VA, AV_HWDEVICE_TYPE_DRM, AV_HWDEVICE_TYPE_DXVA2, AV_HWDEVICE_TYPE_MEDIACODEC, AV_HWDEVICE_TYPE_NONE, AV_HWDEVICE_TYPE_OPENCL, AV_HWDEVICE_TYPE_QSV, AV_HWDEVICE_TYPE_RKMPP, AV_HWDEVICE_TYPE_VAAPI, AV_HWDEVICE_TYPE_VDPAU, AV_HWDEVICE_TYPE_VIDEOTOOLBOX, AV_HWDEVICE_TYPE_VULKAN, AV_PIX_FMT_CUDA, AV_PIX_FMT_D3D11, AV_PIX_FMT_D3D12, AV_PIX_FMT_DRM_PRIME, AV_PIX_FMT_DXVA2_VLD, AV_PIX_FMT_MEDIACODEC, AV_PIX_FMT_NV12, AV_PIX_FMT_OPENCL, AV_PIX_FMT_QSV, AV_PIX_FMT_VAAPI, AV_PIX_FMT_VIDEOTOOLBOX, AV_PIX_FMT_VULKAN, } from '../constants/constants.js';
2
57
  import { Codec, Dictionary, FFmpegError, HardwareDeviceContext } from '../lib/index.js';
58
+ const __filename = fileURLToPath(import.meta.url);
59
+ const __dirname = dirname(__filename);
60
+ const h264Data = join(__dirname, 'data', 'test_h264.h264');
61
+ const hevcData = join(__dirname, 'data', 'test_hevc.h265');
3
62
  /**
4
63
  * High-level hardware acceleration management.
5
64
  *
@@ -90,7 +149,17 @@ export class HardwareContext {
90
149
  const preferenceOrder = this.getPreferenceOrder();
91
150
  for (const deviceType of preferenceOrder) {
92
151
  try {
93
- return this.createFromType(deviceType, options.device, options.options);
152
+ if (deviceType === AV_HWDEVICE_TYPE_VAAPI && !options.device) {
153
+ options.device = '/dev/dri/renderD128'; // Default VAAPI render node
154
+ }
155
+ let hwCtx = this.createFromType(deviceType, options.device, options.options);
156
+ const isSupported = hwCtx.testDecoder();
157
+ if (!isSupported) {
158
+ hwCtx.dispose();
159
+ hwCtx = null;
160
+ continue;
161
+ }
162
+ return hwCtx;
94
163
  }
95
164
  catch {
96
165
  // Try next device type
@@ -330,6 +399,8 @@ export class HardwareContext {
330
399
  *
331
400
  * @param codec - Generic codec name (e.g., 'h264', 'hevc', 'av1') or AVCodecID
332
401
  *
402
+ * @param validate - Whether to validate encoder by testing (default: false)
403
+ *
333
404
  * @returns Hardware encoder codec or null if unsupported
334
405
  *
335
406
  * @example
@@ -352,12 +423,12 @@ export class HardwareContext {
352
423
  *
353
424
  * @see {@link Encoder.create} For using the codec
354
425
  */
355
- getEncoderCodec(codec) {
426
+ getEncoderCodec(codec, validate) {
356
427
  // Build the encoder name
357
- let codecBaseName = '';
428
+ let codecBaseName = null;
358
429
  let encoderSuffix = '';
359
430
  if (typeof codec === 'number') {
360
- codecBaseName = this.getBaseCodecName(codec) ?? '';
431
+ codecBaseName = this.getBaseCodecName(codec) ?? null;
361
432
  }
362
433
  else {
363
434
  codecBaseName = codec;
@@ -365,6 +436,7 @@ export class HardwareContext {
365
436
  if (!codecBaseName) {
366
437
  return null;
367
438
  }
439
+ const decoderCodecId = this.getCodecIDFromBaseName(codecBaseName);
368
440
  // We might only have hardware decode capabilities (d3d11va, d3d12va etc)
369
441
  // So we need to check for other hardware encoders
370
442
  const getAlternativeEncoder = () => {
@@ -422,8 +494,93 @@ export class HardwareContext {
422
494
  if (!encoderCodec?.isHardwareAcceleratedEncoder()) {
423
495
  return null;
424
496
  }
497
+ if (validate && decoderCodecId !== null) {
498
+ const isValid = this.testEncoder(decoderCodecId, encoderCodec);
499
+ if (!isValid) {
500
+ return null;
501
+ }
502
+ }
425
503
  return encoderCodec;
426
504
  }
505
+ /**
506
+ * Test if hardware acceleration is working by decoding a test frame.
507
+ *
508
+ * Creates a simple decoder and attempts to decode with hardware acceleration.
509
+ * Returns true if hardware decoding succeeds, false otherwise.
510
+ * Useful for validating hardware setup before processing.
511
+ *
512
+ * @param codecId - Codec ID to test (default: H.264)
513
+ *
514
+ * @returns Promise that resolves to true if hardware works
515
+ *
516
+ * @example
517
+ * ```typescript
518
+ * const hw = HardwareContext.auto();
519
+ * if (hw && await hw.testDecoder()) {
520
+ * console.log('Hardware acceleration working!');
521
+ * // Proceed with hardware decoding/encoding
522
+ * } else {
523
+ * console.log('Hardware acceleration not available');
524
+ * // Fall back to software
525
+ * }
526
+ * ```
527
+ *
528
+ * @example
529
+ * ```typescript
530
+ * // Test specific hardware
531
+ * const cuda = HardwareContext.create(AV_HWDEVICE_TYPE_CUDA);
532
+ * if (cuda && await cuda.testDecoder()) {
533
+ * console.log('CUDA acceleration works');
534
+ * }
535
+ * ```
536
+ *
537
+ * @see {@link supportsCodec} For checking codec support
538
+ */
539
+ testDecoder(codecId = AV_CODEC_ID_H264) {
540
+ try {
541
+ if (this.supportsCodec(codecId, false)) {
542
+ const isSupported = this.testCodec(codecId);
543
+ if (!isSupported) {
544
+ return false;
545
+ }
546
+ }
547
+ return true;
548
+ }
549
+ catch {
550
+ return false;
551
+ }
552
+ }
553
+ /**
554
+ * Test if hardware encoding works with a specific codec pair.
555
+ *
556
+ * Attempts to decode and re-encode a test frame using hardware acceleration.
557
+ * Validates both decoding and encoding paths for the given codecs.
558
+ *
559
+ * @param decoderCodec - Codec name, ID, or instance to use for decoding
560
+ *
561
+ * @param encoderCodec - Codec name or instance to use for encoding
562
+ *
563
+ * @returns true if both decoding and encoding succeed
564
+ *
565
+ * @example
566
+ * ```typescript
567
+ * import { AV_CODEC_ID_H264 } from 'node-av/constants';
568
+ *
569
+ * const hw = HardwareContext.auto();
570
+ * if (hw && hw.testEncoder(AV_CODEC_ID_H264, AV_CODEC_ID_H264)) {
571
+ * console.log('Hardware H.264 encoding works!');
572
+ * }
573
+ * ```
574
+ *
575
+ * @see {@link getEncoderCodec} For obtaining hardware encoder codec
576
+ */
577
+ testEncoder(decoderCodec, encoderCodec) {
578
+ const isSupported = this.testCodec(decoderCodec, encoderCodec);
579
+ if (!isSupported) {
580
+ return false;
581
+ }
582
+ return true;
583
+ }
427
584
  /**
428
585
  * Find all codecs that support this hardware device.
429
586
  *
@@ -502,6 +659,97 @@ export class HardwareContext {
502
659
  this._deviceContext.free();
503
660
  this._isDisposed = true;
504
661
  }
662
+ /**
663
+ * Test hardware decoding with a specific codec.
664
+ *
665
+ * @param decoderCodec - Decoder codec name, ID, or instance to test
666
+ *
667
+ * @param encoderCodec - Optional encoder codec name or instance to test
668
+ *
669
+ * @returns true if decoding succeeds
670
+ *
671
+ * @internal
672
+ */
673
+ testCodec(decoderCodec, encoderCodec) {
674
+ try {
675
+ const env_1 = { stack: [], error: void 0, hasError: false };
676
+ try {
677
+ let codecDecoder = null;
678
+ let codecEncoder = null;
679
+ if (decoderCodec instanceof Codec) {
680
+ codecDecoder = decoderCodec;
681
+ }
682
+ else if (typeof decoderCodec === 'string') {
683
+ codecDecoder = Codec.findDecoderByName(decoderCodec);
684
+ }
685
+ else {
686
+ codecDecoder = Codec.findDecoder(decoderCodec);
687
+ }
688
+ if (!codecDecoder) {
689
+ throw new Error('Decoder codec not found');
690
+ }
691
+ const testFilePath = codecDecoder.id === AV_CODEC_ID_HEVC ? hevcData : h264Data;
692
+ // Read test bitstream
693
+ const input = __addDisposableResource(env_1, MediaInput.openSync(testFilePath), false);
694
+ const videoStream = input.video();
695
+ const decoder = __addDisposableResource(env_1, Decoder.createSync(videoStream, {
696
+ hardware: this,
697
+ }), false);
698
+ const inputGenerator = input.packetsSync();
699
+ const frameGenerator = decoder.framesSync(inputGenerator);
700
+ let packetGenerator = null;
701
+ let encoder = null;
702
+ if (encoderCodec) {
703
+ if (encoderCodec instanceof Codec) {
704
+ codecEncoder = encoderCodec;
705
+ }
706
+ else if (typeof encoderCodec === 'string') {
707
+ codecEncoder = Codec.findEncoderByName(encoderCodec);
708
+ }
709
+ else if (encoderCodec) {
710
+ codecEncoder = Codec.findEncoder(encoderCodec);
711
+ }
712
+ if (!codecEncoder) {
713
+ throw new Error('Encoder codec not found');
714
+ }
715
+ encoder = Encoder.createSync(codecEncoder, {
716
+ timeBase: videoStream.timeBase,
717
+ frameRate: videoStream.avgFrameRate,
718
+ });
719
+ packetGenerator = encoder.packetsSync(frameGenerator);
720
+ }
721
+ const _encoder = __addDisposableResource(env_1, encoder, false);
722
+ let hasData = false;
723
+ const generator = packetGenerator ?? frameGenerator;
724
+ for (const _1 of generator) {
725
+ const env_2 = { stack: [], error: void 0, hasError: false };
726
+ try {
727
+ const _ = __addDisposableResource(env_2, _1, false);
728
+ hasData = true;
729
+ break; // We only need to decode one frame
730
+ }
731
+ catch (e_1) {
732
+ env_2.error = e_1;
733
+ env_2.hasError = true;
734
+ }
735
+ finally {
736
+ __disposeResources(env_2);
737
+ }
738
+ }
739
+ return hasData;
740
+ }
741
+ catch (e_2) {
742
+ env_1.error = e_2;
743
+ env_1.hasError = true;
744
+ }
745
+ finally {
746
+ __disposeResources(env_1);
747
+ }
748
+ }
749
+ catch {
750
+ return false;
751
+ }
752
+ }
505
753
  /**
506
754
  * Map AVCodecID to base codec name for hardware encoder lookup.
507
755
  *
@@ -540,6 +788,44 @@ export class HardwareContext {
540
788
  return null;
541
789
  }
542
790
  }
791
+ /**
792
+ * Map base codec name to AVCodecID for internal use.
793
+ *
794
+ * Converts generic codec names to AVCodecID enum values.
795
+ * Used internally for codec testing and validation.
796
+ *
797
+ * @param codecBaseName - Base codec name string
798
+ *
799
+ * @returns Corresponding AVCodecID or null if unsupported
800
+ *
801
+ * @internal
802
+ */
803
+ getCodecIDFromBaseName(codecBaseName) {
804
+ switch (codecBaseName) {
805
+ case 'av1':
806
+ return AV_CODEC_ID_AV1;
807
+ case 'h264':
808
+ return AV_CODEC_ID_H264;
809
+ case 'hevc':
810
+ return AV_CODEC_ID_HEVC;
811
+ case 'h263':
812
+ return AV_CODEC_ID_H263;
813
+ case 'mpeg2':
814
+ return AV_CODEC_ID_MPEG2VIDEO;
815
+ case 'mpeg4':
816
+ return AV_CODEC_ID_MPEG4;
817
+ case 'vp8':
818
+ return AV_CODEC_ID_VP8;
819
+ case 'vp9':
820
+ return AV_CODEC_ID_VP9;
821
+ case 'mjpeg':
822
+ return AV_CODEC_ID_MJPEG;
823
+ case 'prores':
824
+ return AV_CODEC_ID_PRORES;
825
+ default:
826
+ return null;
827
+ }
828
+ }
543
829
  /**
544
830
  * Get the hardware decoder pixel format for this device type.
545
831
  *
@@ -1 +1 @@
1
- {"version":3,"file":"hardware.js","sourceRoot":"","sources":["../../src/api/hardware.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hardware.js","sourceRoot":"","sources":["../../src/api/hardware.ts"],"names":[],"mappings":"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"}
@@ -45,6 +45,7 @@ export declare class MediaInput implements AsyncDisposable, Disposable {
45
45
  private formatContext;
46
46
  private _streams;
47
47
  private ioContext?;
48
+ private isClosed;
48
49
  /**
49
50
  * @param formatContext - Opened format context
50
51
  *
@@ -238,6 +239,17 @@ export declare class MediaInput implements AsyncDisposable, Disposable {
238
239
  static openSync(rawData: RawData & {
239
240
  input: string;
240
241
  }, options?: MediaInputOptions): MediaInput;
242
+ /**
243
+ * Check if input is open.
244
+ *
245
+ * @example
246
+ * ```typescript
247
+ * if (!input.isInputOpen) {
248
+ * console.log('Input is not open');
249
+ * }
250
+ * ```
251
+ */
252
+ get isInputOpen(): boolean;
241
253
  /**
242
254
  * Get all streams in the media.
243
255
  *
@@ -252,7 +264,7 @@ export declare class MediaInput implements AsyncDisposable, Disposable {
252
264
  /**
253
265
  * Get media duration in seconds.
254
266
  *
255
- * Returns 0 if duration is unknown or not available.
267
+ * Returns 0 if duration is unknown or not available or input is closed.
256
268
  *
257
269
  * @example
258
270
  * ```typescript
@@ -263,7 +275,7 @@ export declare class MediaInput implements AsyncDisposable, Disposable {
263
275
  /**
264
276
  * Get media bitrate in kilobits per second.
265
277
  *
266
- * Returns 0 if bitrate is unknown.
278
+ * Returns 0 if bitrate is unknown or not available or input is closed.
267
279
  *
268
280
  * @example
269
281
  * ```typescript
@@ -287,6 +299,8 @@ export declare class MediaInput implements AsyncDisposable, Disposable {
287
299
  /**
288
300
  * Get format name.
289
301
  *
302
+ * Returns 'unknown' if input is closed or format is not available.
303
+ *
290
304
  * @example
291
305
  * ```typescript
292
306
  * console.log(`Format: ${input.formatName}`); // "mov,mp4,m4a,3gp,3g2,mj2"
@@ -296,6 +310,8 @@ export declare class MediaInput implements AsyncDisposable, Disposable {
296
310
  /**
297
311
  * Get format long name.
298
312
  *
313
+ * Returns 'Unknown Format' if input is closed or format is not available.
314
+ *
299
315
  * @example
300
316
  * ```typescript
301
317
  * console.log(`Format: ${input.formatLongName}`); // "QuickTime / MOV"
@@ -368,7 +384,7 @@ export declare class MediaInput implements AsyncDisposable, Disposable {
368
384
  *
369
385
  * @param type - Media type to find
370
386
  *
371
- * @returns Best stream or undefined if not found
387
+ * @returns Best stream or undefined if not found or input is closed
372
388
  *
373
389
  * @example
374
390
  * ```typescript
@@ -475,6 +491,8 @@ export declare class MediaInput implements AsyncDisposable, Disposable {
475
491
  *
476
492
  * @returns 0 on success, negative on error
477
493
  *
494
+ * @throws {Error} If input is closed
495
+ *
478
496
  * @example
479
497
  * ```typescript
480
498
  * // Seek to 30 seconds
@@ -510,6 +528,8 @@ export declare class MediaInput implements AsyncDisposable, Disposable {
510
528
  *
511
529
  * @returns 0 on success, negative on error
512
530
  *
531
+ * @throws {Error} If input is closed
532
+ *
513
533
  * @example
514
534
  * ```typescript
515
535
  * // Seek to 30 seconds