node-av-light 0.0.0-stage → 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 +710 -2
  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 +167 -4
@@ -0,0 +1 @@
1
+ {"version":3,"file":"demuxer.js","sourceRoot":"","sources":["../../src/api/demuxer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,589 @@
1
+ import { Demuxer } from './demuxer.js';
2
+ import type { AVPixelFormat } from '../constants/constants.js';
3
+ import type { FFVideoDecoder } from '../constants/decoders.js';
4
+ import type { AudioDeviceMode, DeviceInfo, DeviceMode } from '../lib/device.js';
5
+ /**
6
+ * Options for opening a camera device.
7
+ */
8
+ export interface CameraOptions {
9
+ videoDevice?: string | number;
10
+ frameRate?: number;
11
+ width?: number;
12
+ height?: number;
13
+ pixelFormat?: AVPixelFormat;
14
+ avfoundation?: {
15
+ captureRawData?: boolean;
16
+ };
17
+ v4l2?: {
18
+ inputFormat?: FFVideoDecoder;
19
+ };
20
+ dshow?: {
21
+ videoDeviceNumber?: number;
22
+ videoPinName?: string;
23
+ };
24
+ formatOptions?: Record<string, string | number | boolean | undefined | null>;
25
+ }
26
+ /**
27
+ * Options for opening a microphone device.
28
+ */
29
+ export interface MicrophoneOptions {
30
+ audioDevice?: string | number;
31
+ sampleRate?: number;
32
+ channels?: number;
33
+ alsa?: {
34
+ configPath?: string;
35
+ };
36
+ dshow?: {
37
+ sampleSize?: number;
38
+ audioDeviceNumber?: number;
39
+ audioPinName?: string;
40
+ audioBufferSize?: number;
41
+ };
42
+ formatOptions?: Record<string, string | number | boolean | undefined | null>;
43
+ }
44
+ /**
45
+ * Options for screen capture.
46
+ */
47
+ export interface ScreenCaptureOptions {
48
+ screenIndex?: number;
49
+ windowId?: number;
50
+ x?: number;
51
+ y?: number;
52
+ width?: number;
53
+ height?: number;
54
+ frameRate?: number;
55
+ drawMouse?: boolean;
56
+ pixelFormat?: AVPixelFormat;
57
+ avfoundation?: {
58
+ captureMouseClicks?: boolean;
59
+ captureSystemAudio?: boolean;
60
+ excludeProcessAudio?: boolean;
61
+ audioSampleRate?: 8000 | 16000 | 24000 | 48000;
62
+ audioChannels?: 1 | 2;
63
+ };
64
+ x11grab?: {
65
+ display?: string;
66
+ followMouse?: 'centered' | number;
67
+ showRegion?: boolean;
68
+ };
69
+ gdigrab?: {
70
+ windowTitle?: string;
71
+ showRegion?: boolean;
72
+ };
73
+ formatOptions?: Record<string, string | number | boolean | undefined | null>;
74
+ }
75
+ /**
76
+ * Options for combined video + audio device capture.
77
+ */
78
+ export interface DeviceOptions {
79
+ videoDevice?: string | number;
80
+ audioDevice?: string | number;
81
+ frameRate?: number;
82
+ width?: number;
83
+ height?: number;
84
+ pixelFormat?: AVPixelFormat;
85
+ sampleRate?: number;
86
+ channels?: number;
87
+ avfoundation?: {
88
+ captureRawData?: boolean;
89
+ };
90
+ dshow?: {
91
+ videoDeviceNumber?: number;
92
+ audioDeviceNumber?: number;
93
+ videoPinName?: string;
94
+ audioPinName?: string;
95
+ audioBufferSize?: number;
96
+ };
97
+ formatOptions?: Record<string, string | number | boolean | undefined | null>;
98
+ }
99
+ export declare class DeviceAPI {
100
+ /**
101
+ * List all available capture devices.
102
+ *
103
+ * Enumerates video (cameras) and audio (microphones) capture devices
104
+ * on the system using platform-specific APIs.
105
+ *
106
+ * @returns Array of device information
107
+ *
108
+ * @example
109
+ * ```typescript
110
+ * const devices = await DeviceAPI.list();
111
+ *
112
+ * // Filter by type
113
+ * const cameras = devices.filter(d => d.type === 'video');
114
+ * const microphones = devices.filter(d => d.type === 'audio');
115
+ *
116
+ * // Find default devices
117
+ * const defaultCamera = devices.find(d => d.type === 'video' && d.isDefault);
118
+ * ```
119
+ */
120
+ static list(): Promise<DeviceInfo[]>;
121
+ /**
122
+ * List all available capture devices synchronously.
123
+ *
124
+ * @returns Array of device information
125
+ *
126
+ * @example
127
+ * ```typescript
128
+ * const devices = DeviceAPI.listSync();
129
+ * console.log('Found', devices.length, 'devices');
130
+ * ```
131
+ *
132
+ * @see {@link list} For async version
133
+ */
134
+ static listSync(): DeviceInfo[];
135
+ /**
136
+ * Query supported capture modes for a video device.
137
+ *
138
+ * Returns supported resolutions and frame rate ranges, sorted descending
139
+ * by resolution (area), then by max frame rate. Raw modes report their pixel
140
+ * format; compressed modes such as MJPEG or H.264 report their codec in
141
+ * `codecId` and have no pixel format until decoded.
142
+ *
143
+ * @param deviceName - Device name as returned by `list()` (e.g. uniqueID on macOS)
144
+ *
145
+ * @returns Array of supported device modes
146
+ *
147
+ * @example
148
+ * ```typescript
149
+ * const devices = await DeviceAPI.list();
150
+ * const camera = devices.find(d => d.type === 'video');
151
+ * if (camera) {
152
+ * const modes = await DeviceAPI.modes(camera.name);
153
+ * for (const mode of modes) {
154
+ * const format = mode.codecId === AV_CODEC_ID_RAWVIDEO ? avGetPixFmtName(mode.pixelFormat) : avGetCodecName(mode.codecId);
155
+ * console.log(`${mode.width}x${mode.height} ${format} @ ${mode.minFrameRate}-${mode.maxFrameRate} fps`);
156
+ * }
157
+ * }
158
+ * ```
159
+ *
160
+ * @see {@link modesSync} For sync version
161
+ */
162
+ static modes(deviceName: string): Promise<DeviceMode[]>;
163
+ /**
164
+ * Query supported capture modes for a video device synchronously.
165
+ *
166
+ * @param deviceName - Device name as returned by `listSync()`
167
+ *
168
+ * @returns Array of supported device modes
169
+ *
170
+ * @example
171
+ * ```typescript
172
+ * const devices = DeviceAPI.listSync();
173
+ * const camera = devices.find(d => d.type === 'video');
174
+ * if (camera) {
175
+ * const modes = DeviceAPI.modesSync(camera.name);
176
+ * for (const mode of modes) {
177
+ * console.log(`${mode.width}x${mode.height} @ ${mode.minFrameRate}-${mode.maxFrameRate} fps`);
178
+ * }
179
+ * }
180
+ * ```
181
+ *
182
+ * @see {@link modes} For async version
183
+ */
184
+ static modesSync(deviceName: string): DeviceMode[];
185
+ /**
186
+ * Query supported audio capture modes for an audio device.
187
+ *
188
+ * Returns supported sample rates, channel counts and sample formats,
189
+ * sorted descending by sample rate, then by channel count.
190
+ *
191
+ * @param deviceName - Device name as returned by `list()` (e.g. uniqueID on macOS)
192
+ *
193
+ * @returns Array of supported audio device modes
194
+ *
195
+ * @example
196
+ * ```typescript
197
+ * const devices = await DeviceAPI.list();
198
+ * const mic = devices.find(d => d.type === 'audio');
199
+ * if (mic) {
200
+ * const modes = await DeviceAPI.audioModes(mic.name);
201
+ * for (const mode of modes) {
202
+ * console.log(`${mode.sampleRate}Hz ${mode.channels}ch`);
203
+ * }
204
+ * }
205
+ * ```
206
+ *
207
+ * @see {@link audioModesSync} For sync version
208
+ */
209
+ static audioModes(deviceName: string): Promise<AudioDeviceMode[]>;
210
+ /**
211
+ * Query supported audio capture modes for an audio device synchronously.
212
+ *
213
+ * @param deviceName - Device name as returned by `listSync()`
214
+ *
215
+ * @returns Array of supported audio device modes
216
+ *
217
+ * @example
218
+ * ```typescript
219
+ * const devices = DeviceAPI.listSync();
220
+ * const mic = devices.find(d => d.type === 'audio');
221
+ * if (mic) {
222
+ * const modes = DeviceAPI.audioModesSync(mic.name);
223
+ * for (const mode of modes) {
224
+ * console.log(`${mode.sampleRate}Hz ${mode.channels}ch`);
225
+ * }
226
+ * }
227
+ * ```
228
+ *
229
+ * @see {@link audioModes} For async version
230
+ */
231
+ static audioModesSync(deviceName: string): AudioDeviceMode[];
232
+ /**
233
+ * Open a camera device for capture.
234
+ *
235
+ * Creates a Demuxer for the specified video capture device.
236
+ * Uses platform-specific format and device naming conventions.
237
+ *
238
+ * @param options - Camera capture options
239
+ *
240
+ * @returns Demuxer for the camera stream
241
+ *
242
+ * @throws {Error} If device cannot be opened
243
+ *
244
+ * @example
245
+ * ```typescript
246
+ * // Open first camera with default settings
247
+ * await using input = await DeviceAPI.openCamera({ videoDevice: 0 });
248
+ *
249
+ * // Open with specific resolution and frame rate
250
+ * await using input = await DeviceAPI.openCamera({
251
+ * videoDevice: 0,
252
+ * width: 1280,
253
+ * height: 720,
254
+ * frameRate: 30,
255
+ * });
256
+ *
257
+ * // Open by device name
258
+ * await using input = await DeviceAPI.openCamera({
259
+ * videoDevice: 'FaceTime HD Camera',
260
+ * });
261
+ * ```
262
+ */
263
+ static openCamera(options?: CameraOptions): Promise<Demuxer>;
264
+ /**
265
+ * Open a camera device for capture synchronously.
266
+ *
267
+ * @param options - Camera capture options
268
+ *
269
+ * @returns Demuxer for the camera stream
270
+ *
271
+ * @example
272
+ * ```typescript
273
+ * using input = DeviceAPI.openCameraSync({ videoDevice: 0 });
274
+ * ```
275
+ *
276
+ * @see {@link openCamera} For async version
277
+ */
278
+ static openCameraSync(options?: CameraOptions): Demuxer;
279
+ /**
280
+ * Open a microphone device for capture.
281
+ *
282
+ * Creates a Demuxer for the specified audio capture device.
283
+ * Uses platform-specific format and device naming conventions.
284
+ *
285
+ * @param options - Microphone capture options
286
+ *
287
+ * @returns Demuxer for the audio stream
288
+ *
289
+ * @throws {Error} If device cannot be opened
290
+ *
291
+ * @example
292
+ * ```typescript
293
+ * // Open first microphone
294
+ * await using input = await DeviceAPI.openMicrophone({ audioDevice: 0 });
295
+ *
296
+ * // Open with specific sample rate
297
+ * await using input = await DeviceAPI.openMicrophone({
298
+ * audioDevice: 'default',
299
+ * sampleRate: 48000,
300
+ * channels: 2,
301
+ * });
302
+ * ```
303
+ */
304
+ static openMicrophone(options?: MicrophoneOptions): Promise<Demuxer>;
305
+ /**
306
+ * Open a microphone device for capture synchronously.
307
+ *
308
+ * @param options - Microphone capture options
309
+ *
310
+ * @returns Demuxer for the audio stream
311
+ *
312
+ * @example
313
+ * ```typescript
314
+ * using input = DeviceAPI.openMicrophoneSync({ audioDevice: 0 });
315
+ * ```
316
+ *
317
+ * @see {@link openMicrophone} For async version
318
+ */
319
+ static openMicrophoneSync(options?: MicrophoneOptions): Demuxer;
320
+ /**
321
+ * Open screen capture.
322
+ *
323
+ * Creates a Demuxer for screen/display capture.
324
+ * Uses platform-specific format and capture conventions.
325
+ *
326
+ * @param options - Screen capture options
327
+ *
328
+ * @returns Demuxer for the screen capture stream
329
+ *
330
+ * @throws {Error} If screen capture cannot be opened
331
+ *
332
+ * @example
333
+ * ```typescript
334
+ * // Capture entire screen
335
+ * await using input = await DeviceAPI.openScreen({
336
+ * frameRate: 30,
337
+ * });
338
+ *
339
+ * // Capture specific region
340
+ * await using input = await DeviceAPI.openScreen({
341
+ * x: 100,
342
+ * y: 100,
343
+ * width: 800,
344
+ * height: 600,
345
+ * frameRate: 30,
346
+ * });
347
+ *
348
+ * // Capture specific screen (works cross-platform)
349
+ * await using input = await DeviceAPI.openScreen({
350
+ * screenIndex: 1,
351
+ * frameRate: 30,
352
+ * });
353
+ * ```
354
+ */
355
+ static openScreen(options?: ScreenCaptureOptions): Promise<Demuxer>;
356
+ /**
357
+ * Open screen capture synchronously.
358
+ *
359
+ * @param options - Screen capture options
360
+ *
361
+ * @returns Demuxer for the screen capture stream
362
+ *
363
+ * @example
364
+ * ```typescript
365
+ * using input = DeviceAPI.openScreenSync({ frameRate: 30 });
366
+ * ```
367
+ *
368
+ * @see {@link openScreen} For async version
369
+ */
370
+ static openScreenSync(options?: ScreenCaptureOptions): Demuxer;
371
+ /**
372
+ * Open a combined video + audio device for capture.
373
+ *
374
+ * Creates a single Demuxer that captures both video and audio simultaneously.
375
+ * Supported on macOS (AVFoundation) and Windows (DirectShow).
376
+ * Not supported on Linux — use separate `openCamera()` and `openMicrophone()` calls instead.
377
+ *
378
+ * @param options - Combined device capture options
379
+ *
380
+ * @returns Demuxer for the combined video + audio stream
381
+ *
382
+ * @throws {Error} If devices cannot be opened or platform does not support combined capture
383
+ *
384
+ * @example
385
+ * ```typescript
386
+ * await using input = await DeviceAPI.openDevice({
387
+ * videoDevice: 0,
388
+ * audioDevice: 0,
389
+ * width: 1280,
390
+ * height: 720,
391
+ * frameRate: 30,
392
+ * sampleRate: 48000,
393
+ * channels: 2,
394
+ * });
395
+ * ```
396
+ */
397
+ static openDevice(options: DeviceOptions): Promise<Demuxer>;
398
+ /**
399
+ * Open a combined video + audio device for capture synchronously.
400
+ *
401
+ * @param options - Combined device capture options
402
+ *
403
+ * @returns Demuxer for the combined video + audio stream
404
+ *
405
+ * @example
406
+ * ```typescript
407
+ * using input = DeviceAPI.openDeviceSync({
408
+ * videoDevice: 0,
409
+ * audioDevice: 0,
410
+ * });
411
+ * ```
412
+ *
413
+ * @see {@link openDevice} For async version
414
+ */
415
+ static openDeviceSync(options: DeviceOptions): Demuxer;
416
+ /**
417
+ * Get the platform-specific input format for video devices.
418
+ *
419
+ * @returns Format name (avfoundation/v4l2/dshow)
420
+ *
421
+ * @example
422
+ * ```typescript
423
+ * const format = DeviceAPI.getVideoFormat();
424
+ * // Returns 'avfoundation' on macOS, 'v4l2' on Linux, 'dshow' on Windows
425
+ * ```
426
+ */
427
+ static getVideoFormat(): string;
428
+ /**
429
+ * Get the platform-specific input format for audio devices.
430
+ *
431
+ * @returns Format name (avfoundation/alsa/dshow)
432
+ *
433
+ * @example
434
+ * ```typescript
435
+ * const format = DeviceAPI.getAudioFormat();
436
+ * // Returns 'avfoundation' on macOS, 'alsa' on Linux, 'dshow' on Windows
437
+ * ```
438
+ */
439
+ static getAudioFormat(): string;
440
+ /**
441
+ * Get the platform-specific input format for screen capture.
442
+ *
443
+ * @returns Format name (avfoundation/x11grab/gdigrab)
444
+ *
445
+ * @example
446
+ * ```typescript
447
+ * const format = DeviceAPI.getScreenFormat();
448
+ * // Returns 'avfoundation' on macOS, 'x11grab' on Linux, 'gdigrab' on Windows
449
+ * ```
450
+ */
451
+ static getScreenFormat(): string;
452
+ /**
453
+ * Check if the application has screen capture permission.
454
+ *
455
+ * On macOS 11+, uses `CGPreflightScreenCaptureAccess()` to check
456
+ * whether the app has been granted screen recording permission.
457
+ * Always returns `true` on Linux, Windows, and macOS < 11.
458
+ *
459
+ * @returns `true` if screen capture is permitted
460
+ *
461
+ * @example
462
+ * ```typescript
463
+ * if (!DeviceAPI.hasScreenCapturePermission()) {
464
+ * console.log('Screen capture permission not granted');
465
+ * DeviceAPI.requestScreenCaptureAccess(); // triggers system dialog
466
+ * }
467
+ * ```
468
+ *
469
+ * @see {@link requestScreenCaptureAccess} To trigger the permission dialog
470
+ */
471
+ static hasScreenCapturePermission(): boolean;
472
+ /**
473
+ * Request screen capture permission from the user.
474
+ *
475
+ * On macOS 11+, uses `CGRequestScreenCaptureAccess()` to trigger
476
+ * the system permission dialog if not already granted.
477
+ * Always returns `true` on Linux, Windows, and macOS < 11.
478
+ *
479
+ * Note: This function returns immediately. If permission was not previously
480
+ * granted, the system dialog is shown asynchronously. The return value
481
+ * indicates whether permission was already granted at the time of the call,
482
+ * not the result of the dialog.
483
+ *
484
+ * @returns `true` if permission was already granted
485
+ *
486
+ * @example
487
+ * ```typescript
488
+ * const alreadyGranted = DeviceAPI.requestScreenCaptureAccess();
489
+ * if (!alreadyGranted) {
490
+ * console.log('Permission dialog shown — restart the app after granting access');
491
+ * }
492
+ * ```
493
+ *
494
+ * @see {@link hasScreenCapturePermission} To check current permission status
495
+ */
496
+ static requestScreenCaptureAccess(): boolean;
497
+ /**
498
+ * Build platform-specific video device name.
499
+ *
500
+ * @param options - Camera options containing videoDevice
501
+ *
502
+ * @returns Platform-specific device name string
503
+ *
504
+ * @internal
505
+ */
506
+ private static buildVideoDeviceName;
507
+ /**
508
+ * Build platform-specific audio device name.
509
+ *
510
+ * @param options - Microphone options containing audioDevice
511
+ *
512
+ * @returns Platform-specific device name string
513
+ *
514
+ * @internal
515
+ */
516
+ private static buildAudioDeviceName;
517
+ /**
518
+ * Build platform-specific combined video + audio device name.
519
+ *
520
+ * @param options - Device options containing videoDevice and audioDevice
521
+ *
522
+ * @returns Platform-specific combined device name string
523
+ *
524
+ * @internal
525
+ */
526
+ private static buildCombinedDeviceName;
527
+ /**
528
+ * Build video format options.
529
+ *
530
+ * @param options - Camera options containing video parameters
531
+ *
532
+ * @returns FFmpeg format options dictionary
533
+ *
534
+ * @internal
535
+ */
536
+ private static buildVideoFormatOptions;
537
+ /**
538
+ * Build audio format options.
539
+ *
540
+ * @param options - Microphone options containing audio parameters
541
+ *
542
+ * @returns FFmpeg format options dictionary
543
+ *
544
+ * @internal
545
+ */
546
+ private static buildAudioFormatOptions;
547
+ /**
548
+ * Build combined video + audio format options.
549
+ *
550
+ * @param options - Device options containing both video and audio parameters
551
+ *
552
+ * @returns FFmpeg format options dictionary
553
+ *
554
+ * @internal
555
+ */
556
+ private static buildDeviceFormatOptions;
557
+ /**
558
+ * Build screen capture parameters.
559
+ *
560
+ * @param options - Screen capture options
561
+ *
562
+ * @returns Device name and format options for screen capture
563
+ *
564
+ * @internal
565
+ */
566
+ private static buildScreenCaptureParams;
567
+ /**
568
+ * Resolve screen bounds for a given screen index.
569
+ *
570
+ * @param screenIndex - 0-based screen index
571
+ *
572
+ * @returns Screen bounds or undefined if not found
573
+ *
574
+ * @internal
575
+ */
576
+ private static resolveScreenBounds;
577
+ /**
578
+ * Ensure ALSA configuration is available on Linux.
579
+ *
580
+ * Auto-detects the ALSA configuration file from standard paths and sets
581
+ * `ALSA_CONFIG_PATH` if not already defined. This ensures ALSA can find
582
+ * its configuration even if it is installed at a non-standard location.
583
+ *
584
+ * @param configPath - Optional explicit path to alsa.conf
585
+ *
586
+ * @internal
587
+ */
588
+ private static ensureAlsaConfig;
589
+ }