webcodecs-node 0.7.5 → 0.8.5

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 (479) hide show
  1. package/README.md +12 -4
  2. package/dist/backends/node-av/HardwarePipeline.d.ts +36 -0
  3. package/dist/backends/node-av/HardwarePipeline.d.ts.map +1 -0
  4. package/dist/backends/node-av/HardwarePipeline.js +203 -0
  5. package/dist/backends/node-av/HardwarePipeline.js.map +1 -0
  6. package/dist/backends/node-av/audio/NodeAvAudioDecoder.d.ts +46 -0
  7. package/dist/backends/node-av/audio/NodeAvAudioDecoder.d.ts.map +1 -0
  8. package/dist/backends/node-av/audio/NodeAvAudioDecoder.js +277 -0
  9. package/dist/backends/node-av/audio/NodeAvAudioDecoder.js.map +1 -0
  10. package/dist/backends/node-av/audio/NodeAvAudioEncoder.d.ts +47 -0
  11. package/dist/backends/node-av/audio/NodeAvAudioEncoder.d.ts.map +1 -0
  12. package/dist/backends/node-av/audio/NodeAvAudioEncoder.js +363 -0
  13. package/dist/backends/node-av/audio/NodeAvAudioEncoder.js.map +1 -0
  14. package/dist/backends/node-av/audio/decoder/channel-layout.d.ts +12 -0
  15. package/dist/backends/node-av/audio/decoder/channel-layout.d.ts.map +1 -0
  16. package/dist/backends/node-av/audio/decoder/channel-layout.js +24 -0
  17. package/dist/backends/node-av/audio/decoder/channel-layout.js.map +1 -0
  18. package/dist/backends/node-av/audio/decoder/codec-mapping.d.ts +9 -0
  19. package/dist/backends/node-av/audio/decoder/codec-mapping.d.ts.map +1 -0
  20. package/dist/backends/node-av/audio/decoder/codec-mapping.js +40 -0
  21. package/dist/backends/node-av/audio/decoder/codec-mapping.js.map +1 -0
  22. package/dist/backends/node-av/audio/decoder/constants.d.ts +6 -0
  23. package/dist/backends/node-av/audio/decoder/constants.d.ts.map +1 -0
  24. package/dist/backends/node-av/audio/decoder/constants.js +6 -0
  25. package/dist/backends/node-av/audio/decoder/constants.js.map +1 -0
  26. package/dist/backends/node-av/audio/decoder/index.d.ts +8 -0
  27. package/dist/backends/node-av/audio/decoder/index.d.ts.map +1 -0
  28. package/dist/backends/node-av/audio/decoder/index.js +8 -0
  29. package/dist/backends/node-av/audio/decoder/index.js.map +1 -0
  30. package/dist/backends/node-av/audio/decoder/sample-format.d.ts +14 -0
  31. package/dist/backends/node-av/audio/decoder/sample-format.d.ts.map +1 -0
  32. package/dist/backends/node-av/audio/decoder/sample-format.js +54 -0
  33. package/dist/backends/node-av/audio/decoder/sample-format.js.map +1 -0
  34. package/dist/backends/node-av/audio/encoder/channel-layout.d.ts +12 -0
  35. package/dist/backends/node-av/audio/encoder/channel-layout.d.ts.map +1 -0
  36. package/dist/backends/node-av/audio/encoder/channel-layout.js +24 -0
  37. package/dist/backends/node-av/audio/encoder/channel-layout.js.map +1 -0
  38. package/dist/backends/node-av/audio/encoder/codec-description.d.ts +33 -0
  39. package/dist/backends/node-av/audio/encoder/codec-description.d.ts.map +1 -0
  40. package/dist/backends/node-av/audio/encoder/codec-description.js +137 -0
  41. package/dist/backends/node-av/audio/encoder/codec-description.js.map +1 -0
  42. package/dist/backends/node-av/audio/encoder/codec-mapping.d.ts +12 -0
  43. package/dist/backends/node-av/audio/encoder/codec-mapping.d.ts.map +1 -0
  44. package/dist/backends/node-av/audio/encoder/codec-mapping.js +61 -0
  45. package/dist/backends/node-av/audio/encoder/codec-mapping.js.map +1 -0
  46. package/dist/backends/node-av/audio/encoder/constants.d.ts +6 -0
  47. package/dist/backends/node-av/audio/encoder/constants.d.ts.map +1 -0
  48. package/dist/backends/node-av/audio/encoder/constants.js +6 -0
  49. package/dist/backends/node-av/audio/encoder/constants.js.map +1 -0
  50. package/dist/backends/node-av/audio/encoder/drain.d.ts +32 -0
  51. package/dist/backends/node-av/audio/encoder/drain.d.ts.map +1 -0
  52. package/dist/backends/node-av/audio/encoder/drain.js +51 -0
  53. package/dist/backends/node-av/audio/encoder/drain.js.map +1 -0
  54. package/dist/backends/node-av/audio/encoder/index.d.ts +20 -0
  55. package/dist/backends/node-av/audio/encoder/index.d.ts.map +1 -0
  56. package/dist/backends/node-av/audio/encoder/index.js +20 -0
  57. package/dist/backends/node-av/audio/encoder/index.js.map +1 -0
  58. package/dist/backends/node-av/audio/encoder/options.d.ts +40 -0
  59. package/dist/backends/node-av/audio/encoder/options.d.ts.map +1 -0
  60. package/dist/backends/node-av/audio/encoder/options.js +127 -0
  61. package/dist/backends/node-av/audio/encoder/options.js.map +1 -0
  62. package/dist/backends/node-av/audio/encoder/sample-format-convert.d.ts +40 -0
  63. package/dist/backends/node-av/audio/encoder/sample-format-convert.d.ts.map +1 -0
  64. package/dist/backends/node-av/audio/encoder/sample-format-convert.js +152 -0
  65. package/dist/backends/node-av/audio/encoder/sample-format-convert.js.map +1 -0
  66. package/dist/backends/node-av/hardware-pipeline/capabilities.d.ts +10 -0
  67. package/dist/backends/node-av/hardware-pipeline/capabilities.d.ts.map +1 -0
  68. package/dist/backends/node-av/hardware-pipeline/capabilities.js +45 -0
  69. package/dist/backends/node-av/hardware-pipeline/capabilities.js.map +1 -0
  70. package/dist/backends/node-av/hardware-pipeline/index.d.ts +6 -0
  71. package/dist/backends/node-av/hardware-pipeline/index.d.ts.map +1 -0
  72. package/dist/backends/node-av/hardware-pipeline/index.js +5 -0
  73. package/dist/backends/node-av/hardware-pipeline/index.js.map +1 -0
  74. package/dist/backends/node-av/hardware-pipeline/types.d.ts +13 -0
  75. package/dist/backends/node-av/hardware-pipeline/types.d.ts.map +1 -0
  76. package/dist/backends/node-av/hardware-pipeline/types.js +5 -0
  77. package/dist/backends/node-av/hardware-pipeline/types.js.map +1 -0
  78. package/dist/backends/node-av/image/NodeAvImageDecoder.d.ts +95 -0
  79. package/dist/backends/node-av/image/NodeAvImageDecoder.d.ts.map +1 -0
  80. package/dist/backends/node-av/image/NodeAvImageDecoder.js +383 -0
  81. package/dist/backends/node-av/image/NodeAvImageDecoder.js.map +1 -0
  82. package/dist/backends/node-av/image/WebPImageDecoder.d.ts +57 -0
  83. package/dist/backends/node-av/image/WebPImageDecoder.d.ts.map +1 -0
  84. package/dist/backends/node-av/image/WebPImageDecoder.js +178 -0
  85. package/dist/backends/node-av/image/WebPImageDecoder.js.map +1 -0
  86. package/dist/backends/node-av/image/decoder/constants.d.ts +14 -0
  87. package/dist/backends/node-av/image/decoder/constants.d.ts.map +1 -0
  88. package/dist/backends/node-av/image/decoder/constants.js +24 -0
  89. package/dist/backends/node-av/image/decoder/constants.js.map +1 -0
  90. package/dist/backends/node-av/image/decoder/index.d.ts +7 -0
  91. package/dist/backends/node-av/image/decoder/index.d.ts.map +1 -0
  92. package/dist/backends/node-av/image/decoder/index.js +6 -0
  93. package/dist/backends/node-av/image/decoder/index.js.map +1 -0
  94. package/dist/backends/node-av/image/decoder/probe.d.ts +12 -0
  95. package/dist/backends/node-av/image/decoder/probe.d.ts.map +1 -0
  96. package/dist/backends/node-av/image/decoder/probe.js +57 -0
  97. package/dist/backends/node-av/image/decoder/probe.js.map +1 -0
  98. package/dist/backends/node-av/image/decoder/types.d.ts +25 -0
  99. package/dist/backends/node-av/image/decoder/types.d.ts.map +1 -0
  100. package/dist/backends/node-av/image/decoder/types.js +5 -0
  101. package/dist/backends/node-av/image/decoder/types.js.map +1 -0
  102. package/dist/backends/node-av/video/NodeAvVideoDecoder.d.ts +44 -0
  103. package/dist/backends/node-av/video/NodeAvVideoDecoder.d.ts.map +1 -0
  104. package/dist/backends/node-av/video/NodeAvVideoDecoder.js +326 -0
  105. package/dist/backends/node-av/video/NodeAvVideoDecoder.js.map +1 -0
  106. package/dist/backends/node-av/video/NodeAvVideoEncoder.d.ts +49 -0
  107. package/dist/backends/node-av/video/NodeAvVideoEncoder.d.ts.map +1 -0
  108. package/dist/backends/node-av/video/NodeAvVideoEncoder.js +317 -0
  109. package/dist/backends/node-av/video/NodeAvVideoEncoder.js.map +1 -0
  110. package/dist/backends/node-av/video/decoder/codec-mapping.d.ts +9 -0
  111. package/dist/backends/node-av/video/decoder/codec-mapping.d.ts.map +1 -0
  112. package/dist/backends/node-av/video/decoder/codec-mapping.js +25 -0
  113. package/dist/backends/node-av/video/decoder/codec-mapping.js.map +1 -0
  114. package/dist/backends/node-av/video/decoder/constants.d.ts +13 -0
  115. package/dist/backends/node-av/video/decoder/constants.d.ts.map +1 -0
  116. package/dist/backends/node-av/video/decoder/constants.js +13 -0
  117. package/dist/backends/node-av/video/decoder/constants.js.map +1 -0
  118. package/dist/backends/node-av/video/decoder/index.d.ts +7 -0
  119. package/dist/backends/node-av/video/decoder/index.d.ts.map +1 -0
  120. package/dist/backends/node-av/video/decoder/index.js +7 -0
  121. package/dist/backends/node-av/video/decoder/index.js.map +1 -0
  122. package/dist/backends/node-av/video/decoder/pixel-format.d.ts +13 -0
  123. package/dist/backends/node-av/video/decoder/pixel-format.d.ts.map +1 -0
  124. package/dist/backends/node-av/video/decoder/pixel-format.js +88 -0
  125. package/dist/backends/node-av/video/decoder/pixel-format.js.map +1 -0
  126. package/dist/backends/node-av/video/encoder/codec-description.d.ts +26 -0
  127. package/dist/backends/node-av/video/encoder/codec-description.d.ts.map +1 -0
  128. package/dist/backends/node-av/video/encoder/codec-description.js +86 -0
  129. package/dist/backends/node-av/video/encoder/codec-description.js.map +1 -0
  130. package/dist/backends/node-av/video/encoder/drain.d.ts +34 -0
  131. package/dist/backends/node-av/video/encoder/drain.d.ts.map +1 -0
  132. package/dist/backends/node-av/video/encoder/drain.js +51 -0
  133. package/dist/backends/node-av/video/encoder/drain.js.map +1 -0
  134. package/dist/backends/node-av/video/encoder/filters.d.ts +37 -0
  135. package/dist/backends/node-av/video/encoder/filters.d.ts.map +1 -0
  136. package/dist/backends/node-av/video/encoder/filters.js +71 -0
  137. package/dist/backends/node-av/video/encoder/filters.js.map +1 -0
  138. package/dist/backends/node-av/video/encoder/gpu-filters.d.ts +9 -0
  139. package/dist/backends/node-av/video/encoder/gpu-filters.d.ts.map +1 -0
  140. package/dist/backends/node-av/video/encoder/gpu-filters.js +26 -0
  141. package/dist/backends/node-av/video/encoder/gpu-filters.js.map +1 -0
  142. package/dist/backends/node-av/video/encoder/hardware-constraints.d.ts +12 -0
  143. package/dist/backends/node-av/video/encoder/hardware-constraints.d.ts.map +1 -0
  144. package/dist/backends/node-av/video/encoder/hardware-constraints.js +31 -0
  145. package/dist/backends/node-av/video/encoder/hardware-constraints.js.map +1 -0
  146. package/dist/backends/node-av/video/encoder/index.d.ts +28 -0
  147. package/dist/backends/node-av/video/encoder/index.d.ts.map +1 -0
  148. package/dist/backends/node-av/video/encoder/index.js +28 -0
  149. package/dist/backends/node-av/video/encoder/index.js.map +1 -0
  150. package/dist/backends/node-av/video/encoder/options.d.ts +39 -0
  151. package/dist/backends/node-av/video/encoder/options.d.ts.map +1 -0
  152. package/dist/backends/node-av/video/encoder/options.js +195 -0
  153. package/dist/backends/node-av/video/encoder/options.js.map +1 -0
  154. package/dist/backends/node-av/video/encoder/pixel-format-config.d.ts +42 -0
  155. package/dist/backends/node-av/video/encoder/pixel-format-config.d.ts.map +1 -0
  156. package/dist/backends/node-av/video/encoder/pixel-format-config.js +122 -0
  157. package/dist/backends/node-av/video/encoder/pixel-format-config.js.map +1 -0
  158. package/dist/backends/node-av/video/encoder/pixel-format.d.ts +13 -0
  159. package/dist/backends/node-av/video/encoder/pixel-format.d.ts.map +1 -0
  160. package/dist/backends/node-av/video/encoder/pixel-format.js +68 -0
  161. package/dist/backends/node-av/video/encoder/pixel-format.js.map +1 -0
  162. package/dist/backends/node-av/video/encoder/setup.d.ts +33 -0
  163. package/dist/backends/node-av/video/encoder/setup.d.ts.map +1 -0
  164. package/dist/backends/node-av/video/encoder/setup.js +62 -0
  165. package/dist/backends/node-av/video/encoder/setup.js.map +1 -0
  166. package/dist/backends/node-av/video/encoder/software-encoders.d.ts +8 -0
  167. package/dist/backends/node-av/video/encoder/software-encoders.d.ts.map +1 -0
  168. package/dist/backends/node-av/video/encoder/software-encoders.js +17 -0
  169. package/dist/backends/node-av/video/encoder/software-encoders.js.map +1 -0
  170. package/dist/backends/node-av/video/encoder/timestamp.d.ts +34 -0
  171. package/dist/backends/node-av/video/encoder/timestamp.d.ts.map +1 -0
  172. package/dist/backends/node-av/video/encoder/timestamp.js +39 -0
  173. package/dist/backends/node-av/video/encoder/timestamp.js.map +1 -0
  174. package/dist/backends/types.d.ts +44 -0
  175. package/dist/backends/types.d.ts.map +1 -1
  176. package/dist/backends/types.js.map +1 -1
  177. package/dist/codec-utils/formats.d.ts.map +1 -1
  178. package/dist/codec-utils/formats.js +78 -0
  179. package/dist/codec-utils/formats.js.map +1 -1
  180. package/dist/codec-utils/types.d.ts +1 -1
  181. package/dist/codecs/aac.d.ts +10 -0
  182. package/dist/codecs/aac.d.ts.map +1 -0
  183. package/dist/codecs/aac.js +10 -0
  184. package/dist/codecs/aac.js.map +1 -0
  185. package/dist/codecs/avc.d.ts +11 -0
  186. package/dist/codecs/avc.d.ts.map +1 -0
  187. package/dist/codecs/avc.js +11 -0
  188. package/dist/codecs/avc.js.map +1 -0
  189. package/dist/codecs/hevc.d.ts +11 -0
  190. package/dist/codecs/hevc.d.ts.map +1 -0
  191. package/dist/codecs/hevc.js +11 -0
  192. package/dist/codecs/hevc.js.map +1 -0
  193. package/dist/codecs/index.d.ts +10 -0
  194. package/dist/codecs/index.d.ts.map +1 -0
  195. package/dist/codecs/index.js +14 -0
  196. package/dist/codecs/index.js.map +1 -0
  197. package/dist/codecs/validation/audio.d.ts +19 -0
  198. package/dist/codecs/validation/audio.d.ts.map +1 -0
  199. package/dist/codecs/validation/audio.js +111 -0
  200. package/dist/codecs/validation/audio.js.map +1 -0
  201. package/dist/codecs/validation/config.d.ts +27 -0
  202. package/dist/codecs/validation/config.d.ts.map +1 -0
  203. package/dist/codecs/validation/config.js +154 -0
  204. package/dist/codecs/validation/config.js.map +1 -0
  205. package/dist/codecs/validation/index.d.ts +9 -0
  206. package/dist/codecs/validation/index.d.ts.map +1 -0
  207. package/dist/codecs/validation/index.js +12 -0
  208. package/dist/codecs/validation/index.js.map +1 -0
  209. package/dist/codecs/validation/video.d.ts +24 -0
  210. package/dist/codecs/validation/video.d.ts.map +1 -0
  211. package/dist/codecs/validation/video.js +196 -0
  212. package/dist/codecs/validation/video.js.map +1 -0
  213. package/dist/containers/NodeAvMuxer.d.ts +7 -0
  214. package/dist/containers/NodeAvMuxer.d.ts.map +1 -1
  215. package/dist/containers/NodeAvMuxer.js +127 -7
  216. package/dist/containers/NodeAvMuxer.js.map +1 -1
  217. package/dist/core/AudioData.d.ts.map +1 -1
  218. package/dist/core/AudioData.js +54 -12
  219. package/dist/core/AudioData.js.map +1 -1
  220. package/dist/core/EncodedAudioChunk.d.ts.map +1 -1
  221. package/dist/core/EncodedAudioChunk.js +74 -6
  222. package/dist/core/EncodedAudioChunk.js.map +1 -1
  223. package/dist/core/EncodedVideoChunk.d.ts +2 -0
  224. package/dist/core/EncodedVideoChunk.d.ts.map +1 -1
  225. package/dist/core/EncodedVideoChunk.js +70 -2
  226. package/dist/core/EncodedVideoChunk.js.map +1 -1
  227. package/dist/core/VideoFrame.d.ts +16 -10
  228. package/dist/core/VideoFrame.d.ts.map +1 -1
  229. package/dist/core/VideoFrame.js +238 -129
  230. package/dist/core/VideoFrame.js.map +1 -1
  231. package/dist/core/video-frame/layout.d.ts +10 -0
  232. package/dist/core/video-frame/layout.d.ts.map +1 -0
  233. package/dist/core/video-frame/layout.js +97 -0
  234. package/dist/core/video-frame/layout.js.map +1 -0
  235. package/dist/core/video-frame/orientation.d.ts +23 -0
  236. package/dist/core/video-frame/orientation.d.ts.map +1 -0
  237. package/dist/core/video-frame/orientation.js +49 -0
  238. package/dist/core/video-frame/orientation.js.map +1 -0
  239. package/dist/core/video-frame/transfer.d.ts +19 -0
  240. package/dist/core/video-frame/transfer.d.ts.map +1 -0
  241. package/dist/core/video-frame/transfer.js +78 -0
  242. package/dist/core/video-frame/transfer.js.map +1 -0
  243. package/dist/core/video-frame/validation.d.ts +28 -0
  244. package/dist/core/video-frame/validation.d.ts.map +1 -0
  245. package/dist/core/video-frame/validation.js +76 -0
  246. package/dist/core/video-frame/validation.js.map +1 -0
  247. package/dist/decoders/AudioDecoder.d.ts +2 -19
  248. package/dist/decoders/AudioDecoder.d.ts.map +1 -1
  249. package/dist/decoders/AudioDecoder.js +27 -11
  250. package/dist/decoders/AudioDecoder.js.map +1 -1
  251. package/dist/decoders/ImageDecoder.d.ts +34 -41
  252. package/dist/decoders/ImageDecoder.d.ts.map +1 -1
  253. package/dist/decoders/ImageDecoder.js +158 -266
  254. package/dist/decoders/ImageDecoder.js.map +1 -1
  255. package/dist/decoders/VideoDecoder.d.ts +2 -38
  256. package/dist/decoders/VideoDecoder.d.ts.map +1 -1
  257. package/dist/decoders/VideoDecoder.js +120 -120
  258. package/dist/decoders/VideoDecoder.js.map +1 -1
  259. package/dist/decoders/audio/config.d.ts +23 -0
  260. package/dist/decoders/audio/config.d.ts.map +1 -0
  261. package/dist/decoders/audio/config.js +112 -0
  262. package/dist/decoders/audio/config.js.map +1 -0
  263. package/dist/decoders/audio/constants.d.ts +6 -0
  264. package/dist/decoders/audio/constants.d.ts.map +1 -0
  265. package/dist/decoders/audio/constants.js +6 -0
  266. package/dist/decoders/audio/constants.js.map +1 -0
  267. package/dist/decoders/audio/types.d.ts +21 -0
  268. package/dist/decoders/audio/types.d.ts.map +1 -0
  269. package/dist/decoders/audio/types.js +5 -0
  270. package/dist/decoders/audio/types.js.map +1 -0
  271. package/dist/decoders/image/orientation.d.ts +16 -0
  272. package/dist/decoders/image/orientation.d.ts.map +1 -0
  273. package/dist/decoders/image/orientation.js +170 -0
  274. package/dist/decoders/image/orientation.js.map +1 -0
  275. package/dist/decoders/image/stream.d.ts +12 -0
  276. package/dist/decoders/image/stream.d.ts.map +1 -0
  277. package/dist/decoders/image/stream.js +41 -0
  278. package/dist/decoders/image/stream.js.map +1 -0
  279. package/dist/decoders/image/tracks.d.ts +76 -0
  280. package/dist/decoders/image/tracks.d.ts.map +1 -0
  281. package/dist/decoders/image/tracks.js +136 -0
  282. package/dist/decoders/image/tracks.js.map +1 -0
  283. package/dist/decoders/image/types.d.ts +36 -0
  284. package/dist/decoders/image/types.d.ts.map +1 -0
  285. package/dist/decoders/image/types.js +5 -0
  286. package/dist/decoders/image/types.js.map +1 -0
  287. package/dist/decoders/video/codec-specific.d.ts +19 -0
  288. package/dist/decoders/video/codec-specific.d.ts.map +1 -0
  289. package/dist/decoders/video/codec-specific.js +62 -0
  290. package/dist/decoders/video/codec-specific.js.map +1 -0
  291. package/dist/decoders/video/config.d.ts +17 -0
  292. package/dist/decoders/video/config.d.ts.map +1 -0
  293. package/dist/decoders/video/config.js +91 -0
  294. package/dist/decoders/video/config.js.map +1 -0
  295. package/dist/decoders/video/constants.d.ts +8 -0
  296. package/dist/decoders/video/constants.d.ts.map +1 -0
  297. package/dist/decoders/video/constants.js +13 -0
  298. package/dist/decoders/video/constants.js.map +1 -0
  299. package/dist/decoders/video/queue.d.ts +9 -0
  300. package/dist/decoders/video/queue.d.ts.map +1 -0
  301. package/dist/decoders/video/queue.js +17 -0
  302. package/dist/decoders/video/queue.js.map +1 -0
  303. package/dist/decoders/video/types.d.ts +41 -0
  304. package/dist/decoders/video/types.d.ts.map +1 -0
  305. package/dist/decoders/video/types.js +5 -0
  306. package/dist/decoders/video/types.js.map +1 -0
  307. package/dist/demos/demo-audio-visualizer.js +74 -48
  308. package/dist/demos/demo-audio-visualizer.js.map +1 -1
  309. package/dist/demos/demo-dvd-logo.js +26 -23
  310. package/dist/demos/demo-dvd-logo.js.map +1 -1
  311. package/dist/demos/demo-flow-field.d.ts +11 -0
  312. package/dist/demos/demo-flow-field.d.ts.map +1 -0
  313. package/dist/demos/demo-flow-field.js +305 -0
  314. package/dist/demos/demo-flow-field.js.map +1 -0
  315. package/dist/demos/demo-four-corners.js +56 -120
  316. package/dist/demos/demo-four-corners.js.map +1 -1
  317. package/dist/demos/demo-image.js +24 -19
  318. package/dist/demos/demo-image.js.map +1 -1
  319. package/dist/demos/demo-matrix-rain.d.ts +11 -0
  320. package/dist/demos/demo-matrix-rain.d.ts.map +1 -0
  321. package/dist/demos/demo-matrix-rain.js +246 -0
  322. package/dist/demos/demo-matrix-rain.js.map +1 -0
  323. package/dist/demos/demo-pipeline.js +56 -51
  324. package/dist/demos/demo-pipeline.js.map +1 -1
  325. package/dist/demos/demo-samples.js +56 -402
  326. package/dist/demos/demo-samples.js.map +1 -1
  327. package/dist/encoders/AudioEncoder.d.ts +2 -28
  328. package/dist/encoders/AudioEncoder.d.ts.map +1 -1
  329. package/dist/encoders/AudioEncoder.js +80 -20
  330. package/dist/encoders/AudioEncoder.js.map +1 -1
  331. package/dist/encoders/VideoEncoder.d.ts +25 -46
  332. package/dist/encoders/VideoEncoder.d.ts.map +1 -1
  333. package/dist/encoders/VideoEncoder.js +180 -88
  334. package/dist/encoders/VideoEncoder.js.map +1 -1
  335. package/dist/encoders/audio/config.d.ts +30 -0
  336. package/dist/encoders/audio/config.d.ts.map +1 -0
  337. package/dist/encoders/audio/config.js +169 -0
  338. package/dist/encoders/audio/config.js.map +1 -0
  339. package/dist/encoders/audio/constants.d.ts +8 -0
  340. package/dist/encoders/audio/constants.d.ts.map +1 -0
  341. package/dist/encoders/audio/constants.js +8 -0
  342. package/dist/encoders/audio/constants.js.map +1 -0
  343. package/dist/encoders/audio/types.d.ts +70 -0
  344. package/dist/encoders/audio/types.d.ts.map +1 -0
  345. package/dist/encoders/audio/types.js +5 -0
  346. package/dist/encoders/audio/types.js.map +1 -0
  347. package/dist/encoders/video/config.d.ts +25 -0
  348. package/dist/encoders/video/config.d.ts.map +1 -0
  349. package/dist/encoders/video/config.js +132 -0
  350. package/dist/encoders/video/config.js.map +1 -0
  351. package/dist/encoders/video/constants.d.ts +8 -0
  352. package/dist/encoders/video/constants.d.ts.map +1 -0
  353. package/dist/encoders/video/constants.js +8 -0
  354. package/dist/encoders/video/constants.js.map +1 -0
  355. package/dist/encoders/video/queue.d.ts +9 -0
  356. package/dist/encoders/video/queue.d.ts.map +1 -0
  357. package/dist/encoders/video/queue.js +17 -0
  358. package/dist/encoders/video/queue.js.map +1 -0
  359. package/dist/encoders/video/types.d.ts +104 -0
  360. package/dist/encoders/video/types.d.ts.map +1 -0
  361. package/dist/encoders/video/types.js +5 -0
  362. package/dist/encoders/video/types.js.map +1 -0
  363. package/dist/formats/color-space/convert.d.ts +27 -0
  364. package/dist/formats/color-space/convert.d.ts.map +1 -0
  365. package/dist/formats/color-space/convert.js +91 -0
  366. package/dist/formats/color-space/convert.js.map +1 -0
  367. package/dist/formats/color-space/extract.d.ts +32 -0
  368. package/dist/formats/color-space/extract.d.ts.map +1 -0
  369. package/dist/formats/color-space/extract.js +116 -0
  370. package/dist/formats/color-space/extract.js.map +1 -0
  371. package/dist/formats/color-space/index.d.ts +10 -0
  372. package/dist/formats/color-space/index.d.ts.map +1 -0
  373. package/dist/formats/color-space/index.js +14 -0
  374. package/dist/formats/color-space/index.js.map +1 -0
  375. package/dist/formats/color-space/maps.d.ts +70 -0
  376. package/dist/formats/color-space/maps.d.ts.map +1 -0
  377. package/dist/formats/color-space/maps.js +70 -0
  378. package/dist/formats/color-space/maps.js.map +1 -0
  379. package/dist/formats/color-space/types.d.ts +68 -0
  380. package/dist/formats/color-space/types.d.ts.map +1 -0
  381. package/dist/formats/color-space/types.js +49 -0
  382. package/dist/formats/color-space/types.js.map +1 -0
  383. package/dist/formats/color-space.d.ts +4 -124
  384. package/dist/formats/color-space.d.ts.map +1 -1
  385. package/dist/formats/color-space.js +5 -108
  386. package/dist/formats/color-space.js.map +1 -1
  387. package/dist/formats/conversions/frame-converter.d.ts +8 -3
  388. package/dist/formats/conversions/frame-converter.d.ts.map +1 -1
  389. package/dist/formats/conversions/frame-converter.js +16 -12
  390. package/dist/formats/conversions/frame-converter.js.map +1 -1
  391. package/dist/formats/pixel-format/helpers.d.ts +49 -0
  392. package/dist/formats/pixel-format/helpers.d.ts.map +1 -0
  393. package/dist/formats/pixel-format/helpers.js +117 -0
  394. package/dist/formats/pixel-format/helpers.js.map +1 -0
  395. package/dist/formats/pixel-format/index.d.ts +9 -0
  396. package/dist/formats/pixel-format/index.d.ts.map +1 -0
  397. package/dist/formats/pixel-format/index.js +10 -0
  398. package/dist/formats/pixel-format/index.js.map +1 -0
  399. package/dist/formats/pixel-format/sizes.d.ts +17 -0
  400. package/dist/formats/pixel-format/sizes.d.ts.map +1 -0
  401. package/dist/formats/pixel-format/sizes.js +159 -0
  402. package/dist/formats/pixel-format/sizes.js.map +1 -0
  403. package/dist/formats/pixel-format/types.d.ts +13 -0
  404. package/dist/formats/pixel-format/types.d.ts.map +1 -0
  405. package/dist/formats/pixel-format/types.js +5 -0
  406. package/dist/formats/pixel-format/types.js.map +1 -0
  407. package/dist/formats/pixel-formats.d.ts +4 -53
  408. package/dist/formats/pixel-formats.d.ts.map +1 -1
  409. package/dist/formats/pixel-formats.js +5 -179
  410. package/dist/formats/pixel-formats.js.map +1 -1
  411. package/dist/hardware/types.d.ts.map +1 -1
  412. package/dist/hardware/types.js +8 -2
  413. package/dist/hardware/types.js.map +1 -1
  414. package/dist/transfer/detach.d.ts +42 -0
  415. package/dist/transfer/detach.d.ts.map +1 -0
  416. package/dist/transfer/detach.js +93 -0
  417. package/dist/transfer/detach.js.map +1 -0
  418. package/dist/transfer/index.d.ts +9 -0
  419. package/dist/transfer/index.d.ts.map +1 -0
  420. package/dist/transfer/index.js +11 -0
  421. package/dist/transfer/index.js.map +1 -0
  422. package/dist/transfer/validate.d.ts +45 -0
  423. package/dist/transfer/validate.d.ts.map +1 -0
  424. package/dist/transfer/validate.js +98 -0
  425. package/dist/transfer/validate.js.map +1 -0
  426. package/dist/types/video.d.ts +16 -0
  427. package/dist/types/video.d.ts.map +1 -1
  428. package/dist/utils/codec-validation.d.ts +3 -28
  429. package/dist/utils/codec-validation.d.ts.map +1 -1
  430. package/dist/utils/codec-validation.js +4 -248
  431. package/dist/utils/codec-validation.js.map +1 -1
  432. package/docs/api.md +4 -2
  433. package/docs/architecture-refactor-plan.md +149 -0
  434. package/docs/architecture.md +258 -0
  435. package/package.json +6 -4
  436. package/dist/config/ffmpeg-quality.d.ts +0 -23
  437. package/dist/config/ffmpeg-quality.d.ts.map +0 -1
  438. package/dist/config/ffmpeg-quality.js +0 -15
  439. package/dist/config/ffmpeg-quality.js.map +0 -1
  440. package/dist/containers/FFmpegSpawnMuxer.d.ts +0 -42
  441. package/dist/containers/FFmpegSpawnMuxer.d.ts.map +0 -1
  442. package/dist/containers/FFmpegSpawnMuxer.js +0 -311
  443. package/dist/containers/FFmpegSpawnMuxer.js.map +0 -1
  444. package/dist/containers/FallbackMuxer.d.ts +0 -42
  445. package/dist/containers/FallbackMuxer.d.ts.map +0 -1
  446. package/dist/containers/FallbackMuxer.js +0 -311
  447. package/dist/containers/FallbackMuxer.js.map +0 -1
  448. package/dist/containers/MuxerWithFallback.d.ts +0 -110
  449. package/dist/containers/MuxerWithFallback.d.ts.map +0 -1
  450. package/dist/containers/MuxerWithFallback.js +0 -239
  451. package/dist/containers/MuxerWithFallback.js.map +0 -1
  452. package/dist/demos/demo-audio-visualizer-mediabunny.d.ts +0 -10
  453. package/dist/demos/demo-audio-visualizer-mediabunny.d.ts.map +0 -1
  454. package/dist/demos/demo-audio-visualizer-mediabunny.js +0 -357
  455. package/dist/demos/demo-audio-visualizer-mediabunny.js.map +0 -1
  456. package/dist/demos/demo-audio-visualizer-nodeav.d.ts +0 -10
  457. package/dist/demos/demo-audio-visualizer-nodeav.d.ts.map +0 -1
  458. package/dist/demos/demo-audio-visualizer-nodeav.js +0 -318
  459. package/dist/demos/demo-audio-visualizer-nodeav.js.map +0 -1
  460. package/dist/demos/demo-muxer-fallback.d.ts +0 -8
  461. package/dist/demos/demo-muxer-fallback.d.ts.map +0 -1
  462. package/dist/demos/demo-muxer-fallback.js +0 -165
  463. package/dist/demos/demo-muxer-fallback.js.map +0 -1
  464. package/dist/polyfills/CanvasRenderingContext2DPolyfill.d.ts +0 -72
  465. package/dist/polyfills/CanvasRenderingContext2DPolyfill.d.ts.map +0 -1
  466. package/dist/polyfills/CanvasRenderingContext2DPolyfill.js +0 -293
  467. package/dist/polyfills/CanvasRenderingContext2DPolyfill.js.map +0 -1
  468. package/dist/polyfills/ImageDataPolyfill.d.ts +0 -12
  469. package/dist/polyfills/ImageDataPolyfill.d.ts.map +0 -1
  470. package/dist/polyfills/ImageDataPolyfill.js +0 -22
  471. package/dist/polyfills/ImageDataPolyfill.js.map +0 -1
  472. package/dist/polyfills/OffscreenCanvasPolyfill.d.ts +0 -16
  473. package/dist/polyfills/OffscreenCanvasPolyfill.d.ts.map +0 -1
  474. package/dist/polyfills/OffscreenCanvasPolyfill.js +0 -46
  475. package/dist/polyfills/OffscreenCanvasPolyfill.js.map +0 -1
  476. package/dist/polyfills/VideoFramePolyfill.d.ts +0 -44
  477. package/dist/polyfills/VideoFramePolyfill.d.ts.map +0 -1
  478. package/dist/polyfills/VideoFramePolyfill.js +0 -98
  479. package/dist/polyfills/VideoFramePolyfill.js.map +0 -1
