node-av 1.1.0 → 1.2.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 (134) hide show
  1. package/README.md +51 -38
  2. package/dist/api/bitstream-filter.d.ts +180 -123
  3. package/dist/api/bitstream-filter.js +180 -125
  4. package/dist/api/bitstream-filter.js.map +1 -1
  5. package/dist/api/decoder.d.ts +279 -132
  6. package/dist/api/decoder.js +285 -142
  7. package/dist/api/decoder.js.map +1 -1
  8. package/dist/api/encoder.d.ts +246 -162
  9. package/dist/api/encoder.js +272 -208
  10. package/dist/api/encoder.js.map +1 -1
  11. package/dist/api/filter-presets.d.ts +690 -94
  12. package/dist/api/filter-presets.js +686 -102
  13. package/dist/api/filter-presets.js.map +1 -1
  14. package/dist/api/filter.d.ts +249 -213
  15. package/dist/api/filter.js +252 -242
  16. package/dist/api/filter.js.map +1 -1
  17. package/dist/api/hardware.d.ts +224 -117
  18. package/dist/api/hardware.js +380 -214
  19. package/dist/api/hardware.js.map +1 -1
  20. package/dist/api/index.d.ts +3 -3
  21. package/dist/api/index.js +1 -1
  22. package/dist/api/index.js.map +1 -1
  23. package/dist/api/io-stream.d.ts +65 -61
  24. package/dist/api/io-stream.js +43 -46
  25. package/dist/api/io-stream.js.map +1 -1
  26. package/dist/api/media-input.d.ts +242 -140
  27. package/dist/api/media-input.js +205 -103
  28. package/dist/api/media-input.js.map +1 -1
  29. package/dist/api/media-output.d.ts +206 -128
  30. package/dist/api/media-output.js +210 -128
  31. package/dist/api/media-output.js.map +1 -1
  32. package/dist/api/pipeline.d.ts +168 -38
  33. package/dist/api/pipeline.js +238 -14
  34. package/dist/api/pipeline.js.map +1 -1
  35. package/dist/api/types.d.ts +21 -187
  36. package/dist/api/utils.d.ts +1 -2
  37. package/dist/api/utils.js +9 -0
  38. package/dist/api/utils.js.map +1 -1
  39. package/dist/lib/audio-fifo.d.ts +127 -170
  40. package/dist/lib/audio-fifo.js +130 -173
  41. package/dist/lib/audio-fifo.js.map +1 -1
  42. package/dist/lib/binding.js +5 -0
  43. package/dist/lib/binding.js.map +1 -1
  44. package/dist/lib/bitstream-filter-context.d.ts +139 -184
  45. package/dist/lib/bitstream-filter-context.js +139 -188
  46. package/dist/lib/bitstream-filter-context.js.map +1 -1
  47. package/dist/lib/bitstream-filter.d.ts +68 -54
  48. package/dist/lib/bitstream-filter.js +68 -54
  49. package/dist/lib/bitstream-filter.js.map +1 -1
  50. package/dist/lib/codec-context.d.ts +316 -380
  51. package/dist/lib/codec-context.js +316 -381
  52. package/dist/lib/codec-context.js.map +1 -1
  53. package/dist/lib/codec-parameters.d.ts +160 -170
  54. package/dist/lib/codec-parameters.js +162 -172
  55. package/dist/lib/codec-parameters.js.map +1 -1
  56. package/dist/lib/codec-parser.d.ts +91 -104
  57. package/dist/lib/codec-parser.js +92 -103
  58. package/dist/lib/codec-parser.js.map +1 -1
  59. package/dist/lib/codec.d.ts +264 -281
  60. package/dist/lib/codec.js +268 -285
  61. package/dist/lib/codec.js.map +1 -1
  62. package/dist/lib/dictionary.d.ts +149 -203
  63. package/dist/lib/dictionary.js +158 -212
  64. package/dist/lib/dictionary.js.map +1 -1
  65. package/dist/lib/error.d.ts +96 -130
  66. package/dist/lib/error.js +98 -128
  67. package/dist/lib/error.js.map +1 -1
  68. package/dist/lib/filter-context.d.ts +284 -218
  69. package/dist/lib/filter-context.js +290 -227
  70. package/dist/lib/filter-context.js.map +1 -1
  71. package/dist/lib/filter-graph.d.ts +251 -292
  72. package/dist/lib/filter-graph.js +253 -294
  73. package/dist/lib/filter-graph.js.map +1 -1
  74. package/dist/lib/filter-inout.d.ts +87 -95
  75. package/dist/lib/filter-inout.js +87 -95
  76. package/dist/lib/filter-inout.js.map +1 -1
  77. package/dist/lib/filter.d.ts +93 -111
  78. package/dist/lib/filter.js +93 -111
  79. package/dist/lib/filter.js.map +1 -1
  80. package/dist/lib/format-context.d.ts +320 -428
  81. package/dist/lib/format-context.js +313 -385
  82. package/dist/lib/format-context.js.map +1 -1
  83. package/dist/lib/frame.d.ts +262 -405
  84. package/dist/lib/frame.js +263 -408
  85. package/dist/lib/frame.js.map +1 -1
  86. package/dist/lib/hardware-device-context.d.ts +149 -203
  87. package/dist/lib/hardware-device-context.js +149 -203
  88. package/dist/lib/hardware-device-context.js.map +1 -1
  89. package/dist/lib/hardware-frames-context.d.ts +170 -180
  90. package/dist/lib/hardware-frames-context.js +171 -181
  91. package/dist/lib/hardware-frames-context.js.map +1 -1
  92. package/dist/lib/index.d.ts +2 -1
  93. package/dist/lib/index.js +2 -2
  94. package/dist/lib/index.js.map +1 -1
  95. package/dist/lib/input-format.d.ts +89 -117
  96. package/dist/lib/input-format.js +89 -117
  97. package/dist/lib/input-format.js.map +1 -1
  98. package/dist/lib/io-context.d.ts +209 -241
  99. package/dist/lib/io-context.js +220 -252
  100. package/dist/lib/io-context.js.map +1 -1
  101. package/dist/lib/log.d.ts +85 -119
  102. package/dist/lib/log.js +85 -122
  103. package/dist/lib/log.js.map +1 -1
  104. package/dist/lib/native-types.d.ts +117 -106
  105. package/dist/lib/native-types.js +0 -7
  106. package/dist/lib/native-types.js.map +1 -1
  107. package/dist/lib/option.d.ts +284 -241
  108. package/dist/lib/option.js +309 -249
  109. package/dist/lib/option.js.map +1 -1
  110. package/dist/lib/output-format.d.ts +77 -101
  111. package/dist/lib/output-format.js +77 -101
  112. package/dist/lib/output-format.js.map +1 -1
  113. package/dist/lib/packet.d.ts +172 -240
  114. package/dist/lib/packet.js +172 -241
  115. package/dist/lib/packet.js.map +1 -1
  116. package/dist/lib/rational.d.ts +0 -2
  117. package/dist/lib/rational.js +0 -2
  118. package/dist/lib/rational.js.map +1 -1
  119. package/dist/lib/software-resample-context.d.ts +241 -325
  120. package/dist/lib/software-resample-context.js +242 -326
  121. package/dist/lib/software-resample-context.js.map +1 -1
  122. package/dist/lib/software-scale-context.d.ts +129 -173
  123. package/dist/lib/software-scale-context.js +131 -175
  124. package/dist/lib/software-scale-context.js.map +1 -1
  125. package/dist/lib/stream.d.ts +87 -197
  126. package/dist/lib/stream.js +87 -197
  127. package/dist/lib/stream.js.map +1 -1
  128. package/dist/lib/utilities.d.ts +372 -181
  129. package/dist/lib/utilities.js +373 -182
  130. package/dist/lib/utilities.js.map +1 -1
  131. package/install/check.js +0 -1
  132. package/package.json +21 -12
  133. package/release_notes.md +43 -59
  134. package/CHANGELOG.md +0 -8
