node-av 0.0.1

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 (175) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/LICENSE.md +22 -0
  3. package/README.md +377 -0
  4. package/binding.gyp +78 -0
  5. package/dist/api/bitstream-filter.d.ts +246 -0
  6. package/dist/api/bitstream-filter.js +369 -0
  7. package/dist/api/bitstream-filter.js.map +1 -0
  8. package/dist/api/decoder.d.ts +257 -0
  9. package/dist/api/decoder.js +424 -0
  10. package/dist/api/decoder.js.map +1 -0
  11. package/dist/api/encoder.d.ts +298 -0
  12. package/dist/api/encoder.js +574 -0
  13. package/dist/api/encoder.js.map +1 -0
  14. package/dist/api/filter.d.ts +457 -0
  15. package/dist/api/filter.js +876 -0
  16. package/dist/api/filter.js.map +1 -0
  17. package/dist/api/hardware.d.ts +318 -0
  18. package/dist/api/hardware.js +558 -0
  19. package/dist/api/hardware.js.map +1 -0
  20. package/dist/api/index.d.ts +12 -0
  21. package/dist/api/index.js +20 -0
  22. package/dist/api/index.js.map +1 -0
  23. package/dist/api/io-stream.d.ts +109 -0
  24. package/dist/api/io-stream.js +124 -0
  25. package/dist/api/io-stream.js.map +1 -0
  26. package/dist/api/media-input.d.ts +295 -0
  27. package/dist/api/media-input.js +456 -0
  28. package/dist/api/media-input.js.map +1 -0
  29. package/dist/api/media-output.d.ts +274 -0
  30. package/dist/api/media-output.js +486 -0
  31. package/dist/api/media-output.js.map +1 -0
  32. package/dist/api/pipeline.d.ts +117 -0
  33. package/dist/api/pipeline.js +836 -0
  34. package/dist/api/pipeline.js.map +1 -0
  35. package/dist/api/types.d.ts +440 -0
  36. package/dist/api/types.js +2 -0
  37. package/dist/api/types.js.map +1 -0
  38. package/dist/api/utilities/audio-sample.d.ts +115 -0
  39. package/dist/api/utilities/audio-sample.js +110 -0
  40. package/dist/api/utilities/audio-sample.js.map +1 -0
  41. package/dist/api/utilities/channel-layout.d.ts +83 -0
  42. package/dist/api/utilities/channel-layout.js +87 -0
  43. package/dist/api/utilities/channel-layout.js.map +1 -0
  44. package/dist/api/utilities/image.d.ts +177 -0
  45. package/dist/api/utilities/image.js +183 -0
  46. package/dist/api/utilities/image.js.map +1 -0
  47. package/dist/api/utilities/index.d.ts +8 -0
  48. package/dist/api/utilities/index.js +17 -0
  49. package/dist/api/utilities/index.js.map +1 -0
  50. package/dist/api/utilities/media-type.d.ts +56 -0
  51. package/dist/api/utilities/media-type.js +60 -0
  52. package/dist/api/utilities/media-type.js.map +1 -0
  53. package/dist/api/utilities/pixel-format.d.ts +94 -0
  54. package/dist/api/utilities/pixel-format.js +102 -0
  55. package/dist/api/utilities/pixel-format.js.map +1 -0
  56. package/dist/api/utilities/sample-format.d.ts +132 -0
  57. package/dist/api/utilities/sample-format.js +144 -0
  58. package/dist/api/utilities/sample-format.js.map +1 -0
  59. package/dist/api/utilities/streaming.d.ts +104 -0
  60. package/dist/api/utilities/streaming.js +137 -0
  61. package/dist/api/utilities/streaming.js.map +1 -0
  62. package/dist/api/utilities/timestamp.d.ts +187 -0
  63. package/dist/api/utilities/timestamp.js +200 -0
  64. package/dist/api/utilities/timestamp.js.map +1 -0
  65. package/dist/api/utils.d.ts +61 -0
  66. package/dist/api/utils.js +330 -0
  67. package/dist/api/utils.js.map +1 -0
  68. package/dist/index.d.ts +2 -0
  69. package/dist/index.js +5 -0
  70. package/dist/index.js.map +1 -0
  71. package/dist/lib/audio-fifo.d.ts +339 -0
  72. package/dist/lib/audio-fifo.js +365 -0
  73. package/dist/lib/audio-fifo.js.map +1 -0
  74. package/dist/lib/binding.d.ts +192 -0
  75. package/dist/lib/binding.js +70 -0
  76. package/dist/lib/binding.js.map +1 -0
  77. package/dist/lib/bitstream-filter-context.d.ts +345 -0
  78. package/dist/lib/bitstream-filter-context.js +407 -0
  79. package/dist/lib/bitstream-filter-context.js.map +1 -0
  80. package/dist/lib/bitstream-filter.d.ts +124 -0
  81. package/dist/lib/bitstream-filter.js +138 -0
  82. package/dist/lib/bitstream-filter.js.map +1 -0
  83. package/dist/lib/channel-layouts.d.ts +51 -0
  84. package/dist/lib/channel-layouts.js +55 -0
  85. package/dist/lib/channel-layouts.js.map +1 -0
  86. package/dist/lib/codec-context.d.ts +763 -0
  87. package/dist/lib/codec-context.js +974 -0
  88. package/dist/lib/codec-context.js.map +1 -0
  89. package/dist/lib/codec-parameters.d.ts +362 -0
  90. package/dist/lib/codec-parameters.js +460 -0
  91. package/dist/lib/codec-parameters.js.map +1 -0
  92. package/dist/lib/codec-parser.d.ts +185 -0
  93. package/dist/lib/codec-parser.js +193 -0
  94. package/dist/lib/codec-parser.js.map +1 -0
  95. package/dist/lib/codec.d.ts +432 -0
  96. package/dist/lib/codec.js +492 -0
  97. package/dist/lib/codec.js.map +1 -0
  98. package/dist/lib/constants.d.ts +2037 -0
  99. package/dist/lib/constants.js +1659 -0
  100. package/dist/lib/constants.js.map +1 -0
  101. package/dist/lib/dictionary.d.ts +371 -0
  102. package/dist/lib/dictionary.js +406 -0
  103. package/dist/lib/dictionary.js.map +1 -0
  104. package/dist/lib/error.d.ts +216 -0
  105. package/dist/lib/error.js +254 -0
  106. package/dist/lib/error.js.map +1 -0
  107. package/dist/lib/filter-context.d.ts +445 -0
  108. package/dist/lib/filter-context.js +505 -0
  109. package/dist/lib/filter-context.js.map +1 -0
  110. package/dist/lib/filter-graph.d.ts +556 -0
  111. package/dist/lib/filter-graph.js +608 -0
  112. package/dist/lib/filter-graph.js.map +1 -0
  113. package/dist/lib/filter-inout.d.ts +205 -0
  114. package/dist/lib/filter-inout.js +264 -0
  115. package/dist/lib/filter-inout.js.map +1 -0
  116. package/dist/lib/filter.d.ts +231 -0
  117. package/dist/lib/filter.js +260 -0
  118. package/dist/lib/filter.js.map +1 -0
  119. package/dist/lib/format-context.d.ts +798 -0
  120. package/dist/lib/format-context.js +845 -0
  121. package/dist/lib/format-context.js.map +1 -0
  122. package/dist/lib/frame.d.ts +784 -0
  123. package/dist/lib/frame.js +933 -0
  124. package/dist/lib/frame.js.map +1 -0
  125. package/dist/lib/hardware-device-context.d.ts +407 -0
  126. package/dist/lib/hardware-device-context.js +429 -0
  127. package/dist/lib/hardware-device-context.js.map +1 -0
  128. package/dist/lib/hardware-frames-context.d.ts +374 -0
  129. package/dist/lib/hardware-frames-context.js +430 -0
  130. package/dist/lib/hardware-frames-context.js.map +1 -0
  131. package/dist/lib/index.d.ts +31 -0
  132. package/dist/lib/index.js +54 -0
  133. package/dist/lib/index.js.map +1 -0
  134. package/dist/lib/input-format.d.ts +216 -0
  135. package/dist/lib/input-format.js +246 -0
  136. package/dist/lib/input-format.js.map +1 -0
  137. package/dist/lib/io-context.d.ts +495 -0
  138. package/dist/lib/io-context.js +550 -0
  139. package/dist/lib/io-context.js.map +1 -0
  140. package/dist/lib/log.d.ts +201 -0
  141. package/dist/lib/log.js +219 -0
  142. package/dist/lib/log.js.map +1 -0
  143. package/dist/lib/native-types.d.ts +719 -0
  144. package/dist/lib/native-types.js +2 -0
  145. package/dist/lib/native-types.js.map +1 -0
  146. package/dist/lib/option.d.ts +589 -0
  147. package/dist/lib/option.js +853 -0
  148. package/dist/lib/option.js.map +1 -0
  149. package/dist/lib/output-format.d.ts +179 -0
  150. package/dist/lib/output-format.js +205 -0
  151. package/dist/lib/output-format.js.map +1 -0
  152. package/dist/lib/packet.d.ts +487 -0
  153. package/dist/lib/packet.js +558 -0
  154. package/dist/lib/packet.js.map +1 -0
  155. package/dist/lib/rational.d.ts +210 -0
  156. package/dist/lib/rational.js +233 -0
  157. package/dist/lib/rational.js.map +1 -0
  158. package/dist/lib/software-resample-context.d.ts +572 -0
  159. package/dist/lib/software-resample-context.js +610 -0
  160. package/dist/lib/software-resample-context.js.map +1 -0
  161. package/dist/lib/software-scale-context.d.ts +290 -0
  162. package/dist/lib/software-scale-context.js +308 -0
  163. package/dist/lib/software-scale-context.js.map +1 -0
  164. package/dist/lib/stream.d.ts +322 -0
  165. package/dist/lib/stream.js +408 -0
  166. package/dist/lib/stream.js.map +1 -0
  167. package/dist/lib/types.d.ts +59 -0
  168. package/dist/lib/types.js +8 -0
  169. package/dist/lib/types.js.map +1 -0
  170. package/dist/lib/utilities.d.ts +346 -0
  171. package/dist/lib/utilities.js +424 -0
  172. package/dist/lib/utilities.js.map +1 -0
  173. package/install/check.js +113 -0
  174. package/install/ffmpeg.js +163 -0
  175. package/package.json +107 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../../src/api/pipeline.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,440 @@
