node-av-light 0.0.0 → 7.1.0-beta.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 (311) hide show
  1. package/LICENSE.md +22 -0
  2. package/README.md +711 -0
  3. package/dist/api/audio-frame-buffer.d.ts +636 -0
  4. package/dist/api/audio-frame-buffer.js +1027 -0
  5. package/dist/api/audio-frame-buffer.js.map +1 -0
  6. package/dist/api/bitstream-filter.d.ts +938 -0
  7. package/dist/api/bitstream-filter.js +1427 -0
  8. package/dist/api/bitstream-filter.js.map +1 -0
  9. package/dist/api/constants.d.ts +44 -0
  10. package/dist/api/constants.js +45 -0
  11. package/dist/api/constants.js.map +1 -0
  12. package/dist/api/data/test_av1.ivf +0 -0
  13. package/dist/api/data/test_h264.h264 +0 -0
  14. package/dist/api/data/test_hevc.h265 +0 -0
  15. package/dist/api/data/test_mjpeg.mjpeg +0 -0
  16. package/dist/api/data/test_vp8.ivf +0 -0
  17. package/dist/api/data/test_vp9.ivf +0 -0
  18. package/dist/api/decoder.d.ts +1413 -0
  19. package/dist/api/decoder.js +2367 -0
  20. package/dist/api/decoder.js.map +1 -0
  21. package/dist/api/demuxer.d.ts +1295 -0
  22. package/dist/api/demuxer.js +2344 -0
  23. package/dist/api/demuxer.js.map +1 -0
  24. package/dist/api/device.d.ts +589 -0
  25. package/dist/api/device.js +964 -0
  26. package/dist/api/device.js.map +1 -0
  27. package/dist/api/encoder-pool.d.ts +262 -0
  28. package/dist/api/encoder-pool.js +397 -0
  29. package/dist/api/encoder-pool.js.map +1 -0
  30. package/dist/api/encoder.d.ts +1509 -0
  31. package/dist/api/encoder.js +2619 -0
  32. package/dist/api/encoder.js.map +1 -0
  33. package/dist/api/filter-complex.d.ts +828 -0
  34. package/dist/api/filter-complex.js +1661 -0
  35. package/dist/api/filter-complex.js.map +1 -0
  36. package/dist/api/filter-presets.d.ts +800 -0
  37. package/dist/api/filter-presets.js +1554 -0
  38. package/dist/api/filter-presets.js.map +1 -0
  39. package/dist/api/filter.d.ts +1339 -0
  40. package/dist/api/filter.js +2075 -0
  41. package/dist/api/filter.js.map +1 -0
  42. package/dist/api/fmp4-stream.d.ts +797 -0
  43. package/dist/api/fmp4-stream.js +1428 -0
  44. package/dist/api/fmp4-stream.js.map +1 -0
  45. package/dist/api/hardware.d.ts +677 -0
  46. package/dist/api/hardware.js +1300 -0
  47. package/dist/api/hardware.js.map +1 -0
  48. package/dist/api/index.d.ts +21 -0
  49. package/dist/api/index.js +38 -0
  50. package/dist/api/index.js.map +1 -0
  51. package/dist/api/io-stream.d.ts +308 -0
  52. package/dist/api/io-stream.js +358 -0
  53. package/dist/api/io-stream.js.map +1 -0
  54. package/dist/api/muxer.d.ts +1311 -0
  55. package/dist/api/muxer.js +2672 -0
  56. package/dist/api/muxer.js.map +1 -0
  57. package/dist/api/pipeline.d.ts +801 -0
  58. package/dist/api/pipeline.js +1344 -0
  59. package/dist/api/pipeline.js.map +1 -0
  60. package/dist/api/probe.d.ts +128 -0
  61. package/dist/api/probe.js +227 -0
  62. package/dist/api/probe.js.map +1 -0
  63. package/dist/api/rtp-stream.d.ts +497 -0
  64. package/dist/api/rtp-stream.js +1131 -0
  65. package/dist/api/rtp-stream.js.map +1 -0
  66. package/dist/api/scaler.d.ts +561 -0
  67. package/dist/api/scaler.js +918 -0
  68. package/dist/api/scaler.js.map +1 -0
  69. package/dist/api/types.d.ts +17 -0
  70. package/dist/api/types.js +2 -0
  71. package/dist/api/types.js.map +1 -0
  72. package/dist/api/utilities/async-queue.d.ts +149 -0
  73. package/dist/api/utilities/async-queue.js +254 -0
  74. package/dist/api/utilities/async-queue.js.map +1 -0
  75. package/dist/api/utilities/audio-sample.d.ts +117 -0
  76. package/dist/api/utilities/audio-sample.js +112 -0
  77. package/dist/api/utilities/audio-sample.js.map +1 -0
  78. package/dist/api/utilities/audio-transcode.d.ts +20 -0
  79. package/dist/api/utilities/audio-transcode.js +27 -0
  80. package/dist/api/utilities/audio-transcode.js.map +1 -0
  81. package/dist/api/utilities/channel-layout.d.ts +76 -0
  82. package/dist/api/utilities/channel-layout.js +80 -0
  83. package/dist/api/utilities/channel-layout.js.map +1 -0
  84. package/dist/api/utilities/codec-format.d.ts +87 -0
  85. package/dist/api/utilities/codec-format.js +117 -0
  86. package/dist/api/utilities/codec-format.js.map +1 -0
  87. package/dist/api/utilities/context-options.d.ts +25 -0
  88. package/dist/api/utilities/context-options.js +23 -0
  89. package/dist/api/utilities/context-options.js.map +1 -0
  90. package/dist/api/utilities/electron-shared-texture.d.ts +368 -0
  91. package/dist/api/utilities/electron-shared-texture.js +540 -0
  92. package/dist/api/utilities/electron-shared-texture.js.map +1 -0
  93. package/dist/api/utilities/image.d.ts +207 -0
  94. package/dist/api/utilities/image.js +213 -0
  95. package/dist/api/utilities/image.js.map +1 -0
  96. package/dist/api/utilities/index.d.ts +14 -0
  97. package/dist/api/utilities/index.js +27 -0
  98. package/dist/api/utilities/index.js.map +1 -0
  99. package/dist/api/utilities/live-decoding.d.ts +15 -0
  100. package/dist/api/utilities/live-decoding.js +32 -0
  101. package/dist/api/utilities/live-decoding.js.map +1 -0
  102. package/dist/api/utilities/media-type.d.ts +49 -0
  103. package/dist/api/utilities/media-type.js +53 -0
  104. package/dist/api/utilities/media-type.js.map +1 -0
  105. package/dist/api/utilities/packet-age-watchdog.d.ts +198 -0
  106. package/dist/api/utilities/packet-age-watchdog.js +594 -0
  107. package/dist/api/utilities/packet-age-watchdog.js.map +1 -0
  108. package/dist/api/utilities/pixel-format.d.ts +89 -0
  109. package/dist/api/utilities/pixel-format.js +97 -0
  110. package/dist/api/utilities/pixel-format.js.map +1 -0
  111. package/dist/api/utilities/sample-format.d.ts +129 -0
  112. package/dist/api/utilities/sample-format.js +141 -0
  113. package/dist/api/utilities/sample-format.js.map +1 -0
  114. package/dist/api/utilities/scale-size.d.ts +51 -0
  115. package/dist/api/utilities/scale-size.js +55 -0
  116. package/dist/api/utilities/scale-size.js.map +1 -0
  117. package/dist/api/utilities/scheduler.d.ts +138 -0
  118. package/dist/api/utilities/scheduler.js +98 -0
  119. package/dist/api/utilities/scheduler.js.map +1 -0
  120. package/dist/api/utilities/streaming.d.ts +186 -0
  121. package/dist/api/utilities/streaming.js +309 -0
  122. package/dist/api/utilities/streaming.js.map +1 -0
  123. package/dist/api/utilities/timestamp.d.ts +193 -0
  124. package/dist/api/utilities/timestamp.js +206 -0
  125. package/dist/api/utilities/timestamp.js.map +1 -0
  126. package/dist/api/utilities/video-transcode.d.ts +218 -0
  127. package/dist/api/utilities/video-transcode.js +624 -0
  128. package/dist/api/utilities/video-transcode.js.map +1 -0
  129. package/dist/api/utilities/whisper-model.d.ts +330 -0
  130. package/dist/api/utilities/whisper-model.js +587 -0
  131. package/dist/api/utilities/whisper-model.js.map +1 -0
  132. package/dist/api/utils.d.ts +19 -0
  133. package/dist/api/utils.js +39 -0
  134. package/dist/api/utils.js.map +1 -0
  135. package/dist/api/webrtc-stream.d.ts +294 -0
  136. package/dist/api/webrtc-stream.js +546 -0
  137. package/dist/api/webrtc-stream.js.map +1 -0
  138. package/dist/api/whisper.d.ts +326 -0
  139. package/dist/api/whisper.js +402 -0
  140. package/dist/api/whisper.js.map +1 -0
  141. package/dist/constants/bsf-options.d.ts +364 -0
  142. package/dist/constants/bsf-options.js +7 -0
  143. package/dist/constants/bsf-options.js.map +1 -0
  144. package/dist/constants/channel-layouts.d.ts +53 -0
  145. package/dist/constants/channel-layouts.js +57 -0
  146. package/dist/constants/channel-layouts.js.map +1 -0
  147. package/dist/constants/constants.d.ts +2435 -0
  148. package/dist/constants/constants.js +1989 -0
  149. package/dist/constants/constants.js.map +1 -0
  150. package/dist/constants/decoders.d.ts +651 -0
  151. package/dist/constants/decoders.js +641 -0
  152. package/dist/constants/decoders.js.map +1 -0
  153. package/dist/constants/encoders.d.ts +314 -0
  154. package/dist/constants/encoders.js +309 -0
  155. package/dist/constants/encoders.js.map +1 -0
  156. package/dist/constants/filter-options.d.ts +12099 -0
  157. package/dist/constants/filter-options.js +7 -0
  158. package/dist/constants/filter-options.js.map +1 -0
  159. package/dist/constants/format-options.d.ts +4319 -0
  160. package/dist/constants/format-options.js +7 -0
  161. package/dist/constants/format-options.js.map +1 -0
  162. package/dist/constants/formats.d.ts +18 -0
  163. package/dist/constants/formats.js +7 -0
  164. package/dist/constants/formats.js.map +1 -0
  165. package/dist/constants/hardware.d.ts +26 -0
  166. package/dist/constants/hardware.js +27 -0
  167. package/dist/constants/hardware.js.map +1 -0
  168. package/dist/constants/index.d.ts +10 -0
  169. package/dist/constants/index.js +6 -0
  170. package/dist/constants/index.js.map +1 -0
  171. package/dist/constants/options.d.ts +6217 -0
  172. package/dist/constants/options.js +7 -0
  173. package/dist/constants/options.js.map +1 -0
  174. package/dist/ffmpeg/index.d.ts +101 -0
  175. package/dist/ffmpeg/index.js +161 -0
  176. package/dist/ffmpeg/index.js.map +1 -0
  177. package/dist/ffmpeg/version.d.ts +6 -0
  178. package/dist/ffmpeg/version.js +7 -0
  179. package/dist/ffmpeg/version.js.map +1 -0
  180. package/dist/index.d.ts +4 -0
  181. package/dist/index.js +9 -0
  182. package/dist/index.js.map +1 -0
  183. package/dist/lib/audio-fifo.d.ts +399 -0
  184. package/dist/lib/audio-fifo.js +431 -0
  185. package/dist/lib/audio-fifo.js.map +1 -0
  186. package/dist/lib/binding.d.ts +242 -0
  187. package/dist/lib/binding.js +102 -0
  188. package/dist/lib/binding.js.map +1 -0
  189. package/dist/lib/bitstream-filter-context.d.ts +381 -0
  190. package/dist/lib/bitstream-filter-context.js +443 -0
  191. package/dist/lib/bitstream-filter-context.js.map +1 -0
  192. package/dist/lib/bitstream-filter.d.ts +140 -0
  193. package/dist/lib/bitstream-filter.js +154 -0
  194. package/dist/lib/bitstream-filter.js.map +1 -0
  195. package/dist/lib/codec-context.d.ts +1069 -0
  196. package/dist/lib/codec-context.js +1336 -0
  197. package/dist/lib/codec-context.js.map +1 -0
  198. package/dist/lib/codec-parameters.d.ts +664 -0
  199. package/dist/lib/codec-parameters.js +813 -0
  200. package/dist/lib/codec-parameters.js.map +1 -0
  201. package/dist/lib/codec-parser.d.ts +201 -0
  202. package/dist/lib/codec-parser.js +213 -0
  203. package/dist/lib/codec-parser.js.map +1 -0
  204. package/dist/lib/codec.d.ts +617 -0
  205. package/dist/lib/codec.js +746 -0
  206. package/dist/lib/codec.js.map +1 -0
  207. package/dist/lib/device.d.ts +294 -0
  208. package/dist/lib/device.js +326 -0
  209. package/dist/lib/device.js.map +1 -0
  210. package/dist/lib/dictionary.d.ts +333 -0
  211. package/dist/lib/dictionary.js +372 -0
  212. package/dist/lib/dictionary.js.map +1 -0
  213. package/dist/lib/error.d.ts +311 -0
  214. package/dist/lib/error.js +395 -0
  215. package/dist/lib/error.js.map +1 -0
  216. package/dist/lib/fifo.d.ts +416 -0
  217. package/dist/lib/fifo.js +453 -0
  218. package/dist/lib/fifo.js.map +1 -0
  219. package/dist/lib/filter-context.d.ts +714 -0
  220. package/dist/lib/filter-context.js +783 -0
  221. package/dist/lib/filter-context.js.map +1 -0
  222. package/dist/lib/filter-graph-segment.d.ts +161 -0
  223. package/dist/lib/filter-graph-segment.js +172 -0
  224. package/dist/lib/filter-graph-segment.js.map +1 -0
  225. package/dist/lib/filter-graph.d.ts +641 -0
  226. package/dist/lib/filter-graph.js +704 -0
  227. package/dist/lib/filter-graph.js.map +1 -0
  228. package/dist/lib/filter-inout.d.ts +202 -0
  229. package/dist/lib/filter-inout.js +261 -0
  230. package/dist/lib/filter-inout.js.map +1 -0
  231. package/dist/lib/filter.d.ts +243 -0
  232. package/dist/lib/filter.js +272 -0
  233. package/dist/lib/filter.js.map +1 -0
  234. package/dist/lib/format-context.d.ts +1335 -0
  235. package/dist/lib/format-context.js +1455 -0
  236. package/dist/lib/format-context.js.map +1 -0
  237. package/dist/lib/frame-utils.d.ts +116 -0
  238. package/dist/lib/frame-utils.js +98 -0
  239. package/dist/lib/frame-utils.js.map +1 -0
  240. package/dist/lib/frame.d.ts +1315 -0
  241. package/dist/lib/frame.js +1535 -0
  242. package/dist/lib/frame.js.map +1 -0
  243. package/dist/lib/hardware-device-context.d.ts +362 -0
  244. package/dist/lib/hardware-device-context.js +383 -0
  245. package/dist/lib/hardware-device-context.js.map +1 -0
  246. package/dist/lib/hardware-frames-context.d.ts +418 -0
  247. package/dist/lib/hardware-frames-context.js +471 -0
  248. package/dist/lib/hardware-frames-context.js.map +1 -0
  249. package/dist/lib/index.d.ts +35 -0
  250. package/dist/lib/index.js +60 -0
  251. package/dist/lib/index.js.map +1 -0
  252. package/dist/lib/input-format.d.ts +249 -0
  253. package/dist/lib/input-format.js +306 -0
  254. package/dist/lib/input-format.js.map +1 -0
  255. package/dist/lib/io-context.d.ts +698 -0
  256. package/dist/lib/io-context.js +771 -0
  257. package/dist/lib/io-context.js.map +1 -0
  258. package/dist/lib/log.d.ts +174 -0
  259. package/dist/lib/log.js +184 -0
  260. package/dist/lib/log.js.map +1 -0
  261. package/dist/lib/native-types.d.ts +1024 -0
  262. package/dist/lib/native-types.js +2 -0
  263. package/dist/lib/native-types.js.map +1 -0
  264. package/dist/lib/option.d.ts +953 -0
  265. package/dist/lib/option.js +1607 -0
  266. package/dist/lib/option.js.map +1 -0
  267. package/dist/lib/output-format.d.ts +222 -0
  268. package/dist/lib/output-format.js +259 -0
  269. package/dist/lib/output-format.js.map +1 -0
  270. package/dist/lib/packet.d.ts +521 -0
  271. package/dist/lib/packet.js +613 -0
  272. package/dist/lib/packet.js.map +1 -0
  273. package/dist/lib/rational.d.ts +251 -0
  274. package/dist/lib/rational.js +278 -0
  275. package/dist/lib/rational.js.map +1 -0
  276. package/dist/lib/software-resample-context.d.ts +552 -0
  277. package/dist/lib/software-resample-context.js +592 -0
  278. package/dist/lib/software-resample-context.js.map +1 -0
  279. package/dist/lib/software-scale-context.d.ts +344 -0
  280. package/dist/lib/software-scale-context.js +366 -0
  281. package/dist/lib/software-scale-context.js.map +1 -0
  282. package/dist/lib/stream.d.ts +383 -0
  283. package/dist/lib/stream.js +524 -0
  284. package/dist/lib/stream.js.map +1 -0
  285. package/dist/lib/sync-queue.d.ts +179 -0
  286. package/dist/lib/sync-queue.js +197 -0
  287. package/dist/lib/sync-queue.js.map +1 -0
  288. package/dist/lib/types.d.ts +34 -0
  289. package/dist/lib/types.js +2 -0
  290. package/dist/lib/types.js.map +1 -0
  291. package/dist/lib/utilities.d.ts +1198 -0
  292. package/dist/lib/utilities.js +1302 -0
  293. package/dist/lib/utilities.js.map +1 -0
  294. package/dist/utils/electron.d.ts +49 -0
  295. package/dist/utils/electron.js +63 -0
  296. package/dist/utils/electron.js.map +1 -0
  297. package/dist/utils/index.d.ts +6 -0
  298. package/dist/utils/index.js +7 -0
  299. package/dist/utils/index.js.map +1 -0
  300. package/dist/utils/libc.d.ts +11 -0
  301. package/dist/utils/libc.js +35 -0
  302. package/dist/utils/libc.js.map +1 -0
  303. package/dist/utils/variant.d.ts +26 -0
  304. package/dist/utils/variant.js +31 -0
  305. package/dist/utils/variant.js.map +1 -0
  306. package/dist/webrtc/index.d.ts +4 -0
  307. package/dist/webrtc/index.js +7 -0
  308. package/dist/webrtc/index.js.map +1 -0
  309. package/install/check.js +124 -0
  310. package/install/ffmpeg.js +66 -0
  311. package/package.json +165 -3
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hardware.js","sourceRoot":"","sources":["../../src/api/hardware.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ export { IOStream, type IOInputCallbacks, type IOOutputCallbacks } from './io-stream.js';
2
+ export { Demuxer, type AudioRawData, type DemuxerOptions, type RTPDemuxer, type VideoRawData } from './demuxer.js';
3
+ export { Muxer, type MuxerOptions } from './muxer.js';
4
+ export { Decoder, type DecoderOptions } from './decoder.js';
5
+ export { Encoder, type EncoderContextOptions, type EncoderOptions } from './encoder.js';
6
+ export { EncoderPool, type EncoderPoolOptions } from './encoder-pool.js';
7
+ export { AudioFrameBuffer, type AudioFrameBufferOptions } from './audio-frame-buffer.js';
8
+ export { HardwareContext, type BaseCodecName, type HardwareOptions } from './hardware.js';
9
+ export { DeviceAPI, type CameraOptions, type DeviceOptions, type MicrophoneOptions, type ScreenCaptureOptions } from './device.js';
10
+ export { FilterComplexAPI, type FilterComplexInput, type FilterComplexOptions, type FilterComplexOutput } from './filter-complex.js';
11
+ export { FilterComplexGraph, FilterPreset, type FilterComplexLabels, type FilterSupport } from './filter-presets.js';
12
+ export { FilterAPI, type FilterOptions } from './filter.js';
13
+ export { BitStreamFilterAPI, type BitstreamFilterOptions } from './bitstream-filter.js';
14
+ export { pipeline, type NamedInputs, type NamedOutputs, type NamedStages, type PipelineControl, type PipelineOptions, type PipelineProgress, type StreamName, } from './pipeline.js';
15
+ export { probe, probeSync, type ProbeOptions, type ProbeResult, type ProbeStream, type ProbeStreamType } from './probe.js';
16
+ export { Scaler, type JpegOptions, type PngOptions, type ScaledImageFormat, type ScaleOptions, type ScalerCrop, type ScalerOptions, type ScalerResize, } from './scaler.js';
17
+ export { FMP4_CODECS, FMP4Stream, type FMP4Data, type FMP4Fragment, type FMP4StreamOptions, type FMP4VideoInfo, type MP4Box, type MP4BoxType } from './fmp4-stream.js';
18
+ export { WhisperTranscriber, type WhisperSegment, type WhisperTranscriberOptions } from './whisper.js';
19
+ export type { MediaFrameSource } from './types.js';
20
+ export * from './utilities/index.js';
21
+ export * from './utils.js';
@@ -0,0 +1,38 @@
1
+ // IOStream
2
+ export { IOStream } from './io-stream.js';
3
+ // Demuxer
4
+ export { Demuxer } from './demuxer.js';
5
+ // Muxer
6
+ export { Muxer } from './muxer.js';
7
+ // Decoder
8
+ export { Decoder } from './decoder.js';
9
+ // Encoder
10
+ export { Encoder } from './encoder.js';
11
+ // EncoderPool
12
+ export { EncoderPool } from './encoder-pool.js';
13
+ // AudioFrameBuffer
14
+ export { AudioFrameBuffer } from './audio-frame-buffer.js';
15
+ // Hardware
16
+ export { HardwareContext } from './hardware.js';
17
+ // Device
18
+ export { DeviceAPI } from './device.js';
19
+ // Filter
20
+ export { FilterComplexAPI } from './filter-complex.js';
21
+ export { FilterComplexGraph, FilterPreset } from './filter-presets.js';
22
+ export { FilterAPI } from './filter.js';
23
+ // BitStreamFilter
24
+ export { BitStreamFilterAPI } from './bitstream-filter.js';
25
+ // Pipeline
26
+ export { pipeline, } from './pipeline.js';
27
+ // Probe
28
+ export { probe, probeSync } from './probe.js';
29
+ // Scaler
30
+ export { Scaler, } from './scaler.js';
31
+ // fMP4 Stream
32
+ export { FMP4_CODECS, FMP4Stream } from './fmp4-stream.js';
33
+ // Whisper Transcriber
34
+ export { WhisperTranscriber } from './whisper.js';
35
+ // Utilities
36
+ export * from './utilities/index.js';
37
+ export * from './utils.js';
38
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"AAAA,WAAW;AACX,OAAO,EAAE,QAAQ,EAAiD,MAAM,gBAAgB,CAAC;AAEzF,UAAU;AACV,OAAO,EAAE,OAAO,EAA8E,MAAM,cAAc,CAAC;AAEnH,QAAQ;AACR,OAAO,EAAE,KAAK,EAAqB,MAAM,YAAY,CAAC;AAEtD,UAAU;AACV,OAAO,EAAE,OAAO,EAAuB,MAAM,cAAc,CAAC;AAE5D,UAAU;AACV,OAAO,EAAE,OAAO,EAAmD,MAAM,cAAc,CAAC;AAExF,cAAc;AACd,OAAO,EAAE,WAAW,EAA2B,MAAM,mBAAmB,CAAC;AAEzE,mBAAmB;AACnB,OAAO,EAAE,gBAAgB,EAAgC,MAAM,yBAAyB,CAAC;AAEzF,WAAW;AACX,OAAO,EAAE,eAAe,EAA4C,MAAM,eAAe,CAAC;AAE1F,SAAS;AACT,OAAO,EAAE,SAAS,EAA6F,MAAM,aAAa,CAAC;AAEnI,SAAS;AACT,OAAO,EAAE,gBAAgB,EAAgF,MAAM,qBAAqB,CAAC;AACrI,OAAO,EAAE,kBAAkB,EAAE,YAAY,EAAgD,MAAM,qBAAqB,CAAC;AACrH,OAAO,EAAE,SAAS,EAAsB,MAAM,aAAa,CAAC;AAE5D,kBAAkB;AAClB,OAAO,EAAE,kBAAkB,EAA+B,MAAM,uBAAuB,CAAC;AAExF,WAAW;AACX,OAAO,EACL,QAAQ,GAQT,MAAM,eAAe,CAAC;AAEvB,QAAQ;AACR,OAAO,EAAE,KAAK,EAAE,SAAS,EAA+E,MAAM,YAAY,CAAC;AAE3H,SAAS;AACT,OAAO,EACL,MAAM,GAQP,MAAM,aAAa,CAAC;AAErB,cAAc;AACd,OAAO,EAAE,WAAW,EAAE,UAAU,EAA8G,MAAM,kBAAkB,CAAC;AAEvK,sBAAsB;AACtB,OAAO,EAAE,kBAAkB,EAAuD,MAAM,cAAc,CAAC;AAKvG,YAAY;AACZ,cAAc,sBAAsB,CAAC;AACrC,cAAc,YAAY,CAAC"}
@@ -0,0 +1,308 @@
1
+ import { Readable } from 'node:stream';
2
+ import { IOContext } from '../lib/index.js';
3
+ import type { Writable } from 'node:stream';
4
+ import type { AVSeekWhence } from '../constants/index.js';
5
+ import type { DemuxerOptions } from './demuxer.js';
6
+ import type { MuxerOptions } from './muxer.js';
7
+ /**
8
+ * Custom I/O callbacks for implementing custom input sources.
9
+ *
10
+ */
11
+ export interface IOInputCallbacks {
12
+ /**
13
+ * Read callback - called when FFmpeg needs to read data.
14
+ *
15
+ * Can be synchronous or async (return a Promise).
16
+ *
17
+ * @param size - Number of bytes to read
18
+ *
19
+ * @returns Buffer with data, null for EOF, negative error code, or Promise resolving to same
20
+ */
21
+ read: (size: number) => Buffer | null | number | Promise<Buffer | null | number>;
22
+ /**
23
+ * Seek callback - called when FFmpeg needs to seek in the stream.
24
+ *
25
+ * Can be synchronous or async (return a Promise).
26
+ *
27
+ * @param offset - Offset to seek to
28
+ *
29
+ * @param whence - Seek origin (AVSEEK_SET, AVSEEK_CUR, AVSEEK_END, or AVSEEK_SIZE)
30
+ *
31
+ * @returns New position, negative error code, or Promise resolving to same
32
+ */
33
+ seek?: (offset: bigint, whence: AVSeekWhence) => bigint | number | Promise<bigint | number>;
34
+ }
35
+ /**
36
+ * Custom I/O callbacks for implementing custom output targets.
37
+ *
38
+ */
39
+ export interface IOOutputCallbacks {
40
+ /**
41
+ * Write callback - called when FFmpeg needs to write data.
42
+ *
43
+ * Can be synchronous or async (return a Promise).
44
+ * Each call receives its own buffer holding a copy of the data, never a view
45
+ * into FFmpeg's internal write buffer, so it stays valid after the callback
46
+ * returns and may be queued or retained without copying it again.
47
+ *
48
+ * @param buffer - Buffer containing data to write
49
+ *
50
+ * @returns Number of bytes written, void (assumes all bytes written), or Promise resolving to same
51
+ */
52
+ write: (buffer: Buffer) => number | void | Promise<number | void>;
53
+ /**
54
+ * Seek callback - called when FFmpeg needs to seek in the output.
55
+ *
56
+ * Can be synchronous or async (return a Promise).
57
+ *
58
+ * @param offset - Offset to seek to
59
+ *
60
+ * @param whence - Seek origin (AVSEEK_SET, AVSEEK_CUR, AVSEEK_END)
61
+ *
62
+ * @returns New position, negative error code, or Promise resolving to same
63
+ */
64
+ seek?: (offset: bigint, whence: AVSeekWhence) => bigint | number | Promise<bigint | number>;
65
+ /**
66
+ * Read callback - some formats may need to read back data.
67
+ *
68
+ * Can be synchronous or async (return a Promise).
69
+ *
70
+ * @param size - Number of bytes to read
71
+ *
72
+ * @returns Buffer with data, null for EOF, negative error code, or Promise resolving to same
73
+ */
74
+ read?: (size: number) => Buffer | null | number | Promise<Buffer | null | number>;
75
+ }
76
+ /**
77
+ * Factory for creating custom I/O contexts.
78
+ *
79
+ * Provides simplified creation of I/O contexts from buffers or custom callbacks.
80
+ * Handles buffer management and seek operations for in-memory media.
81
+ * Bridges the gap between high-level media operations and custom I/O sources.
82
+ * Essential for processing media from non-file sources like network streams or memory.
83
+ *
84
+ * @example
85
+ * ```typescript
86
+ * import { IOStream, Demuxer } from 'node-av/api';
87
+ *
88
+ * // From buffer
89
+ * const buffer = await fs.readFile('video.mp4');
90
+ * const ioContext = IOStream.create(buffer);
91
+ * const input = await Demuxer.open(buffer);
92
+ * ```
93
+ *
94
+ * @example
95
+ * ```typescript
96
+ * // Custom I/O callbacks
97
+ * const callbacks = {
98
+ * read: async (size: number) => {
99
+ * // Read from custom source
100
+ * return Buffer.alloc(size);
101
+ * },
102
+ * seek: async (offset: bigint, whence: AVSeekWhence) => {
103
+ * // Seek in custom source
104
+ * return offset;
105
+ * }
106
+ * };
107
+ *
108
+ * const ioContext = IOStream.create(callbacks, {
109
+ * bufferSize: 4096
110
+ * });
111
+ * ```
112
+ *
113
+ * @see {@link IOContext} For low-level I/O operations
114
+ * @see {@link Demuxer} For using I/O contexts
115
+ * @see {@link IOInputCallbacks} For callback interface
116
+ */
117
+ export declare class IOStream {
118
+ /**
119
+ * Create I/O context from buffer.
120
+ *
121
+ * Creates an I/O context from an in-memory buffer for reading media data.
122
+ * Automatically handles seek operations and position tracking.
123
+ *
124
+ * @param buffer - Buffer containing media data
125
+ *
126
+ * @param options - I/O configuration options
127
+ *
128
+ * @returns Configured I/O context
129
+ *
130
+ * @example
131
+ * ```typescript
132
+ * const buffer = await fs.readFile('video.mp4');
133
+ * const ioContext = IOStream.create(buffer, {
134
+ * bufferSize: 8192
135
+ * });
136
+ * ```
137
+ */
138
+ static create(buffer: Buffer, options?: DemuxerOptions): IOContext;
139
+ /**
140
+ * Create I/O context from callbacks.
141
+ *
142
+ * Creates an I/O context using custom read and seek callbacks.
143
+ * Useful for streaming from non-file sources like network or custom storage.
144
+ *
145
+ * @param callbacks - I/O callbacks for read and seek operations
146
+ *
147
+ * @param options - I/O configuration options
148
+ *
149
+ * @returns Configured I/O context
150
+ *
151
+ * @throws {Error} If callbacks missing required read function
152
+ *
153
+ * @example
154
+ * ```typescript
155
+ * const ioContext = IOStream.create({
156
+ * read: async (size) => {
157
+ * return await customSource.read(size);
158
+ * },
159
+ * seek: async (offset, whence) => {
160
+ * return await customSource.seek(offset, whence);
161
+ * }
162
+ * });
163
+ * ```
164
+ */
165
+ static create(callbacks: IOInputCallbacks, options?: DemuxerOptions): IOContext;
166
+ /**
167
+ * Create I/O context from a Node.js Readable stream.
168
+ *
169
+ * Creates an I/O context that reads from a Readable stream.
170
+ * Seeking is not supported for streams.
171
+ *
172
+ * @param stream - Node.js Readable stream
173
+ *
174
+ * @param options - I/O configuration options
175
+ *
176
+ * @returns Configured I/O context
177
+ *
178
+ * @example
179
+ * ```typescript
180
+ * const readable = fs.createReadStream('video.mkv');
181
+ * const ioContext = IOStream.create(readable, { format: 'matroska' });
182
+ * ```
183
+ */
184
+ static create(stream: Readable, options?: DemuxerOptions): IOContext;
185
+ /**
186
+ * Create I/O context for writing to a Node.js Writable stream.
187
+ *
188
+ * Creates a write-mode I/O context from a Writable stream with
189
+ * backpressure support and automatic buffer copying.
190
+ * Seeking is not supported for streams.
191
+ *
192
+ * @param stream - Node.js Writable stream
193
+ *
194
+ * @param options - Output configuration options
195
+ *
196
+ * @returns Configured I/O context
197
+ *
198
+ * @example
199
+ * ```typescript
200
+ * const writable = fs.createWriteStream('output.mkv');
201
+ * const ioContext = IOStream.createOutput(writable, { format: 'matroska' });
202
+ * ```
203
+ */
204
+ static createOutput(stream: Writable, options?: MuxerOptions): IOContext;
205
+ /**
206
+ * Create I/O context from custom output callbacks.
207
+ *
208
+ * Creates a write-mode I/O context using custom write, optional seek,
209
+ * and optional read callbacks.
210
+ *
211
+ * @param callbacks - I/O callbacks for write, seek, and read operations
212
+ *
213
+ * @param options - Output configuration options
214
+ *
215
+ * @returns Configured I/O context
216
+ *
217
+ * @throws {Error} If callbacks missing required write function
218
+ *
219
+ * @example
220
+ * ```typescript
221
+ * const chunks: Buffer[] = [];
222
+ * const ioContext = IOStream.createOutput({
223
+ * write: (buffer) => {
224
+ * chunks.push(Buffer.from(buffer));
225
+ * return buffer.length;
226
+ * }
227
+ * }, { format: 'matroska' });
228
+ * ```
229
+ */
230
+ static createOutput(callbacks: IOOutputCallbacks, options?: MuxerOptions): IOContext;
231
+ /**
232
+ * Create I/O context from buffer.
233
+ *
234
+ * Sets up read and seek callbacks for in-memory buffer.
235
+ * Manages position tracking and EOF handling.
236
+ *
237
+ * @param buffer - Source buffer
238
+ *
239
+ * @param bufferSize - Internal buffer size
240
+ *
241
+ * @returns Configured I/O context
242
+ *
243
+ * @internal
244
+ */
245
+ private static createFromBuffer;
246
+ /**
247
+ * Create I/O context from a Node.js Readable stream.
248
+ *
249
+ * Sets up async read callbacks that buffer data from the stream.
250
+ * Seeking is not supported for streams.
251
+ *
252
+ * @param stream - Node.js Readable stream
253
+ *
254
+ * @param bufferSize - Internal buffer size
255
+ *
256
+ * @returns Configured I/O context
257
+ *
258
+ * @internal
259
+ */
260
+ private static createFromReadable;
261
+ /**
262
+ * Create I/O context for writing to a Node.js Writable stream.
263
+ *
264
+ * Sets up async write callbacks with backpressure support.
265
+ * The buffer is copied before writing since FFmpeg reuses its internal buffer.
266
+ *
267
+ * @param stream - Node.js Writable stream
268
+ *
269
+ * @param bufferSize - Internal buffer size
270
+ *
271
+ * @param maxPacketSize - Maximum packet size
272
+ *
273
+ * @returns Configured I/O context
274
+ *
275
+ * @internal
276
+ */
277
+ private static createForWritable;
278
+ /**
279
+ * Create I/O context from custom input callbacks.
280
+ *
281
+ * Sets up custom I/O with user-provided read and optional seek callbacks.
282
+ *
283
+ * @param callbacks - User I/O callbacks
284
+ *
285
+ * @param bufferSize - Internal buffer size
286
+ *
287
+ * @returns Configured I/O context
288
+ *
289
+ * @internal
290
+ */
291
+ private static createFromInputCallbacks;
292
+ /**
293
+ * Create I/O context from custom output callbacks.
294
+ *
295
+ * Sets up custom I/O with user-provided write, optional seek, and optional read callbacks.
296
+ *
297
+ * @param callbacks - User I/O callbacks
298
+ *
299
+ * @param bufferSize - Internal buffer size
300
+ *
301
+ * @param maxPacketSize - Maximum packet size
302
+ *
303
+ * @returns Configured I/O context
304
+ *
305
+ * @internal
306
+ */
307
+ private static createFromOutputCallbacks;
308
+ }