@@ -2,12 +2,12 @@ import { CodecParameters } from './codec-parameters.js';
2
2
  import { Dictionary } from './dictionary.js';
3
3
  import { Rational } from './rational.js';
4
4
  /**
5
- * Stream information within a media container.
5
+ * Media stream within a format context.
6
6
  *
7
- * Represents a single stream (video, audio, subtitle, etc.) within a media file.
8
- * Streams are created and managed by FormatContext and contain all the metadata
9
- * and parameters needed to decode or encode the stream. Each stream has its own
10
- * timebase, codec parameters, and metadata.
7
+ * Represents a single stream (video, audio, subtitle, etc.) within a media container.
8
+ * Contains stream-specific information including codec parameters, timing information,
9
+ * metadata, and disposition flags. Each stream in a file has a unique index and may
10
+ * contain packets of compressed data.
11
11
  *
12
12
  * Direct mapping to FFmpeg's AVStream.
13
13
  *
@@ -16,98 +16,60 @@ import { Rational } from './rational.js';
16
16
  * import { FormatContext, FFmpegError } from 'node-av';
17
17
  * import { AVMEDIA_TYPE_VIDEO, AVMEDIA_TYPE_AUDIO } from 'node-av/constants';
18
18
  *
19
- * // Streams are obtained from FormatContext
19
+ * // Access streams from format context
20
20
  * const formatContext = new FormatContext();
21
- * const ret = await formatContext.openInput('video.mp4', null, null);
22
- * FFmpegError.throwIfError(ret, 'openInput');
21
+ * await formatContext.openInput('video.mp4');
23
22
  *
24
- * const infoRet = await formatContext.findStreamInfo(null);
25
- * FFmpegError.throwIfError(infoRet, 'findStreamInfo');
26
- *
27
- * // Access streams
28
- * const streams = formatContext.streams;
29
- * for (const stream of streams) {
30
- * console.log(`Stream ${stream.index}: ${stream.codecpar.codecType}`);
31
- * console.log(`Time base: ${stream.timeBase.num}/${stream.timeBase.den}`);
32
- *
33
- * // Direct access to codec parameters
23
+ * // Iterate through streams
24
+ * for (let i = 0; i < formatContext.nbStreams; i++) {
25
+ * const stream = formatContext.streams[i];
34
26
  * const codecpar = stream.codecpar;
27
+ *
35
28
  * if (codecpar.codecType === AVMEDIA_TYPE_VIDEO) {
36
- * console.log(`Video: ${codecpar.width}x${codecpar.height}`);
29
+ * console.log(`Video stream ${stream.index}:`);
30
+ * console.log(` Codec: ${codecpar.codecId}`);
31
+ * console.log(` Resolution: ${codecpar.width}x${codecpar.height}`);
32
+ * console.log(` Frame rate: ${stream.avgFrameRate.num}/${stream.avgFrameRate.den}`);
37
33
  * } else if (codecpar.codecType === AVMEDIA_TYPE_AUDIO) {
38
- * console.log(`Audio: ${codecpar.sampleRate}Hz ${codecpar.channels} channels`);
34
+ * console.log(`Audio stream ${stream.index}:`);
35
+ * console.log(` Sample rate: ${codecpar.sampleRate} Hz`);
36
+ * console.log(` Channels: ${codecpar.channels}`);
39
37
  * }
40
38
  * }
41
39
  * ```
42
40
  *
43
- * @see {@link FormatContext} For creating and managing streams
44
- * @see {@link CodecParameters} For codec-specific stream parameters
41
+ * @see [AVStream](https://ffmpeg.org/doxygen/trunk/structAVStream.html) - FFmpeg Doxygen
42
+ * @see {@link FormatContext} For container operations
43
+ * @see {@link CodecParameters} For codec configuration
45
44
  */