@@ -1,311 +0,0 @@
1
- /**
2
- * FFmpeg Spawn Muxer - Fallback muxer using FFmpeg subprocess
3
- *
4
- * This muxer accumulates encoded chunks in memory and uses FFmpeg
5
- * to mux them when close() is called. It serves as a fallback when
6
- * the node-av muxer fails.
7
- */
8
- import * as fs from 'fs';
9
- import * as path from 'path';
10
- import * as os from 'os';
11
- import { spawn } from 'child_process';
12
- import { randomBytes } from 'crypto';
13
- import { MuxerError } from './muxer-types.js';
14
- /**
15
- * Convert AVCC format (length-prefixed NALUs) to Annex B (start code prefixed)
16
- * This is needed because FFmpeg expects Annex B format for raw H.264 input
17
- */
18
- function avccToAnnexB(avccData, nalLengthSize = 4) {
19
- const START_CODE = new Uint8Array([0, 0, 0, 1]);
20
- const chunks = [];
21
- let offset = 0;
22
- while (offset < avccData.length) {
23
- // Read NAL unit length
24
- let nalLength = 0;
25
- for (let i = 0; i < nalLengthSize; i++) {
26
- nalLength = (nalLength << 8) | avccData[offset + i];
27
- }
28
- offset += nalLengthSize;
29
- if (nalLength <= 0 || offset + nalLength > avccData.length) {
30
- break;
31
- }
32
- // Add start code + NAL unit
33
- chunks.push(START_CODE);
34
- chunks.push(avccData.slice(offset, offset + nalLength));
35
- offset += nalLength;
36
- }
37
- // Concatenate all chunks
38
- const totalLength = chunks.reduce((sum, chunk) => sum + chunk.length, 0);
39
- const result = new Uint8Array(totalLength);
40
- let writeOffset = 0;
41
- for (const chunk of chunks) {
42
- result.set(chunk, writeOffset);
43
- writeOffset += chunk.length;
44
- }
45
- return result;
46
- }
47
- /**
48
- * Parse AVCC extradata (SPS/PPS) to Annex B format
49
- */
50
- function parseAvccExtradata(extradata) {
51
- const START_CODE = new Uint8Array([0, 0, 0, 1]);
52
- const chunks = [];
53
- // AVCC format:
54
- // configurationVersion (1 byte) = 1
55
- // AVCProfileIndication (1 byte)
56
- // profile_compatibility (1 byte)
57
- // AVCLevelIndication (1 byte)
58
- // lengthSizeMinusOne (6 bits reserved + 2 bits) -> NAL length size = (value & 0x03) + 1
59
- // numOfSequenceParameterSets (3 bits reserved + 5 bits)
60
- // SPS entries...
61
- // numOfPictureParameterSets (1 byte)
62
- // PPS entries...
63
- if (extradata.length < 7 || extradata[0] !== 1) {
64
- // Not valid AVCC, return as-is (might already be Annex B)
65
- return { annexBHeader: extradata, nalLengthSize: 4 };
66
- }
67
- const nalLengthSize = (extradata[4] & 0x03) + 1;
68
- let offset = 5;
69
- // Parse SPS
70
- const numSPS = extradata[offset] & 0x1f;
71
- offset++;
72
- for (let i = 0; i < numSPS; i++) {
73
- const spsLength = (extradata[offset] << 8) | extradata[offset + 1];
74
- offset += 2;
75
- chunks.push(START_CODE);
76
- chunks.push(extradata.slice(offset, offset + spsLength));
77
- offset += spsLength;
78
- }
79
- // Parse PPS
80
- const numPPS = extradata[offset];
81
- offset++;
82
- for (let i = 0; i < numPPS; i++) {
83
- const ppsLength = (extradata[offset] << 8) | extradata[offset + 1];
84
- offset += 2;
85
- chunks.push(START_CODE);
86
- chunks.push(extradata.slice(offset, offset + ppsLength));
87
- offset += ppsLength;
88
- }
89
- // Concatenate
90
- const totalLength = chunks.reduce((sum, chunk) => sum + chunk.length, 0);
91
- const annexBHeader = new Uint8Array(totalLength);
92
- let writeOffset = 0;
93
- for (const chunk of chunks) {
94
- annexBHeader.set(chunk, writeOffset);
95
- writeOffset += chunk.length;
96
- }
97
- return { annexBHeader, nalLengthSize };
98
- }
99
- /**
100
- * Add ADTS header to raw AAC frame
101
- */
102
- function addAdtsHeader(aacFrame, sampleRate, channels) {
103
- const sampleRateIndex = [
104
- 96000, 88200, 64000, 48000, 44100, 32000, 24000, 22050, 16000, 12000, 11025,
105
- 8000, 7350,
106
- ].indexOf(sampleRate);
107
- if (sampleRateIndex === -1) {
108
- // Unsupported sample rate, return raw frame
109
- return aacFrame;
110
- }
111
- const frameLength = aacFrame.length + 7; // ADTS header is 7 bytes
112
- const header = new Uint8Array(7);
113
- // Syncword (12 bits) = 0xFFF
114
- header[0] = 0xff;
115
- header[1] = 0xf1; // MPEG-4, Layer 0, no CRC
116
- // Profile (2 bits) = AAC-LC (1), shifted left 6
117
- // Sample rate index (4 bits), shifted left 2
118
- // Private bit (1 bit) = 0
119
- // Channel config (3 bits, upper 1 bit)
120
- header[2] = ((1 << 6) | (sampleRateIndex << 2) | (channels >> 2)) & 0xff;
121
- // Channel config (lower 2 bits), shifted left 6
122
- // Original/copy (1 bit) = 0
123
- // Home (1 bit) = 0
124
- // Copyright ID (1 bit) = 0
125
- // Copyright start (1 bit) = 0
126
- // Frame length (13 bits, upper 2 bits)
127
- header[3] = (((channels & 0x03) << 6) | (frameLength >> 11)) & 0xff;
128
- // Frame length (middle 8 bits)
129
- header[4] = (frameLength >> 3) & 0xff;
130
- // Frame length (lower 3 bits), shifted left 5
131
- // Buffer fullness (11 bits, upper 5 bits) = 0x7FF (VBR)
132
- header[5] = (((frameLength & 0x07) << 5) | 0x1f) & 0xff;
133
- // Buffer fullness (lower 6 bits), shifted left 2
134
- // Number of AAC frames - 1 (2 bits) = 0
135
- header[6] = 0xfc;
136
- // Combine header and frame
137
- const result = new Uint8Array(frameLength);
138
- result.set(header);
139
- result.set(aacFrame, 7);
140
- return result;
141
- }
142
- /**
143
- * FFmpeg-based muxer that uses subprocess for muxing
144
- *
145
- * This is a fallback muxer that accumulates chunks and uses FFmpeg
146
- * to create the final output file. It's more battle-tested but slower
147
- * than the native node-av muxer.
148
- */
149
- export class FFmpegSpawnMuxer {
150
- config;
151
- videoConfig = null;
152
- audioConfig = null;
153
- videoChunks = [];
154
- audioChunks = [];
155
- _videoChunkCount = 0;
156
- _audioChunkCount = 0;
157
- isOpen = false;
158
- tempDir = null;
159
- constructor(config) {
160
- this.config = config;
161
- }
162
- async open(timeout) {
163
- // Create temp directory for intermediate files
164
- this.tempDir = path.join(os.tmpdir(), `ffmpeg-mux-${randomBytes(8).toString('hex')}`);
165
- fs.mkdirSync(this.tempDir, { recursive: true });
166
- this.isOpen = true;
167
- }
168
- async addVideoTrack(config) {
169
- if (!this.isOpen) {
170
- throw new MuxerError('Muxer not opened', 'ffmpeg-spawn', 'addTrack');
171
- }
172
- this.videoConfig = config;
173
- return 0;
174
- }
175
- async addAudioTrack(config) {
176
- if (!this.isOpen) {
177
- throw new MuxerError('Muxer not opened', 'ffmpeg-spawn', 'addTrack');
178
- }
179
- this.audioConfig = config;
180
- return this.videoConfig ? 1 : 0;
181
- }
182
- async writeVideoChunk(chunk) {
183
- if (!this.isOpen || !this.videoConfig) {
184
- throw new MuxerError('Video track not configured', 'ffmpeg-spawn', 'write');
185
- }
186
- this.videoChunks.push(chunk);
187
- this._videoChunkCount++;
188
- }
189
- async writeAudioChunk(chunk) {
190
- if (!this.isOpen || !this.audioConfig) {
191
- throw new MuxerError('Audio track not configured', 'ffmpeg-spawn', 'write');
192
- }
193
- this.audioChunks.push(chunk);
194
- this._audioChunkCount++;
195
- }
196
- async close(timeout) {
197
- if (!this.isOpen || !this.tempDir) {
198
- return;
199
- }
200
- try {
201
- await this.muxWithFFmpeg();
202
- }
203
- finally {
204
- // Clean up temp directory
205
- if (this.tempDir && fs.existsSync(this.tempDir)) {
206
- fs.rmSync(this.tempDir, { recursive: true, force: true });
207
- }
208
- this.isOpen = false;
209
- }
210
- }
211
- async muxWithFFmpeg() {
212
- if (!this.tempDir)
213
- return;
214
- const ffmpegArgs = ['-y'];
215
- const inputFiles = [];
216
- // Write video to temp file
217
- if (this.videoConfig && this.videoChunks.length > 0) {
218
- const videoPath = path.join(this.tempDir, 'video.h264');
219
- await this.writeVideoToFile(videoPath);
220
- inputFiles.push(videoPath);
221
- const framerate = this.videoConfig.framerate || 30;
222
- ffmpegArgs.push('-f', 'h264', '-r', String(framerate), '-i', videoPath);
223
- }
224
- // Write audio to temp file
225
- if (this.audioConfig && this.audioChunks.length > 0) {
226
- const audioPath = path.join(this.tempDir, 'audio.aac');
227
- await this.writeAudioToFile(audioPath);
228
- inputFiles.push(audioPath);
229
- ffmpegArgs.push('-f', 'aac', '-i', audioPath);
230
- }
231
- if (inputFiles.length === 0) {
232
- throw new MuxerError('No tracks to mux', 'ffmpeg-spawn', 'close');
233
- }
234
- // Output options
235
- ffmpegArgs.push('-c:v', 'copy', '-c:a', 'copy', '-movflags', '+faststart', this.config.path);
236
- // Spawn FFmpeg
237
- await this.spawnFFmpeg(ffmpegArgs);
238
- }
239
- async writeVideoToFile(filePath) {
240
- if (!this.videoConfig)
241
- return;
242
- const chunks = [];
243
- // Parse extradata to get NAL length size and write SPS/PPS header
244
- let nalLengthSize = 4;
245
- if (this.videoConfig.description) {
246
- const { annexBHeader, nalLengthSize: nls } = parseAvccExtradata(this.videoConfig.description);
247
- nalLengthSize = nls;
248
- chunks.push(annexBHeader);
249
- }
250
- // Convert each chunk from AVCC to Annex B
251
- for (const chunk of this.videoChunks) {
252
- const annexBData = avccToAnnexB(chunk._buffer, nalLengthSize);
253
- chunks.push(annexBData);
254
- }
255
- // Write to file
256
- const totalLength = chunks.reduce((sum, c) => sum + c.length, 0);
257
- const buffer = Buffer.alloc(totalLength);
258
- let offset = 0;
259
- for (const chunk of chunks) {
260
- Buffer.from(chunk).copy(buffer, offset);
261
- offset += chunk.length;
262
- }
263
- fs.writeFileSync(filePath, buffer);
264
- }
265
- async writeAudioToFile(filePath) {
266
- if (!this.audioConfig)
267
- return;
268
- const chunks = [];
269
- // Add ADTS headers to each AAC frame
270
- for (const chunk of this.audioChunks) {
271
- const adtsFrame = addAdtsHeader(chunk._rawData, this.audioConfig.sampleRate, this.audioConfig.numberOfChannels);
272
- chunks.push(adtsFrame);
273
- }
274
- // Write to file
275
- const totalLength = chunks.reduce((sum, c) => sum + c.length, 0);
276
- const buffer = Buffer.alloc(totalLength);
277
- let offset = 0;
278
- for (const chunk of chunks) {
279
- Buffer.from(chunk).copy(buffer, offset);
280
- offset += chunk.length;
281
- }
282
- fs.writeFileSync(filePath, buffer);
283
- }
284
- spawnFFmpeg(args) {
285
- return new Promise((resolve, reject) => {
286
- const ffmpeg = spawn('ffmpeg', args);
287
- let stderr = '';
288
- ffmpeg.stderr.on('data', (data) => {
289
- stderr += data.toString();
290
- });
291
- ffmpeg.on('error', (err) => {
292
- reject(new MuxerError(`FFmpeg spawn error: ${err.message}`, 'ffmpeg-spawn', 'close', err));
293
- });
294
- ffmpeg.on('close', (code) => {
295
- if (code === 0) {
296
- resolve();
297
- }
298
- else {
299
- reject(new MuxerError(`FFmpeg exited with code ${code}: ${stderr.slice(-500)}`, 'ffmpeg-spawn', 'close'));
300
- }
301
- });
302
- });
303
- }
304
- get videoChunkCount() {
305
- return this._videoChunkCount;
306
- }
307
- get audioChunkCount() {
308
- return this._audioChunkCount;
309
- }
310
- }
311
- //# sourceMappingURL=FFmpegSpawnMuxer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"FFmpegSpawnMuxer.js","sourceRoot":"","sources":["../../src/containers/FFmpegSpawnMuxer.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAUrC,OAAO,EAAE,UAAU,EAAe,MAAM,kBAAkB,CAAC;AAE3D;;;GAGG;AACH,SAAS,YAAY,CACnB,QAAoB,EACpB,gBAAwB,CAAC;IAEzB,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAChD,MAAM,MAAM,GAAiB,EAAE,CAAC;IAChC,IAAI,MAAM,GAAG,CAAC,CAAC;IAEf,OAAO,MAAM,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC;QAChC,uBAAuB;QACvB,IAAI,SAAS,GAAG,CAAC,CAAC;QAClB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,EAAE,CAAC,EAAE,EAAE,CAAC;YACvC,SAAS,GAAG,CAAC,SAAS,IAAI,CAAC,CAAC,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACtD,CAAC;QACD,MAAM,IAAI,aAAa,CAAC;QAExB,IAAI,SAAS,IAAI,CAAC,IAAI,MAAM,GAAG,SAAS,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC;YAC3D,MAAM;QACR,CAAC;QAED,4BAA4B;QAC5B,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACxB,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC;QACxD,MAAM,IAAI,SAAS,CAAC;IACtB,CAAC;IAED,yBAAyB;IACzB,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IACzE,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,WAAW,CAAC,CAAC;IAC3C,IAAI,WAAW,GAAG,CAAC,CAAC;IACpB,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;QAC/B,WAAW,IAAI,KAAK,CAAC,MAAM,CAAC;IAC9B,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,SAAS,kBAAkB,CAAC,SAAqB;IAI/C,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAChD,MAAM,MAAM,GAAiB,EAAE,CAAC;IAEhC,eAAe;IACf,oCAAoC;IACpC,gCAAgC;IAChC,iCAAiC;IACjC,8BAA8B;IAC9B,wFAAwF;IACxF,wDAAwD;IACxD,iBAAiB;IACjB,qCAAqC;IACrC,iBAAiB;IAEjB,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;QAC/C,0DAA0D;QAC1D,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC,EAAE,CAAC;IACvD,CAAC;IAED,MAAM,aAAa,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;IAChD,IAAI,MAAM,GAAG,CAAC,CAAC;IAEf,YAAY;IACZ,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;IACxC,MAAM,EAAE,CAAC;IAET,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAChC,MAAM,SAAS,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACnE,MAAM,IAAI,CAAC,CAAC;QACZ,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACxB,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC;QACzD,MAAM,IAAI,SAAS,CAAC;IACtB,CAAC;IAED,YAAY;IACZ,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;IACjC,MAAM,EAAE,CAAC;IAET,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAChC,MAAM,SAAS,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACnE,MAAM,IAAI,CAAC,CAAC;QACZ,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACxB,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC;QACzD,MAAM,IAAI,SAAS,CAAC;IACtB,CAAC;IAED,cAAc;IACd,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IACzE,MAAM,YAAY,GAAG,IAAI,UAAU,CAAC,WAAW,CAAC,CAAC;IACjD,IAAI,WAAW,GAAG,CAAC,CAAC;IACpB,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,YAAY,CAAC,GAAG,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;QACrC,WAAW,IAAI,KAAK,CAAC,MAAM,CAAC;IAC9B,CAAC;IAED,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,CAAC;AACzC,CAAC;AAED;;GAEG;AACH,SAAS,aAAa,CACpB,QAAoB,EACpB,UAAkB,EAClB,QAAgB;IAEhB,MAAM,eAAe,GAAG;QACtB,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK;QAC3E,IAAI,EAAE,IAAI;KACX,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAEtB,IAAI,eAAe,KAAK,CAAC,CAAC,EAAE,CAAC;QAC3B,4CAA4C;QAC5C,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,MAAM,WAAW,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,yBAAyB;IAClE,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;IAEjC,6BAA6B;IAC7B,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IACjB,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,0BAA0B;IAE5C,gDAAgD;IAChD,6CAA6C;IAC7C,0BAA0B;IAC1B,uCAAuC;IACvC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,eAAe,IAAI,CAAC,CAAC,GAAG,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IAEzE,gDAAgD;IAChD,4BAA4B;IAC5B,mBAAmB;IACnB,2BAA2B;IAC3B,8BAA8B;IAC9B,uCAAuC;IACvC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC;IAEpE,+BAA+B;IAC/B,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC;IAEtC,8CAA8C;IAC9C,wDAAwD;IACxD,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;IAExD,iDAAiD;IACjD,wCAAwC;IACxC,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IAEjB,2BAA2B;IAC3B,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,WAAW,CAAC,CAAC;IAC3C,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACnB,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;IAExB,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,OAAO,gBAAgB;IACnB,MAAM,CAAc;IACpB,WAAW,GAA4B,IAAI,CAAC;IAC5C,WAAW,GAA4B,IAAI,CAAC;IAC5C,WAAW,GAAwB,EAAE,CAAC;IACtC,WAAW,GAAwB,EAAE,CAAC;IACtC,gBAAgB,GAAG,CAAC,CAAC;IACrB,gBAAgB,GAAG,CAAC,CAAC;IACrB,MAAM,GAAG,KAAK,CAAC;IACf,OAAO,GAAkB,IAAI,CAAC;IAEtC,YAAY,MAAmB;QAC7B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,OAAgB;QACzB,+CAA+C;QAC/C,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,CACtB,EAAE,CAAC,MAAM,EAAE,EACX,cAAc,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAC/C,CAAC;QACF,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAChD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;IACrB,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,MAAwB;QAC1C,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,MAAM,IAAI,UAAU,CAAC,kBAAkB,EAAE,cAAc,EAAE,UAAU,CAAC,CAAC;QACvE,CAAC;QACD,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC;QAC1B,OAAO,CAAC,CAAC;IACX,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,MAAwB;QAC1C,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,MAAM,IAAI,UAAU,CAAC,kBAAkB,EAAE,cAAc,EAAE,UAAU,CAAC,CAAC;QACvE,CAAC;QACD,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC;QAC1B,OAAO,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAClC,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,KAAwB;QAC5C,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACtC,MAAM,IAAI,UAAU,CAClB,4BAA4B,EAC5B,cAAc,EACd,OAAO,CACR,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC7B,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAC1B,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,KAAwB;QAC5C,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACtC,MAAM,IAAI,UAAU,CAClB,4BAA4B,EAC5B,cAAc,EACd,OAAO,CACR,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC7B,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAC1B,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,OAAgB;QAC1B,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAClC,OAAO;QACT,CAAC;QAED,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;QAC7B,CAAC;gBAAS,CAAC;YACT,0BAA0B;YAC1B,IAAI,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;gBAChD,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YAC5D,CAAC;YACD,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACtB,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,aAAa;QACzB,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO;QAE1B,MAAM,UAAU,GAAa,CAAC,IAAI,CAAC,CAAC;QACpC,MAAM,UAAU,GAAa,EAAE,CAAC;QAEhC,2BAA2B;QAC3B,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACpD,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;YACxD,MAAM,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;YACvC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAE3B,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,IAAI,EAAE,CAAC;YACnD,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;QAC1E,CAAC;QAED,2BAA2B;QAC3B,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACpD,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;YACvD,MAAM,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;YACvC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAE3B,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;QAChD,CAAC;QAED,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5B,MAAM,IAAI,UAAU,CAAC,kBAAkB,EAAE,cAAc,EAAE,OAAO,CAAC,CAAC;QACpE,CAAC;QAED,iBAAiB;QACjB,UAAU,CAAC,IAAI,CACb,MAAM,EACN,MAAM,EACN,MAAM,EACN,MAAM,EACN,WAAW,EACX,YAAY,EACZ,IAAI,CAAC,MAAM,CAAC,IAAI,CACjB,CAAC;QAEF,eAAe;QACf,MAAM,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;IACrC,CAAC;IAEO,KAAK,CAAC,gBAAgB,CAAC,QAAgB;QAC7C,IAAI,CAAC,IAAI,CAAC,WAAW;YAAE,OAAO;QAE9B,MAAM,MAAM,GAAiB,EAAE,CAAC;QAEhC,kEAAkE;QAClE,IAAI,aAAa,GAAG,CAAC,CAAC;QACtB,IAAI,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC;YACjC,MAAM,EAAE,YAAY,EAAE,aAAa,EAAE,GAAG,EAAE,GAAG,kBAAkB,CAC7D,IAAI,CAAC,WAAW,CAAC,WAAW,CAC7B,CAAC;YACF,aAAa,GAAG,GAAG,CAAC;YACpB,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC5B,CAAC;QAED,0CAA0C;QAC1C,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrC,MAAM,UAAU,GAAG,YAAY,CAAC,KAAK,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;YAC9D,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC1B,CAAC;QAED,gBAAgB;QAChB,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QACjE,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QACzC,IAAI,MAAM,GAAG,CAAC,CAAC;QACf,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YACxC,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC;QACzB,CAAC;QACD,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IACrC,CAAC;IAEO,KAAK,CAAC,gBAAgB,CAAC,QAAgB;QAC7C,IAAI,CAAC,IAAI,CAAC,WAAW;YAAE,OAAO;QAE9B,MAAM,MAAM,GAAiB,EAAE,CAAC;QAEhC,qCAAqC;QACrC,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrC,MAAM,SAAS,GAAG,aAAa,CAC7B,KAAK,CAAC,QAAQ,EACd,IAAI,CAAC,WAAW,CAAC,UAAU,EAC3B,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAClC,CAAC;YACF,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACzB,CAAC;QAED,gBAAgB;QAChB,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QACjE,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QACzC,IAAI,MAAM,GAAG,CAAC,CAAC;QACf,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YACxC,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC;QACzB,CAAC;QACD,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IACrC,CAAC;IAEO,WAAW,CAAC,IAAc;QAChC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,MAAM,MAAM,GAAG,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;YAErC,IAAI,MAAM,GAAG,EAAE,CAAC;YAChB,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;gBAChC,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC5B,CAAC,CAAC,CAAC;YAEH,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;gBACzB,MAAM,CACJ,IAAI,UAAU,CACZ,uBAAuB,GAAG,CAAC,OAAO,EAAE,EACpC,cAAc,EACd,OAAO,EACP,GAAG,CACJ,CACF,CAAC;YACJ,CAAC,CAAC,CAAC;YAEH,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;gBAC1B,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;oBACf,OAAO,EAAE,CAAC;gBACZ,CAAC;qBAAM,CAAC;oBACN,MAAM,CACJ,IAAI,UAAU,CACZ,2BAA2B,IAAI,KAAK,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,EAAE,EACxD,cAAc,EACd,OAAO,CACR,CACF,CAAC;gBACJ,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED,IAAI,eAAe;QACjB,OAAO,IAAI,CAAC,gBAAgB,CAAC;IAC/B,CAAC;IAED,IAAI,eAAe;QACjB,OAAO,IAAI,CAAC,gBAAgB,CAAC;IAC/B,CAAC;CACF"}
@@ -1,42 +0,0 @@
1
- /**
2
- * Fallback Muxer - FFmpeg subprocess-based muxer
3
- *
4
- * This muxer accumulates encoded chunks in memory and uses FFmpeg
5
- * to mux them when close() is called. It serves as a fallback when
6
- * the node-av muxer fails.
7
- */
8
- import type { EncodedVideoChunk } from '../core/EncodedVideoChunk.js';
9
- import type { EncodedAudioChunk } from '../core/EncodedAudioChunk.js';
10
- import type { IMuxer, MuxerConfig, VideoTrackConfig, AudioTrackConfig } from './muxer-types.js';
11
- /**
12
- * Fallback muxer that uses FFmpeg subprocess for muxing
13
- *
14
- * This is a fallback muxer that accumulates chunks and uses FFmpeg
15
- * to create the final output file. It's more battle-tested but slower
16
- * (~130ms due to process spawn) than the native node-av muxer (~5ms).
17
- */
18
- export declare class FallbackMuxer implements IMuxer {
19
- private config;
20
- private videoConfig;
21
- private audioConfig;
22
- private videoChunks;
23
- private audioChunks;
24
- private _videoChunkCount;
25
- private _audioChunkCount;
26
- private isOpen;
27
- private tempDir;
28
- constructor(config: MuxerConfig);
29
- open(timeout?: number): Promise<void>;
30
- addVideoTrack(config: VideoTrackConfig): Promise<number>;
31
- addAudioTrack(config: AudioTrackConfig): Promise<number>;
32
- writeVideoChunk(chunk: EncodedVideoChunk): Promise<void>;
33
- writeAudioChunk(chunk: EncodedAudioChunk): Promise<void>;
34
- close(timeout?: number): Promise<void>;
35
- private muxWithFFmpeg;
36
- private writeVideoToFile;
37
- private writeAudioToFile;
38
- private spawnFFmpeg;
39
- get videoChunkCount(): number;
40
- get audioChunkCount(): number;
41
- }
42
- //# sourceMappingURL=FallbackMuxer.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"FallbackMuxer.d.ts","sourceRoot":"","sources":["../../src/containers/FallbackMuxer.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAQH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACtE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACtE,OAAO,KAAK,EACV,MAAM,EACN,WAAW,EACX,gBAAgB,EAChB,gBAAgB,EACjB,MAAM,kBAAkB,CAAC;AAwK1B;;;;;;GAMG;AACH,qBAAa,aAAc,YAAW,MAAM;IAC1C,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,WAAW,CAAiC;IACpD,OAAO,CAAC,WAAW,CAAiC;IACpD,OAAO,CAAC,WAAW,CAA2B;IAC9C,OAAO,CAAC,WAAW,CAA2B;IAC9C,OAAO,CAAC,gBAAgB,CAAK;IAC7B,OAAO,CAAC,gBAAgB,CAAK;IAC7B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,OAAO,CAAuB;gBAE1B,MAAM,EAAE,WAAW;IAIzB,IAAI,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAUrC,aAAa,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC;IAQxD,aAAa,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC;IAQxD,eAAe,CAAC,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAYxD,eAAe,CAAC,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAYxD,KAAK,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;YAgB9B,aAAa;YA4Cb,gBAAgB;YAgChB,gBAAgB;IA0B9B,OAAO,CAAC,WAAW;IAoCnB,IAAI,eAAe,IAAI,MAAM,CAE5B;IAED,IAAI,eAAe,IAAI,MAAM,CAE5B;CACF"}