1
+ import type { AVPixelFormat, AVSampleFormat, ChannelLayout, IRational, SWSFlag } from '../lib/index.js';
2
+ import type { HardwareContext } from './hardware.js';
3
+ /**
4
+ * Video stream information.
5
+ *
6
+ * Contains all necessary parameters to describe a video stream.
7
+ * Used for encoder and filter initialization.
8
+ *
9
+ * @interface VideoInfo
10
+ */
11
+ export interface VideoInfo {
12
+ /** Discriminator for TypeScript type narrowing */
13
+ type: 'video';
14
+ /** Video width in pixels */
15
+ width: number;
16
+ /** Video height in pixels */
17
+ height: number;
18
+ /** Pixel format */
19
+ pixelFormat: AVPixelFormat;
20
+ /** Time base (required for timing) */
21
+ timeBase: IRational;
22
+ /** Frame rate (optional, can be derived from timeBase) */
23
+ frameRate?: IRational;
24
+ /** Sample aspect ratio (optional, defaults to 1:1) */
25
+ sampleAspectRatio?: IRational;
26
+ }
27
+ /**
28
+ * Audio stream information.
29
+ *
30
+ * Contains all necessary parameters to describe an audio stream.
31
+ * Used for encoder and filter initialization.
32
+ *
33
+ * @interface AudioInfo
34
+ */
35
+ export interface AudioInfo {
36
+ /** Discriminator for TypeScript type narrowing */
37
+ type: 'audio';
38
+ /** Sample rate in Hz */
39
+ sampleRate: number;
40
+ /** Sample format */
41
+ sampleFormat: AVSampleFormat;
42
+ /** Channel layout configuration */
43
+ channelLayout: ChannelLayout;
44
+ /** Time base (required for timing) */
45
+ timeBase: IRational;
46
+ /**
47
+ * Number of samples per frame.
48
+ *
49
+ * Some encoders require specific frame sizes:
50
+ * - AAC: typically 1024 samples
51
+ * - MP3: typically 1152 samples
52
+ * - Opus: flexible, but often 960 or 2880
53
+ *
54
+ * If not specified, the encoder's default will be used.
55
+ *
56
+ * @example
57
+ * ```typescript
58
+ * const encoder = await Encoder.create('aac', {
59
+ * type: 'audio',
60
+ * sampleRate: 48000,
61
+ * sampleFormat: AV_SAMPLE_FMT_FLTP,
62
+ * channelLayout: AV_CHANNEL_LAYOUT_STEREO,
63
+ * timeBase: { num: 1, den: 48000 },
64
+ * frameSize: 1024
65
+ * });
66
+ * ```
67
+ */
68
+ frameSize?: number;
69
+ }
70
+ /**
71
+ * Union type for stream information.
72
+ * Can be either video or audio stream info.
73
+ */
74
+ export type StreamInfo = VideoInfo | AudioInfo;
75
+ /**
76
+ * Raw video data configuration.
77
+ *
78
+ * Specifies parameters for opening raw video files like YUV.
79
+ *
80
+ * @interface VideoRawData
81
+ *
82
+ * @example
83
+ * ```typescript
84
+ * const rawVideo: VideoRawData = {
85
+ * type: 'video',
86
+ * data: 'testdata/input.yuv',
87
+ * width: 1280,
88
+ * height: 720,
89
+ * pixelFormat: 'yuv420p',
90
+ * frameRate: 30
91
+ * };
92
+ * const input = await MediaInput.open(rawVideo);
93
+ * ```
94
+ */
95
+ export interface VideoRawData {
96
+ /**
97
+ * Type discriminator for TypeScript.
98
+ */
99
+ type: 'video';
100
+ /**
101
+ * Raw audio input source (file path, Buffer, or stream).
102
+ */
103
+ input: string | Buffer;
104
+ /**
105
+ * Video dimensions.
106
+ */
107
+ width: number;
108
+ height: number;
109
+ /**
110
+ * Pixel format (e.g., AV_PIX_FMT_YUV420P, AV_PIX_FMT_NV12, AV_PIX_FMT_RGB24).
111
+ */
112
+ pixelFormat: AVPixelFormat;
113
+ /**
114
+ * Frame rate as a rational
115
+ */
116
+ frameRate: IRational;
117
+ }
118
+ /**
119
+ * Raw audio data configuration.
120
+ *
121
+ * Specifies parameters for opening raw audio files like PCM.
122
+ *
123
+ * @interface AudioRawData
124
+ *
125
+ * @example
126
+ * ```typescript
127
+ * const rawAudio: AudioRawData = {
128
+ * type: 'audio',
129
+ * data: 'testdata/audio.pcm',
130
+ * sampleRate: 48000,
131
+ * channels: 2,
132
+ * sampleFormat: 's16le'
133
+ * };
134
+ * const input = await MediaInput.open(rawAudio);
135
+ * ```
136
+ */
137
+ export interface AudioRawData {
138
+ /**
139
+ * Type discriminator for TypeScript.
140
+ */
141
+ type: 'audio';
142
+ /**
143
+ * Raw audio input source (file path, Buffer, or stream).
144
+ */
145
+ input: string | Buffer;
146
+ /**
147
+ * Sample rate in Hz (e.g., 44100, 48000).
148
+ */
149
+ sampleRate: number;
150
+ /**
151
+ * Number of audio channels.
152
+ */
153
+ channels: number;
154
+ /**
155
+ * Sample format (e.g., AV_SAMPLE_FMT_S16, AV_SAMPLE_FMT_FLT, AV_SAMPLE_FMT_S32).
156
+ */
157
+ sampleFormat: AVSampleFormat;
158
+ }
159
+ /**
160
+ * Raw data configuration for MediaInput.
161
+ *
162
+ * @type RawData
163
+ */
164
+ export type RawData = VideoRawData | AudioRawData;
165
+ /**
166
+ * Options for MediaInput opening.
167
+ *
168
+ * Configures how media files are opened and packets are read.
169
+ *
170
+ * @interface MediaInputOptions
171
+ */
172
+ export interface MediaInputOptions {
173
+ /**
174
+ * Buffer size for reading/writing operations.
175
+ *
176
+ * This option allows you to specify the buffer size used for I/O operations.
177
+ * A larger buffer size may improve performance by reducing the number of I/O calls,
178
+ * while a smaller buffer size may reduce memory usage.
179
+ *
180
+ * @default 8192
181
+ *
182
+ * @example
183
+ * ```typescript
184
+ * const input = await MediaInput.open('video.m1v', {
185
+ * bufferSize: 4096 // Use a smaller buffer size
186
+ * });
187
+ * ```
188
+ */
189
+ bufferSize?: number;
190
+ /**
191
+ * Force specific input format.
192
+ *
193
+ * Use this to specify the input format explicitly instead of auto-detection.
194
+ * Useful for raw formats like 'rawvideo', 'rawaudio', etc.
195
+ *
196
+ * @example
197
+ * ```typescript
198
+ * // Open raw YUV video
199
+ * const input = await MediaInput.open('input.yuv', {
200
+ * format: 'rawvideo',
201
+ * options: {
202
+ * video_size: '1920x1080',
203
+ * pixel_format: 'yuv420p',
204
+ * framerate: '30'
205
+ * }
206
+ * });
207
+ * ```
208
+ */
209
+ format?: string;
210
+ /**
211
+ * FFmpeg format options passed directly to the input.
212
+ * These are equivalent to options specified before -i in ffmpeg CLI.
213
+ *
214
+ * @example
215
+ * ```typescript
216
+ * // For RTSP with low latency:
217
+ * const input = await MediaInput.open('rtsp://...', {
218
+ * options: {
219
+ * 'rtsp_transport': 'tcp',
220
+ * 'fflags': '+discardcorrupt+nobuffer',
221
+ * 'flags': 'low_delay',
222
+ * 'analyzeduration': '0',
223
+ * 'probesize': '500000'
224
+ * }
225
+ * });
226
+ *
227
+ * // For seeking in MP4:
228
+ * const input = await MediaInput.open('video.mp4', {
229
+ * options: {
230
+ * 'ss': '10', // Start at 10 seconds
231
+ * }
232
+ * });
233
+ * ```
234
+ */
235
+ options?: Record<string, string | number>;
236
+ }
237
+ /**
238
+ * Options for decoder creation.
239
+ *
240
+ * Configuration parameters for initializing a media decoder.
241
+ * Supports hardware acceleration and threading configuration.
242
+ *
243
+ * @interface DecoderOptions
244
+ */
245
+ export interface DecoderOptions {
246
+ /** Number of threads to use (0 for auto) */
247
+ threads?: number;
248
+ /** Additional codec-specific options (passed to AVOptions) */
249
+ options?: Record<string, string | number>;
250
+ /** Hardware acceleration: Pass a HardwareContext instance (user is responsible for disposal) */
251
+ hardware?: HardwareContext | null;
252
+ }
253
+ /**
254
+ * Options for encoder creation.
255
+ *
256
+ * Encoder-specific configuration options.
257
+ * Stream parameters (width, height, format, etc.) are taken from the provided stream.
258
+ *
259
+ * @interface EncoderOptions
260
+ */
261
+ export interface EncoderOptions {
262
+ /** Target bitrate (number, bigint, or string like '5M') */
263
+ bitrate?: number | bigint | string;
264
+ /** Group of Pictures size */
265
+ gopSize?: number;
266
+ /** Max B-frames between non-B-frames */
267
+ maxBFrames?: number;
268
+ /** Number of threads (0 for auto) */
269
+ threads?: number;
270
+ /**
271
+ * Override output timebase (rational {num, den})
272
+ * If not set, uses the stream's timebase
273
+ */
274
+ timeBase?: IRational;
275
+ /** Additional codec-specific options (passed to AVOptions) */
276
+ options?: Record<string, string | number>;
277
+ /** Hardware acceleration: Pass a HardwareContext instance (user is responsible for disposal) */
278
+ hardware?: HardwareContext | null;
279
+ }
280
+ /**
281
+ * Options for MediaOutput creation.
282
+ *
283
+ * Configures output container format.
284
+ *
285
+ * @interface MediaOutputOptions
286
+ */
287
+ export interface MediaOutputOptions {
288
+ /**
289
+ * Preferred output format.
290
+ *
291
+ * If not specified, format is guessed from file extension.
292
+ * Use this to override automatic format detection.
293
+ *
294
+ * @example
295
+ * ```typescript
296
+ * const output = await MediaOutput.open('output.bin', {
297
+ * format: 'mp4' // Force MP4 format despite .bin extension
298
+ * });
299
+ * ```
300
+ */
301
+ format?: string;
302
+ /**
303
+ * Buffer size for I/O operations.
304
+ *
305
+ * This option controls the size of the internal buffer used for
306
+ * reading and writing data. A larger buffer may improve performance
307
+ * by reducing the number of I/O operations, but will also increase
308
+ * memory usage.
309
+ *
310
+ * @default 4096
311
+ *
312
+ * @example
313
+ * ```typescript
314
+ * const output = await MediaOutput.open('output.mp4', {
315
+ * bufferSize: 8192 // Use an 8KB buffer
316
+ * });
317
+ * ```
318
+ */
319
+ bufferSize?: number;
320
+ }
321
+ /**
322
+ * Options for creating a filter instance.
323
+ */
324
+ export interface FilterOptions {
325
+ /**
326
+ * Number of threads for parallel processing.
327
+ * 0 = auto-detect based on CPU cores.
328
+ */
329
+ threads?: number;
330
+ /**
331
+ * Software scaler options (for video filters).
332
+ * Example: "flags=bicubic"
333
+ */
334
+ scaleSwsOpts?: string;
335
+ /** Hardware acceleration: Pass a HardwareContext instance (user is responsible for disposal) */
336
+ hardware?: HardwareContext | null;
337
+ }
338
+ /**
339
+ * Hardware acceleration configuration options.
340
+ *
341
+ * Parameters for configuring hardware-accelerated encoding/decoding.
342
+ * Supports device selection and initialization options.
343
+ *
344
+ * @interface HardwareOptions
345
+ */
346
+ export interface HardwareOptions {
347
+ /**
348
+ * Preferred device type (e.g., 'cuda', 'vaapi', 'videotoolbox').
349
+ * If not specified, auto-detection will be used.
350
+ */
351
+ device?: string;
352
+ /**
353
+ * Device name or index (e.g., '0' for first GPU).
354
+ */
355
+ deviceName?: string;
356
+ /**
357
+ * Device initialization options.
358
+ */
359
+ options?: Record<string, string>;
360
+ }
361
+ /**
362
+ * Custom I/O callbacks for implementing custom input sources.
363
+ *
364
+ * Defines callback functions for custom read operations with FFmpeg.
365
+ * Used by IOStream.create() for custom input protocols.
366
+ *
367
+ * @interface IOInputCallbacks
368
+ */
369
+ export interface IOInputCallbacks {
370
+ /**
371
+ * Read callback - called when FFmpeg needs to read data.
372
+ * @param size - Number of bytes to read
373
+ * @returns Buffer with data, null for EOF, or negative error code
374
+ */
375
+ read: (size: number) => Buffer | null | number;
376
+ /**
377
+ * Seek callback - called when FFmpeg needs to seek in the stream.
378
+ * @param offset - Offset to seek to
379
+ * @param whence - Seek origin (AVSEEK_SET, AVSEEK_CUR, AVSEEK_END, or AVSEEK_SIZE)
380
+ * @returns New position or negative error code
381
+ */
382
+ seek?: (offset: bigint, whence: number) => bigint | number;
383
+ }
384
+ /**
385
+ * Custom I/O callbacks for implementing custom output targets.
386
+ *
387
+ * Defines callback functions for custom write operations with FFmpeg.
388
+ * Used internally by MediaOutput for custom output protocols.
389
+ *
390
+ * @interface IOOutputCallbacks
391
+ * @internal
392
+ */
393
+ export interface IOOutputCallbacks {
394
+ /**
395
+ * Write callback - called when FFmpeg needs to write data.
396
+ * @param buffer - Buffer containing data to write
397
+ * @returns Number of bytes written or void
398
+ */
399
+ write: (buffer: Buffer) => number | void;
400
+ /**
401
+ * Seek callback - called when FFmpeg needs to seek in the output.
402
+ * @param offset - Offset to seek to
403
+ * @param whence - Seek origin (AVSEEK_SET, AVSEEK_CUR, AVSEEK_END)
404
+ * @returns New position or negative error code
405
+ */
406
+ seek?: (offset: bigint, whence: number) => bigint | number;
407
+ /**
408
+ * Read callback - some formats may need to read back data.
409
+ * @param size - Number of bytes to read
410
+ * @returns Buffer with data, null for EOF, or negative error code
411
+ */
412
+ read?: (size: number) => Buffer | null | number;
413
+ }
414
+ /**
415
+ * Options for image conversion and manipulation.
416
+ *
417
+ * Configuration for frame transformation operations.
418
+ * Supports cropping, resizing, and format conversion.
419
+ *
420
+ * @interface ImageOptions
421
+ */
422
+ export interface ImageOptions {
423
+ /** Crop the image */
424
+ crop?: {
425
+ top: number;
426
+ left: number;
427
+ width: number;
428
+ height: number;
429
+ };
430
+ /** Resize the image */
431
+ resize?: {
432
+ width: number;
433
+ height: number;
434
+ algorithm?: SWSFlag;
435
+ };
436
+ /** Convert pixel format */
437
+ format?: {
438
+ to: AVPixelFormat;
439
+ };
440
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/api/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,115 @@
1
+ /**
2
+ * Audio Sample Utilities
3
+ *
4
+ * Provides utilities for working with audio sample buffers in FFmpeg.
5
+ * All methods are static and map directly to FFmpeg's libavutil functions.
6
+ *
7
+ * @module lib/audio-sample-utils
8
+ */
9
+ import type { AVSampleFormat } from '../../lib/constants.js';
10
+ /**
11
+ * Audio sample allocation result.
12
+ */
13
+ export interface AudioSampleAllocation {
14
+ /** Allocated data buffers (one per channel for planar formats) */
15
+ data: Buffer[];
16
+ /** Line size (bytes per channel) */
17
+ linesize: number;
18
+ /** Total allocated size */
19
+ size: number;
20
+ }
21
+ /**
22
+ * Audio sample buffer size result.
23
+ */
24
+ export interface AudioSampleBufferSize {
25
+ /** Total size in bytes */
26
+ size: number;
27
+ /** Line size (bytes per channel) */
28
+ linesize: number;
29
+ }
30
+ /**
31
+ * Audio sample buffer utilities.
32
+ *
33
+ * Provides static methods for allocating and managing audio sample buffers.
34
+ * These utilities handle the memory layout for various sample formats,
35
+ * including planar formats where each channel has its own buffer.
36
+ *
37
+ * @example
38
+ * ```typescript
39
+ * import { AudioSampleUtils } from 'node-av';
40
+ * import { AV_SAMPLE_FMT_FLTP, AV_SAMPLE_FMT_S16 } from 'node-av/constants';
41
+ *
42
+ * // Allocate audio buffers for stereo float planar
43
+ * const audio = AudioSampleUtils.alloc(2, 1024, AV_SAMPLE_FMT_FLTP, 0);
44
+ * console.log(`Allocated ${audio.size} bytes`);
45
+ * console.log(`${audio.data.length} buffers (one per channel)`);
46
+ *
47
+ * // Get buffer size for packed format
48
+ * const size = AudioSampleUtils.getBufferSize(2, 1024, AV_SAMPLE_FMT_S16, 0);
49
+ * console.log(`S16 stereo needs ${size.size} bytes`);
50
+ * ```
51
+ */
52
+ export declare class AudioSampleUtils {
53
+ private constructor();
54
+ /**
55
+ * Allocate audio sample buffers.
56
+ *
57
+ * Allocates buffers for audio samples. For planar formats, allocates
58
+ * separate buffers for each channel. For packed formats, allocates
59
+ * a single interleaved buffer.
60
+ * Direct mapping to av_samples_alloc()
61
+ *
62
+ * @param nbChannels - Number of audio channels
63
+ * @param nbSamples - Number of samples per channel
64
+ * @param sampleFmt - Audio sample format
65
+ * @param align - Buffer alignment (0 for default)
66
+ * @returns Allocation result with buffers and size information
67
+ * @throws {FFmpegError} On allocation failure
68
+ *
69
+ * @example
70
+ * ```typescript
71
+ * import { AudioSampleUtils } from 'node-av';
72
+ * import { AV_SAMPLE_FMT_FLTP, AV_SAMPLE_FMT_S16 } from 'node-av/constants';
73
+ *
74
+ * // Allocate for planar format (separate buffer per channel)
75
+ * const planar = AudioSampleUtils.alloc(2, 1024, AV_SAMPLE_FMT_FLTP, 0);
76
+ * console.log(`Planar: ${planar.data.length} buffers`); // 2 buffers
77
+ *
78
+ * // Allocate for packed format (single interleaved buffer)
79
+ * const packed = AudioSampleUtils.alloc(2, 1024, AV_SAMPLE_FMT_S16, 0);
80
+ * console.log(`Packed: ${packed.data.length} buffer`); // 1 buffer
81
+ * ```
82
+ */
83
+ static alloc(nbChannels: number, nbSamples: number, sampleFmt: AVSampleFormat, align: number): AudioSampleAllocation;
84
+ /**
85
+ * Get required buffer size for audio samples.
86
+ *
87
+ * Calculates the buffer size needed to store audio samples with the
88
+ * given parameters. Does not allocate any memory.
89
+ * Direct mapping to av_samples_get_buffer_size()
90
+ *
91
+ * @param nbChannels - Number of audio channels
92
+ * @param nbSamples - Number of samples per channel
93
+ * @param sampleFmt - Audio sample format
94
+ * @param align - Buffer alignment (0 for default)
95
+ * @returns Buffer size and line size information
96
+ * @throws {FFmpegError} On invalid parameters
97
+ *
98
+ * @example
99
+ * ```typescript
100
+ * import { AudioSampleUtils } from 'node-av';
101
+ * import { AV_SAMPLE_FMT_FLT, AV_SAMPLE_FMT_S16P } from 'node-av/constants';
102
+ *
103
+ * // Calculate size for packed float (32-bit) stereo
104
+ * const floatSize = AudioSampleUtils.getBufferSize(2, 1024, AV_SAMPLE_FMT_FLT, 0);
105
+ * console.log(`Float stereo: ${floatSize.size} bytes total`);
106
+ * console.log(`Line size: ${floatSize.linesize} bytes`);
107
+ *
108
+ * // Calculate size for planar 16-bit stereo
109
+ * const planarSize = AudioSampleUtils.getBufferSize(2, 1024, AV_SAMPLE_FMT_S16P, 0);
110
+ * console.log(`S16 planar: ${planarSize.size} bytes total`);
111
+ * console.log(`Per channel: ${planarSize.linesize} bytes`);
112
+ * ```
113
+ */
114
+ static getBufferSize(nbChannels: number, nbSamples: number, sampleFmt: AVSampleFormat, align: number): AudioSampleBufferSize;
115
+ }