46
45
  export class Stream {
47
46
  native;
48
47
  _codecpar; // Cache the wrapped codecpar
49
48
  /**
50
- * Constructor is internal - use FormatContext to create streams.
51
- *
52
- * Streams are created and managed by FormatContext.
53
- * For demuxing, streams are created automatically when opening input.
54
- * For muxing, use formatContext.newStream() to create streams.
55
- *
49
+ * @param native - The native stream instance
56
50
  * @internal
57
- *
58
- * @param native - Native AVStream to wrap
59
- *
60
- * @example
61
- * ```typescript
62
- * // Don't create streams directly
63
- * // const stream = new Stream(); // Wrong
64
- *
65
- * // For demuxing: streams are created automatically
66
- * const streams = formatContext.streams; // Correct
67
- *
68
- * // For muxing: use newStream
69
- * const stream = formatContext.newStream(null); // Correct
70
- * ```
71
51
  */
72
52
  constructor(native) {
73
53
  this.native = native;
74
54
  }
75
55
  /**
76
- * Stream index in the format context.
77
- *
78
- * Zero-based index of this stream in the format context's stream array.
79
- * This is the index used to identify the stream in packets.
80
- *
81
- * Direct mapping to AVStream->index
82
- *
83
- * @readonly
56
+ * Stream index.
84
57
  *
85
- * @example
86
- * ```typescript
87
- * // Find video stream index
88
- * const videoStreamIndex = streams.findIndex(
89
- * s => s.codecpar.codecType === AVMEDIA_TYPE_VIDEO
90
- * );
58
+ * Zero-based index of this stream in the format context.
59
+ * Used to identify packets belonging to this stream.
91
60
  *
92
- * // Check packet's stream
93
- * if (packet.streamIndex === videoStreamIndex) {
94
- * // This packet belongs to the video stream
95
- * }
96
- * ```
61
+ * Direct mapping to AVStream->index.
97
62
  */
98
63
  get index() {
99
64
  return this.native.index;
100
65
  }
101
66
  /**
102
- * Format-specific stream ID.
67
+ * Stream ID.
103
68
  *
104
- * Stream ID as defined by the container format.
105
- * Different from index - this is format-specific.
69
+ * Format-specific stream identifier.
70
+ * May be used by some formats for internal stream identification.
106
71
  *
107
- * Direct mapping to AVStream->id
108
- *
109
- * - decoding: Set by libavformat
110
- * - encoding: Set by the user, replaced by libavformat if left unset
72
+ * Direct mapping to AVStream->id.
111
73
  */
112
74
  get id() {
113
75
  return this.native.id;
@@ -116,32 +78,12 @@ export class Stream {
116
78
  this.native.id = value;
117
79
  }
118
80
  /**
119
- * Codec parameters associated with this stream.
120
- *
121
- * Contains all the parameters needed to set up a codec for this stream,
122
- * including codec ID, dimensions for video, sample rate for audio, etc.
123
- *
124
- * Direct mapping to AVStream->codecpar
81
+ * Codec parameters.
125
82
  *
126
- * - demuxing: Filled by libavformat on stream creation or in findStreamInfo()
127
- * - muxing: Must be filled by the caller before writeHeader()
83
+ * Contains essential codec configuration for this stream.
84
+ * Used to initialize decoders and describe stream properties.
128
85
  *
129
- * @example
130
- * ```typescript
131
- * // For video stream
132
- * stream.codecpar.codecType = AVMEDIA_TYPE_VIDEO;
133
- * stream.codecpar.codecId = AV_CODEC_ID_H264;
134
- * stream.codecpar.width = 1920;
135
- * stream.codecpar.height = 1080;
136
- *
137
- * // For audio stream
138
- * stream.codecpar.codecType = AVMEDIA_TYPE_AUDIO;
139
- * stream.codecpar.codecId = AV_CODEC_ID_AAC;
140
- * stream.codecpar.sampleRate = 48000;
141
- * stream.codecpar.channels = 2;
142
- * ```
143
- *
144
- * @see {@link CodecParameters} For detailed parameter documentation
86
+ * Direct mapping to AVStream->codecpar.
145
87
  */
146
88
  get codecpar() {
147
89
  // Return cached wrapper if we already have one
@@ -162,33 +104,12 @@ export class Stream {
162
104
  this._codecpar = undefined;
163
105
  }
164
106
  /**
165
- * Time base for this stream.
166
- *
167
- * The fundamental unit of time (in seconds) in terms of which frame
168
- * timestamps are represented. For example, a time base of 1/25 means
169
- * each time unit is 1/25 of a second (40ms).
170
- *
171
- * Direct mapping to AVStream->time_base
172
- *
173
- * - decoding: Set by libavformat
174
- * - encoding: May be set before writeHeader() as a hint to the muxer.
175
- * The muxer will overwrite with the actual timebase used.
176
- *
177
- * @example
178
- * ```typescript
179
- * import { Rational } from 'node-av';
180
- *
181
- * // Common time bases
182
- * stream.timeBase = new Rational(1, 90000); // 90kHz (MPEG-TS)
183
- * stream.timeBase = new Rational(1, 1000); // milliseconds
184
- * stream.timeBase = new Rational(1, 25); // 25 fps video
107
+ * Stream time base.
185
108
  *
186
- * // Convert PTS to seconds
187
- * const pts = 45000n;
188
- * const seconds = Number(pts) * stream.timeBase.toDouble();
189
- * ```
109
+ * Unit of time for timestamps in this stream.
110
+ * All timestamps (PTS/DTS) are in units of this time base.
190
111
  *
191
- * @see {@link Rational} For time base representation
112
+ * Direct mapping to AVStream->time_base.
192
113
  */
193
114
  get timeBase() {
194
115
  const tb = this.native.timeBase;
@@ -198,16 +119,12 @@ export class Stream {
198
119
  this.native.timeBase = { num: value.num, den: value.den };
199
120
  }
200
121
  /**
201
- * Decoding: pts of the first frame of the stream in presentation order, in stream time base.
122
+ * Start time.
202
123
  *
203
- * Direct mapping to AVStream->start_time
124
+ * First timestamp of the stream in stream time base units.
125
+ * AV_NOPTS_VALUE if unknown.
204
126
  *
205
- * Only set this if you are absolutely 100% sure that the value you set
206
- * it to really is the pts of the first frame.
207
- * This may be undefined (AV_NOPTS_VALUE).
208
- *
209
- * @note The ASF header does NOT contain a correct start_time the ASF
210
- * demuxer must NOT set this.
127
+ * Direct mapping to AVStream->start_time.
211
128
  */
212
129
  get startTime() {
213
130
  return this.native.startTime;
@@ -216,15 +133,12 @@ export class Stream {
216
133
  this.native.startTime = value;
217
134
  }
218
135
  /**
219
- * Decoding: duration of the stream, in stream time base.
220
- *
221
- * Direct mapping to AVStream->duration
136
+ * Stream duration.
222
137
  *
223
- * If a source file does not specify a duration, but does specify
224
- * a bitrate, this value will be estimated from bitrate and file size.
138
+ * Total duration in stream time base units.
139
+ * AV_NOPTS_VALUE if unknown.
225
140
  *
226
- * Encoding: May be set by the caller before avformat_write_header() to
227
- * provide a hint to the muxer about the estimated duration.
141
+ * Direct mapping to AVStream->duration.
228
142
  */
229
143
  get duration() {
230
144
  return this.native.duration;
@@ -233,9 +147,12 @@ export class Stream {
233
147
  this.native.duration = value;
234
148
  }
235
149
  /**
236
- * Number of frames in this stream if known or 0.
150
+ * Number of frames.
237
151
  *
238
- * Direct mapping to AVStream->nb_frames
152
+ * Total number of frames in this stream.
153
+ * 0 if unknown.
154
+ *
155
+ * Direct mapping to AVStream->nb_frames.
239
156
  */
240
157
  get nbFrames() {
241
158
  return this.native.nbFrames;
@@ -244,20 +161,12 @@ export class Stream {
244
161
  this.native.nbFrames = value;
245
162
  }
246
163
  /**
247
- * Stream disposition - a combination of AV_DISPOSITION_* flags.
248
- *
249
- * Direct mapping to AVStream->disposition
164
+ * Stream disposition flags.
250
165
  *
251
- * - demuxing: set by libavformat when creating the stream or in
252
- * avformat_find_stream_info().
253
- * - muxing: may be set by the caller before avformat_write_header().
166
+ * Combination of AV_DISPOSITION_* flags indicating stream properties
167
+ * (e.g., default, forced subtitles, visual impaired, etc.).
254
168
  *
255
- * Common flags:
256
- * - AV_DISPOSITION_DEFAULT: default track
257
- * - AV_DISPOSITION_ATTACHED_PIC: stream is an attached picture (album art)
258
- * - AV_DISPOSITION_CAPTIONS: stream contains captions
259
- * - AV_DISPOSITION_DESCRIPTIONS: stream contains descriptions
260
- * - AV_DISPOSITION_METADATA: stream contains metadata
169
+ * Direct mapping to AVStream->disposition.
261
170
  */
262
171
  get disposition() {
263
172
  return this.native.disposition;
@@ -266,17 +175,12 @@ export class Stream {
266
175
  this.native.disposition = value;
267
176
  }
268
177
  /**
269
- * Selects which packets can be discarded at will and do not need to be demuxed.
178
+ * Discard setting.
270
179
  *
271
- * Direct mapping to AVStream->discard
180
+ * Indicates which packets can be discarded during demuxing.
181
+ * Used to skip non-essential packets for performance.
272
182
  *
273
- * - AVDISCARD_NONE: discard nothing
274
- * - AVDISCARD_DEFAULT: discard useless packets like 0 size packets in avi
275
- * - AVDISCARD_NONREF: discard all non reference
276
- * - AVDISCARD_BIDIR: discard all bidirectional frames
277
- * - AVDISCARD_NONINTRA: discard all non intra frames
278
- * - AVDISCARD_NONKEY: discard all frames except keyframes
279
- * - AVDISCARD_ALL: discard all
183
+ * Direct mapping to AVStream->discard.
280
184
  */
281
185
  get discard() {
282
186
  return this.native.discard;
@@ -285,13 +189,12 @@ export class Stream {
285
189
  this.native.discard = value;
286
190
  }
287
191
  /**
288
- * Sample aspect ratio (0 if unknown).
192
+ * Sample aspect ratio.
289
193
  *
290
- * Direct mapping to AVStream->sample_aspect_ratio
194
+ * Pixel aspect ratio for video streams.
195
+ * 0/1 if unknown or not applicable.
291
196
  *
292
- * This is the width of a pixel divided by the height of the pixel.
293
- * - encoding: Set by user.
294
- * - decoding: Set by libavformat.
197
+ * Direct mapping to AVStream->sample_aspect_ratio.
295
198
  */
296
199
  get sampleAspectRatio() {
297
200
  const sar = this.native.sampleAspectRatio;
@@ -301,13 +204,12 @@ export class Stream {
301
204
  this.native.sampleAspectRatio = { num: value.num, den: value.den };
302
205
  }
303
206
  /**
304
- * Average framerate.
207
+ * Average frame rate.
305
208
  *
306
- * Direct mapping to AVStream->avg_frame_rate
209
+ * Average framerate of the stream.
210
+ * 0/1 if unknown or variable frame rate.
307
211
  *
308
- * - demuxing: May be set by libavformat when creating the stream or in
309
- * avformat_find_stream_info().
310
- * - muxing: May be set by the caller before avformat_write_header().
212
+ * Direct mapping to AVStream->avg_frame_rate.
311
213
  */
312
214
  get avgFrameRate() {
313
215
  const fr = this.native.avgFrameRate;
@@ -321,15 +223,12 @@ export class Stream {
321
223
  this.native.avgFrameRate = { num: value.num, den: value.den };
322
224
  }
323
225
  /**
324
- * Real base framerate of the stream.
226
+ * Real frame rate.
325
227
  *
326
- * Direct mapping to AVStream->r_frame_rate
228
+ * Real base frame rate of the stream.
229
+ * This is the lowest common multiple of all frame rates in the stream.
327
230
  *
328
- * This is the lowest framerate with which all timestamps can be
329
- * represented accurately (it is the least common multiple of all
330
- * framerates in the stream). Note, this value is just a guess!
331
- * For example, if the time base is 1/90000 and all frames have either
332
- * approximately 3600 or 1800 timer ticks, then r_frame_rate will be 50/1.
231
+ * Direct mapping to AVStream->r_frame_rate.
333
232
  */
334
233
  get rFrameRate() {
335
234
  const fr = this.native.rFrameRate;
@@ -343,11 +242,12 @@ export class Stream {
343
242
  this.native.rFrameRate = { num: value.num, den: value.den };
344
243
  }
345
244
  /**
346
- * Metadata dictionary for this stream.
245
+ * Stream metadata.
347
246
  *
348
- * Direct mapping to AVStream->metadata
247
+ * Dictionary containing stream-specific metadata
248
+ * (e.g., language, title, encoder settings).
349
249
  *
350
- * Contains key-value pairs of metadata.
250
+ * Direct mapping to AVStream->metadata.
351
251
  */
352
252
  get metadata() {
353
253
  const nativeDict = this.native.metadata;
@@ -360,34 +260,23 @@ export class Stream {
360
260
  this.native.metadata = value?.getNative() ?? null;
361
261
  }
362
262
  /**
363
- * For streams with AV_DISPOSITION_ATTACHED_PIC disposition, this packet
364
- * will contain the attached picture (e.g., album art).
263
+ * Attached picture.
365
264
  *
366
- * Direct mapping to AVStream->attached_pic
265
+ * For streams with AV_DISPOSITION_ATTACHED_PIC set,
266
+ * contains the attached picture (e.g., album art).
367
267
  *
368
- * - decoding: set by libavformat, must not be modified by the caller.
369
- * - encoding: unused
370
- * @readonly
268
+ * Direct mapping to AVStream->attached_pic.
371
269
  */
372
270
  get attachedPic() {
373
271
  return this.native.attachedPic;
374
272
  }
375
273
  /**
376
- * Flags indicating events happening on the stream, a combination of
377
- * AVSTREAM_EVENT_FLAG_*.
274
+ * Event flags.
378
275
  *
379
- * Direct mapping to AVStream->event_flags
276
+ * Flags indicating events that happened to the stream.
277
+ * Used for signaling format changes.
380
278
  *
381
- * - demuxing: may be set by the demuxer in avformat_open_input(),
382
- * avformat_find_stream_info() and av_read_frame(). Flags must be cleared
383
- * by the user once the event has been handled.
384
- * - muxing: may be set by the user after avformat_write_header() to
385
- * indicate a user-triggered event. The muxer will clear the flags for
386
- * events it has handled in av_[interleaved]_write_frame().
387
- *
388
- * Flags:
389
- * - AVSTREAM_EVENT_FLAG_METADATA_UPDATED: metadata was updated
390
- * - AVSTREAM_EVENT_FLAG_NEW_PACKETS: new packets were read for this stream
279
+ * Direct mapping to AVStream->event_flags.
391
280
  */
392
281
  get eventFlags() {
393
282
  return this.native.eventFlags;
@@ -396,10 +285,11 @@ export class Stream {
396
285
  this.native.eventFlags = value;
397
286
  }
398
287
  /**
399
- * Get the native FFmpeg AVStream pointer.
288
+ * Get the underlying native Stream object.
289
+ *
290
+ * @returns The native Stream binding object
400
291
  *
401
- * @internal For use by other wrapper classes
402
- * @returns The underlying native stream object
292
+ * @internal
403
293
  */
404
294
  getNative() {
405
295
  return this.native;
@@ -1 +1 @@
1
- {"version":3,"file":"stream.js","sourceRoot":"","sources":["../../src/lib/stream.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"stream.js","sourceRoot":"","sources":["../../src/lib/stream.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAMzC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AACH,MAAM,OAAO,MAAM;IACT,MAAM,CAAe;IACrB,SAAS,CAAmB,CAAC,6BAA6B;IAElE;;;OAGG;IACH,YAAY,MAAoB;QAC9B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED;;;;;;;OAOG;IACH,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;IAC3B,CAAC;IAED;;;;;;;OAOG;IACH,IAAI,EAAE;QACJ,OAAO,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;IACxB,CAAC;IAED,IAAI,EAAE,CAAC,KAAa;QAClB,IAAI,CAAC,MAAM,CAAC,EAAE,GAAG,KAAK,CAAC;IACzB,CAAC;IAED;;;;;;;OAOG;IACH,IAAI,QAAQ;QACV,+CAA+C;QAC/C,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,OAAO,IAAI,CAAC,SAAS,CAAC;QACxB,CAAC;QAED,+BAA+B;QAC/B,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,SAAS,CAAoB,CAAC;QAC1E,MAAc,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;QAC9C,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC;QACxB,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,IAAI,QAAQ,CAAC,KAAsB;QACjC,sCAAsC;QACtC,yCAAyC;QACzC,IAAI,CAAC,MAAM,CAAC,QAAQ,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;QACzC,4DAA4D;QAC5D,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;IAED;;;;;;;OAOG;IACH,IAAI,QAAQ;QACV,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;QAChC,OAAO,IAAI,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;IACtC,CAAC;IAED,IAAI,QAAQ,CAAC,KAAe;QAC1B,IAAI,CAAC,MAAM,CAAC,QAAQ,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC;IAC5D,CAAC;IAED;;;;;;;OAOG;IACH,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC;IAC/B,CAAC;IAED,IAAI,SAAS,CAAC,KAAa;QACzB,IAAI,CAAC,MAAM,CAAC,SAAS,GAAG,KAAK,CAAC;IAChC,CAAC;IAED;;;;;;;OAOG;IACH,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;IAC9B,CAAC;IAED,IAAI,QAAQ,CAAC,KAAa;QACxB,IAAI,CAAC,MAAM,CAAC,QAAQ,GAAG,KAAK,CAAC;IAC/B,CAAC;IAED;;;;;;;OAOG;IACH,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;IAC9B,CAAC;IAED,IAAI,QAAQ,CAAC,KAAa;QACxB,IAAI,CAAC,MAAM,CAAC,QAAQ,GAAG,KAAK,CAAC;IAC/B,CAAC;IAED;;;;;;;OAOG;IACH,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;IACjC,CAAC;IAED,IAAI,WAAW,CAAC,KAAoB;QAClC,IAAI,CAAC,MAAM,CAAC,WAAW,GAAG,KAAK,CAAC;IAClC,CAAC;IAED;;;;;;;OAOG;IACH,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;IAC7B,CAAC;IAED,IAAI,OAAO,CAAC,KAAgB;QAC1B,IAAI,CAAC,MAAM,CAAC,OAAO,GAAG,KAAK,CAAC;IAC9B,CAAC;IAED;;;;;;;OAOG;IACH,IAAI,iBAAiB;QACnB,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC;QAC1C,OAAO,IAAI,QAAQ,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;IAClD,CAAC;IAED,IAAI,iBAAiB,CAAC,KAAe;QACnC,IAAI,CAAC,MAAM,CAAC,iBAAiB,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC;IACrE,CAAC;IAED;;;;;;;OAOG;IACH,IAAI,YAAY;QACd,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC;QACpC,iDAAiD;QACjD,IAAI,EAAE,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC;YACjB,OAAO,IAAI,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC5B,CAAC;QACD,OAAO,IAAI,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;IACtC,CAAC;IAED,IAAI,YAAY,CAAC,KAAe;QAC9B,IAAI,CAAC,MAAM,CAAC,YAAY,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC;IAChE,CAAC;IAED;;;;;;;OAOG;IACH,IAAI,UAAU;QACZ,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC;QAClC,iDAAiD;QACjD,IAAI,EAAE,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC;YACjB,OAAO,IAAI,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC5B,CAAC;QACD,OAAO,IAAI,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;IACtC,CAAC;IAED,IAAI,UAAU,CAAC,KAAe;QAC5B,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC;IAC9D,CAAC;IAED;;;;;;;OAOG;IACH,IAAI,QAAQ;QACV,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;QACxC,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,UAAU,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;IAC3C,CAAC;IAED,IAAI,QAAQ,CAAC,KAAwB;QACnC,IAAI,CAAC,MAAM,CAAC,QAAQ,GAAG,KAAK,EAAE,SAAS,EAAE,IAAI,IAAI,CAAC;IACpD,CAAC;IAED;;;;;;;OAOG;IACH,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,MAAM,CAAC,WAAgC,CAAC;IACtD,CAAC;IAED;;;;;;;OAOG;IACH,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC;IAChC,CAAC;IAED,IAAI,UAAU,CAAC,KAAwB;QACrC,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,KAAK,CAAC;IACjC,CAAC;IAED;;;;;;OAMG;IACH,SAAS;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;CACF"}