webcodecs-node 0.7.2 → 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 (507) hide show
  1. package/README.md +106 -16
  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/config/webcodecs-config.d.ts +58 -0
  214. package/dist/config/webcodecs-config.d.ts.map +1 -0
  215. package/dist/config/webcodecs-config.js +187 -0
  216. package/dist/config/webcodecs-config.js.map +1 -0
  217. package/dist/containers/Demuxer.d.ts +3 -1
  218. package/dist/containers/Demuxer.d.ts.map +1 -1
  219. package/dist/containers/Demuxer.js +26 -19
  220. package/dist/containers/Demuxer.js.map +1 -1
  221. package/dist/containers/FFmpegMuxer.d.ts +42 -0
  222. package/dist/containers/FFmpegMuxer.d.ts.map +1 -0
  223. package/dist/containers/FFmpegMuxer.js +311 -0
  224. package/dist/containers/FFmpegMuxer.js.map +1 -0
  225. package/dist/containers/Muxer.d.ts +75 -107
  226. package/dist/containers/Muxer.d.ts.map +1 -1
  227. package/dist/containers/Muxer.js +184 -243
  228. package/dist/containers/Muxer.js.map +1 -1
  229. package/dist/containers/NodeAvMuxer.d.ts +125 -0
  230. package/dist/containers/NodeAvMuxer.d.ts.map +1 -0
  231. package/dist/containers/NodeAvMuxer.js +458 -0
  232. package/dist/containers/NodeAvMuxer.js.map +1 -0
  233. package/dist/containers/extract.d.ts.map +1 -1
  234. package/dist/containers/extract.js +3 -1
  235. package/dist/containers/extract.js.map +1 -1
  236. package/dist/containers/index.d.ts +20 -14
  237. package/dist/containers/index.d.ts.map +1 -1
  238. package/dist/containers/index.js +21 -14
  239. package/dist/containers/index.js.map +1 -1
  240. package/dist/containers/muxer-types.d.ts +117 -0
  241. package/dist/containers/muxer-types.d.ts.map +1 -0
  242. package/dist/containers/muxer-types.js +45 -0
  243. package/dist/containers/muxer-types.js.map +1 -0
  244. package/dist/containers/transcode.d.ts.map +1 -1
  245. package/dist/containers/transcode.js +171 -150
  246. package/dist/containers/transcode.js.map +1 -1
  247. package/dist/core/AudioData.d.ts.map +1 -1
  248. package/dist/core/AudioData.js +54 -12
  249. package/dist/core/AudioData.js.map +1 -1
  250. package/dist/core/EncodedAudioChunk.d.ts.map +1 -1
  251. package/dist/core/EncodedAudioChunk.js +74 -6
  252. package/dist/core/EncodedAudioChunk.js.map +1 -1
  253. package/dist/core/EncodedVideoChunk.d.ts +2 -0
  254. package/dist/core/EncodedVideoChunk.d.ts.map +1 -1
  255. package/dist/core/EncodedVideoChunk.js +70 -2
  256. package/dist/core/EncodedVideoChunk.js.map +1 -1
  257. package/dist/core/VideoFrame.d.ts +27 -2
  258. package/dist/core/VideoFrame.d.ts.map +1 -1
  259. package/dist/core/VideoFrame.js +245 -125
  260. package/dist/core/VideoFrame.js.map +1 -1
  261. package/dist/core/video-frame/layout.d.ts +10 -0
  262. package/dist/core/video-frame/layout.d.ts.map +1 -0
  263. package/dist/core/video-frame/layout.js +97 -0
  264. package/dist/core/video-frame/layout.js.map +1 -0
  265. package/dist/core/video-frame/orientation.d.ts +23 -0
  266. package/dist/core/video-frame/orientation.d.ts.map +1 -0
  267. package/dist/core/video-frame/orientation.js +49 -0
  268. package/dist/core/video-frame/orientation.js.map +1 -0
  269. package/dist/core/video-frame/transfer.d.ts +19 -0
  270. package/dist/core/video-frame/transfer.d.ts.map +1 -0
  271. package/dist/core/video-frame/transfer.js +78 -0
  272. package/dist/core/video-frame/transfer.js.map +1 -0
  273. package/dist/core/video-frame/validation.d.ts +28 -0
  274. package/dist/core/video-frame/validation.d.ts.map +1 -0
  275. package/dist/core/video-frame/validation.js +76 -0
  276. package/dist/core/video-frame/validation.js.map +1 -0
  277. package/dist/decoders/AudioDecoder.d.ts +2 -19
  278. package/dist/decoders/AudioDecoder.d.ts.map +1 -1
  279. package/dist/decoders/AudioDecoder.js +27 -11
  280. package/dist/decoders/AudioDecoder.js.map +1 -1
  281. package/dist/decoders/ImageDecoder.d.ts +34 -41
  282. package/dist/decoders/ImageDecoder.d.ts.map +1 -1
  283. package/dist/decoders/ImageDecoder.js +158 -266
  284. package/dist/decoders/ImageDecoder.js.map +1 -1
  285. package/dist/decoders/VideoDecoder.d.ts +3 -38
  286. package/dist/decoders/VideoDecoder.d.ts.map +1 -1
  287. package/dist/decoders/VideoDecoder.js +126 -124
  288. package/dist/decoders/VideoDecoder.js.map +1 -1
  289. package/dist/decoders/audio/config.d.ts +23 -0
  290. package/dist/decoders/audio/config.d.ts.map +1 -0
  291. package/dist/decoders/audio/config.js +112 -0
  292. package/dist/decoders/audio/config.js.map +1 -0
  293. package/dist/decoders/audio/constants.d.ts +6 -0
  294. package/dist/decoders/audio/constants.d.ts.map +1 -0
  295. package/dist/decoders/audio/constants.js +6 -0
  296. package/dist/decoders/audio/constants.js.map +1 -0
  297. package/dist/decoders/audio/types.d.ts +21 -0
  298. package/dist/decoders/audio/types.d.ts.map +1 -0
  299. package/dist/decoders/audio/types.js +5 -0
  300. package/dist/decoders/audio/types.js.map +1 -0
  301. package/dist/decoders/image/orientation.d.ts +16 -0
  302. package/dist/decoders/image/orientation.d.ts.map +1 -0
  303. package/dist/decoders/image/orientation.js +170 -0
  304. package/dist/decoders/image/orientation.js.map +1 -0
  305. package/dist/decoders/image/stream.d.ts +12 -0
  306. package/dist/decoders/image/stream.d.ts.map +1 -0
  307. package/dist/decoders/image/stream.js +41 -0
  308. package/dist/decoders/image/stream.js.map +1 -0
  309. package/dist/decoders/image/tracks.d.ts +76 -0
  310. package/dist/decoders/image/tracks.d.ts.map +1 -0
  311. package/dist/decoders/image/tracks.js +136 -0
  312. package/dist/decoders/image/tracks.js.map +1 -0
  313. package/dist/decoders/image/types.d.ts +36 -0
  314. package/dist/decoders/image/types.d.ts.map +1 -0
  315. package/dist/decoders/image/types.js +5 -0
  316. package/dist/decoders/image/types.js.map +1 -0
  317. package/dist/decoders/video/codec-specific.d.ts +19 -0
  318. package/dist/decoders/video/codec-specific.d.ts.map +1 -0
  319. package/dist/decoders/video/codec-specific.js +62 -0
  320. package/dist/decoders/video/codec-specific.js.map +1 -0
  321. package/dist/decoders/video/config.d.ts +17 -0
  322. package/dist/decoders/video/config.d.ts.map +1 -0
  323. package/dist/decoders/video/config.js +91 -0
  324. package/dist/decoders/video/config.js.map +1 -0
  325. package/dist/decoders/video/constants.d.ts +8 -0
  326. package/dist/decoders/video/constants.d.ts.map +1 -0
  327. package/dist/decoders/video/constants.js +13 -0
  328. package/dist/decoders/video/constants.js.map +1 -0
  329. package/dist/decoders/video/queue.d.ts +9 -0
  330. package/dist/decoders/video/queue.d.ts.map +1 -0
  331. package/dist/decoders/video/queue.js +17 -0
  332. package/dist/decoders/video/queue.js.map +1 -0
  333. package/dist/decoders/video/types.d.ts +41 -0
  334. package/dist/decoders/video/types.d.ts.map +1 -0
  335. package/dist/decoders/video/types.js +5 -0
  336. package/dist/decoders/video/types.js.map +1 -0
  337. package/dist/demos/demo-audio-visualizer.js +74 -48
  338. package/dist/demos/demo-audio-visualizer.js.map +1 -1
  339. package/dist/demos/demo-dvd-logo.js +26 -23
  340. package/dist/demos/demo-dvd-logo.js.map +1 -1
  341. package/dist/demos/demo-flow-field.d.ts +11 -0
  342. package/dist/demos/demo-flow-field.d.ts.map +1 -0
  343. package/dist/demos/demo-flow-field.js +305 -0
  344. package/dist/demos/demo-flow-field.js.map +1 -0
  345. package/dist/demos/demo-four-corners.js +56 -120
  346. package/dist/demos/demo-four-corners.js.map +1 -1
  347. package/dist/demos/demo-image.js +24 -19
  348. package/dist/demos/demo-image.js.map +1 -1
  349. package/dist/demos/demo-matrix-rain.d.ts +11 -0
  350. package/dist/demos/demo-matrix-rain.d.ts.map +1 -0
  351. package/dist/demos/demo-matrix-rain.js +246 -0
  352. package/dist/demos/demo-matrix-rain.js.map +1 -0
  353. package/dist/demos/demo-pipeline.js +56 -51
  354. package/dist/demos/demo-pipeline.js.map +1 -1
  355. package/dist/demos/demo-samples.js +56 -402
  356. package/dist/demos/demo-samples.js.map +1 -1
  357. package/dist/encoders/AudioEncoder.d.ts +4 -28
  358. package/dist/encoders/AudioEncoder.d.ts.map +1 -1
  359. package/dist/encoders/AudioEncoder.js +83 -20
  360. package/dist/encoders/AudioEncoder.js.map +1 -1
  361. package/dist/encoders/VideoEncoder.d.ts +25 -46
  362. package/dist/encoders/VideoEncoder.d.ts.map +1 -1
  363. package/dist/encoders/VideoEncoder.js +180 -88
  364. package/dist/encoders/VideoEncoder.js.map +1 -1
  365. package/dist/encoders/audio/config.d.ts +30 -0
  366. package/dist/encoders/audio/config.d.ts.map +1 -0
  367. package/dist/encoders/audio/config.js +169 -0
  368. package/dist/encoders/audio/config.js.map +1 -0
  369. package/dist/encoders/audio/constants.d.ts +8 -0
  370. package/dist/encoders/audio/constants.d.ts.map +1 -0
  371. package/dist/encoders/audio/constants.js +8 -0
  372. package/dist/encoders/audio/constants.js.map +1 -0
  373. package/dist/encoders/audio/types.d.ts +70 -0
  374. package/dist/encoders/audio/types.d.ts.map +1 -0
  375. package/dist/encoders/audio/types.js +5 -0
  376. package/dist/encoders/audio/types.js.map +1 -0
  377. package/dist/encoders/video/config.d.ts +25 -0
  378. package/dist/encoders/video/config.d.ts.map +1 -0
  379. package/dist/encoders/video/config.js +132 -0
  380. package/dist/encoders/video/config.js.map +1 -0
  381. package/dist/encoders/video/constants.d.ts +8 -0
  382. package/dist/encoders/video/constants.d.ts.map +1 -0
  383. package/dist/encoders/video/constants.js +8 -0
  384. package/dist/encoders/video/constants.js.map +1 -0
  385. package/dist/encoders/video/queue.d.ts +9 -0
  386. package/dist/encoders/video/queue.d.ts.map +1 -0
  387. package/dist/encoders/video/queue.js +17 -0
  388. package/dist/encoders/video/queue.js.map +1 -0
  389. package/dist/encoders/video/types.d.ts +104 -0
  390. package/dist/encoders/video/types.d.ts.map +1 -0
  391. package/dist/encoders/video/types.js +5 -0
  392. package/dist/encoders/video/types.js.map +1 -0
  393. package/dist/formats/color-space/convert.d.ts +27 -0
  394. package/dist/formats/color-space/convert.d.ts.map +1 -0
  395. package/dist/formats/color-space/convert.js +91 -0
  396. package/dist/formats/color-space/convert.js.map +1 -0
  397. package/dist/formats/color-space/extract.d.ts +32 -0
  398. package/dist/formats/color-space/extract.d.ts.map +1 -0
  399. package/dist/formats/color-space/extract.js +116 -0
  400. package/dist/formats/color-space/extract.js.map +1 -0
  401. package/dist/formats/color-space/index.d.ts +10 -0
  402. package/dist/formats/color-space/index.d.ts.map +1 -0
  403. package/dist/formats/color-space/index.js +14 -0
  404. package/dist/formats/color-space/index.js.map +1 -0
  405. package/dist/formats/color-space/maps.d.ts +70 -0
  406. package/dist/formats/color-space/maps.d.ts.map +1 -0
  407. package/dist/formats/color-space/maps.js +70 -0
  408. package/dist/formats/color-space/maps.js.map +1 -0
  409. package/dist/formats/color-space/types.d.ts +68 -0
  410. package/dist/formats/color-space/types.d.ts.map +1 -0
  411. package/dist/formats/color-space/types.js +49 -0
  412. package/dist/formats/color-space/types.js.map +1 -0
  413. package/dist/formats/color-space.d.ts +4 -124
  414. package/dist/formats/color-space.d.ts.map +1 -1
  415. package/dist/formats/color-space.js +5 -108
  416. package/dist/formats/color-space.js.map +1 -1
  417. package/dist/formats/conversions/frame-converter.d.ts +8 -3
  418. package/dist/formats/conversions/frame-converter.d.ts.map +1 -1
  419. package/dist/formats/conversions/frame-converter.js +16 -12
  420. package/dist/formats/conversions/frame-converter.js.map +1 -1
  421. package/dist/formats/pixel-format/helpers.d.ts +49 -0
  422. package/dist/formats/pixel-format/helpers.d.ts.map +1 -0
  423. package/dist/formats/pixel-format/helpers.js +117 -0
  424. package/dist/formats/pixel-format/helpers.js.map +1 -0
  425. package/dist/formats/pixel-format/index.d.ts +9 -0
  426. package/dist/formats/pixel-format/index.d.ts.map +1 -0
  427. package/dist/formats/pixel-format/index.js +10 -0
  428. package/dist/formats/pixel-format/index.js.map +1 -0
  429. package/dist/formats/pixel-format/sizes.d.ts +17 -0
  430. package/dist/formats/pixel-format/sizes.d.ts.map +1 -0
  431. package/dist/formats/pixel-format/sizes.js +159 -0
  432. package/dist/formats/pixel-format/sizes.js.map +1 -0
  433. package/dist/formats/pixel-format/types.d.ts +13 -0
  434. package/dist/formats/pixel-format/types.d.ts.map +1 -0
  435. package/dist/formats/pixel-format/types.js +5 -0
  436. package/dist/formats/pixel-format/types.js.map +1 -0
  437. package/dist/formats/pixel-formats.d.ts +4 -53
  438. package/dist/formats/pixel-formats.d.ts.map +1 -1
  439. package/dist/formats/pixel-formats.js +5 -179
  440. package/dist/formats/pixel-formats.js.map +1 -1
  441. package/dist/hardware/decoder-args.d.ts.map +1 -1
  442. package/dist/hardware/decoder-args.js +35 -14
  443. package/dist/hardware/decoder-args.js.map +1 -1
  444. package/dist/hardware/detection.d.ts.map +1 -1
  445. package/dist/hardware/detection.js +39 -0
  446. package/dist/hardware/detection.js.map +1 -1
  447. package/dist/hardware/encoder-args.d.ts.map +1 -1
  448. package/dist/hardware/encoder-args.js +43 -5
  449. package/dist/hardware/encoder-args.js.map +1 -1
  450. package/dist/hardware/types.d.ts.map +1 -1
  451. package/dist/hardware/types.js +36 -28
  452. package/dist/hardware/types.js.map +1 -1
  453. package/dist/node-av/NodeAvVideoEncoder.d.ts +5 -0
  454. package/dist/node-av/NodeAvVideoEncoder.d.ts.map +1 -1
  455. package/dist/node-av/NodeAvVideoEncoder.js +76 -23
  456. package/dist/node-av/NodeAvVideoEncoder.js.map +1 -1
  457. package/dist/transfer/detach.d.ts +42 -0
  458. package/dist/transfer/detach.d.ts.map +1 -0
  459. package/dist/transfer/detach.js +93 -0
  460. package/dist/transfer/detach.js.map +1 -0
  461. package/dist/transfer/index.d.ts +9 -0
  462. package/dist/transfer/index.d.ts.map +1 -0
  463. package/dist/transfer/index.js +11 -0
  464. package/dist/transfer/index.js.map +1 -0
  465. package/dist/transfer/validate.d.ts +45 -0
  466. package/dist/transfer/validate.d.ts.map +1 -0
  467. package/dist/transfer/validate.js +98 -0
  468. package/dist/transfer/validate.js.map +1 -0
  469. package/dist/types/video.d.ts +16 -0
  470. package/dist/types/video.d.ts.map +1 -1
  471. package/dist/utils/avc.d.ts +2 -0
  472. package/dist/utils/avc.d.ts.map +1 -1
  473. package/dist/utils/avc.js +36 -8
  474. package/dist/utils/avc.js.map +1 -1
  475. package/dist/utils/codec-validation.d.ts +3 -28
  476. package/dist/utils/codec-validation.d.ts.map +1 -1
  477. package/dist/utils/codec-validation.js +4 -238
  478. package/dist/utils/codec-validation.js.map +1 -1
  479. package/dist/utils/hevc.d.ts +2 -0
  480. package/dist/utils/hevc.d.ts.map +1 -1
  481. package/dist/utils/hevc.js +42 -8
  482. package/dist/utils/hevc.js.map +1 -1
  483. package/docs/api.md +24 -4
  484. package/docs/architecture-refactor-plan.md +149 -0
  485. package/docs/architecture.md +258 -0
  486. package/docs/configuration.md +10 -7
  487. package/package.json +6 -4
  488. package/dist/config/ffmpeg-quality.d.ts +0 -14
  489. package/dist/config/ffmpeg-quality.d.ts.map +0 -1
  490. package/dist/config/ffmpeg-quality.js +0 -41
  491. package/dist/config/ffmpeg-quality.js.map +0 -1
  492. package/dist/polyfills/CanvasRenderingContext2DPolyfill.d.ts +0 -72
  493. package/dist/polyfills/CanvasRenderingContext2DPolyfill.d.ts.map +0 -1
  494. package/dist/polyfills/CanvasRenderingContext2DPolyfill.js +0 -293
  495. package/dist/polyfills/CanvasRenderingContext2DPolyfill.js.map +0 -1
  496. package/dist/polyfills/ImageDataPolyfill.d.ts +0 -12
  497. package/dist/polyfills/ImageDataPolyfill.d.ts.map +0 -1
  498. package/dist/polyfills/ImageDataPolyfill.js +0 -22
  499. package/dist/polyfills/ImageDataPolyfill.js.map +0 -1
  500. package/dist/polyfills/OffscreenCanvasPolyfill.d.ts +0 -16
  501. package/dist/polyfills/OffscreenCanvasPolyfill.d.ts.map +0 -1
  502. package/dist/polyfills/OffscreenCanvasPolyfill.js +0 -46
  503. package/dist/polyfills/OffscreenCanvasPolyfill.js.map +0 -1
  504. package/dist/polyfills/VideoFramePolyfill.d.ts +0 -44
  505. package/dist/polyfills/VideoFramePolyfill.d.ts.map +0 -1
  506. package/dist/polyfills/VideoFramePolyfill.js +0 -98
  507. package/dist/polyfills/VideoFramePolyfill.js.map +0 -1
@@ -0,0 +1,40 @@
1
+ /**
2
+ * Sample format conversion utilities for audio encoding
3
+ */
4
+ /**
5
+ * Convert f32 interleaved to f32 planar
6
+ */
7
+ export declare function convertToPlanar(data: Buffer, samplesPerChannel: number, numChannels: number): Uint8Array;
8
+ /**
9
+ * Convert f32 interleaved to s16 interleaved
10
+ */
11
+ export declare function convertToS16Interleaved(data: Buffer, samplesPerChannel: number, numChannels: number): Uint8Array;
12
+ /**
13
+ * Convert f32 interleaved to s32 interleaved
14
+ */
15
+ export declare function convertToS32Interleaved(data: Buffer, samplesPerChannel: number, numChannels: number): Uint8Array;
16
+ /**
17
+ * Convert f32 interleaved to s16 planar
18
+ */
19
+ export declare function convertToS16Planar(data: Buffer, samplesPerChannel: number, numChannels: number): Uint8Array;
20
+ /**
21
+ * Convert f32 interleaved to u8 interleaved
22
+ */
23
+ export declare function convertToU8Interleaved(data: Buffer, samplesPerChannel: number, numChannels: number): Uint8Array;
24
+ /**
25
+ * Convert f32 planar to f32 interleaved
26
+ */
27
+ export declare function convertFromPlanarToInterleaved(data: Buffer, samplesPerChannel: number, numChannels: number): Uint8Array;
28
+ /**
29
+ * Convert s16 interleaved to f32 interleaved
30
+ */
31
+ export declare function convertFromS16ToF32Interleaved(data: Buffer, samplesPerChannel: number, numChannels: number): Uint8Array;
32
+ /**
33
+ * Convert s16 planar to f32 interleaved
34
+ */
35
+ export declare function convertFromS16PlanarToF32Interleaved(data: Buffer, samplesPerChannel: number, numChannels: number): Uint8Array;
36
+ /**
37
+ * Convert s32 interleaved to f32 interleaved
38
+ */
39
+ export declare function convertFromS32ToF32Interleaved(data: Buffer, samplesPerChannel: number, numChannels: number): Uint8Array;
40
+ //# sourceMappingURL=sample-format-convert.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sample-format-convert.d.ts","sourceRoot":"","sources":["../../../../../src/backends/node-av/audio/encoder/sample-format-convert.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,UAAU,CAiBxG;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,UAAU,CAchH;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,UAAU,CAahH;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,UAAU,CAmB3G;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,UAAU,CAa/G;AAMD;;GAEG;AACH,wBAAgB,8BAA8B,CAAC,IAAI,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,UAAU,CAiBvH;AAED;;GAEG;AACH,wBAAgB,8BAA8B,CAAC,IAAI,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,UAAU,CAavH;AAED;;GAEG;AACH,wBAAgB,oCAAoC,CAAC,IAAI,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,UAAU,CAiB7H;AAED;;GAEG;AACH,wBAAgB,8BAA8B,CAAC,IAAI,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,UAAU,CAavH"}
@@ -0,0 +1,152 @@
1
+ /**
2
+ * Sample format conversion utilities for audio encoding
3
+ */
4
+ /**
5
+ * Convert f32 interleaved to f32 planar
6
+ */
7
+ export function convertToPlanar(data, samplesPerChannel, numChannels) {
8
+ const bytesPerSample = 4; // f32
9
+ const planeSize = samplesPerChannel * bytesPerSample;
10
+ const result = new Uint8Array(planeSize * numChannels);
11
+ const input = new Float32Array(data.buffer, data.byteOffset, data.byteLength / 4);
12
+ const output = new Float32Array(result.buffer);
13
+ for (let s = 0; s < samplesPerChannel; s++) {
14
+ for (let ch = 0; ch < numChannels; ch++) {
15
+ const srcIdx = s * numChannels + ch;
16
+ const dstIdx = ch * samplesPerChannel + s;
17
+ output[dstIdx] = input[srcIdx];
18
+ }
19
+ }
20
+ return result;
21
+ }
22
+ /**
23
+ * Convert f32 interleaved to s16 interleaved
24
+ */
25
+ export function convertToS16Interleaved(data, samplesPerChannel, numChannels) {
26
+ const totalSamples = samplesPerChannel * numChannels;
27
+ const result = new Uint8Array(totalSamples * 2); // 2 bytes per s16 sample
28
+ const input = new Float32Array(data.buffer, data.byteOffset, data.byteLength / 4);
29
+ const output = new Int16Array(result.buffer);
30
+ for (let i = 0; i < totalSamples; i++) {
31
+ // Convert f32 [-1.0, 1.0] to s16 [-32768, 32767]
32
+ const clamped = Math.max(-1.0, Math.min(1.0, input[i]));
33
+ output[i] = Math.round(clamped * 32767);
34
+ }
35
+ return result;
36
+ }
37
+ /**
38
+ * Convert f32 interleaved to s32 interleaved
39
+ */
40
+ export function convertToS32Interleaved(data, samplesPerChannel, numChannels) {
41
+ const totalSamples = samplesPerChannel * numChannels;
42
+ const result = new Uint8Array(totalSamples * 4); // 4 bytes per s32 sample
43
+ const input = new Float32Array(data.buffer, data.byteOffset, data.byteLength / 4);
44
+ const output = new Int32Array(result.buffer);
45
+ for (let i = 0; i < totalSamples; i++) {
46
+ const clamped = Math.max(-1.0, Math.min(1.0, input[i]));
47
+ output[i] = Math.round(clamped * 2147483647);
48
+ }
49
+ return result;
50
+ }
51
+ /**
52
+ * Convert f32 interleaved to s16 planar
53
+ */
54
+ export function convertToS16Planar(data, samplesPerChannel, numChannels) {
55
+ const bytesPerSample = 2; // s16
56
+ const planeSize = samplesPerChannel * bytesPerSample;
57
+ const result = new Uint8Array(planeSize * numChannels);
58
+ const input = new Float32Array(data.buffer, data.byteOffset, data.byteLength / 4);
59
+ const output = new Int16Array(result.buffer);
60
+ for (let s = 0; s < samplesPerChannel; s++) {
61
+ for (let ch = 0; ch < numChannels; ch++) {
62
+ const srcIdx = s * numChannels + ch;
63
+ const dstIdx = ch * samplesPerChannel + s;
64
+ // Convert f32 [-1.0, 1.0] to s16 [-32768, 32767]
65
+ const clamped = Math.max(-1.0, Math.min(1.0, input[srcIdx]));
66
+ output[dstIdx] = Math.round(clamped * 32767);
67
+ }
68
+ }
69
+ return result;
70
+ }
71
+ /**
72
+ * Convert f32 interleaved to u8 interleaved
73
+ */
74
+ export function convertToU8Interleaved(data, samplesPerChannel, numChannels) {
75
+ const totalSamples = samplesPerChannel * numChannels;
76
+ const result = new Uint8Array(totalSamples);
77
+ const input = new Float32Array(data.buffer, data.byteOffset, data.byteLength / 4);
78
+ for (let i = 0; i < totalSamples; i++) {
79
+ const clamped = Math.max(-1.0, Math.min(1.0, input[i]));
80
+ const u8 = Math.round((clamped + 1) * 127.5); // map [-1,1] to [0,255]
81
+ result[i] = u8;
82
+ }
83
+ return result;
84
+ }
85
+ // ============================================================================
86
+ // Reverse conversions: various formats -> f32 interleaved
87
+ // ============================================================================
88
+ /**
89
+ * Convert f32 planar to f32 interleaved
90
+ */
91
+ export function convertFromPlanarToInterleaved(data, samplesPerChannel, numChannels) {
92
+ const bytesPerSample = 4; // f32
93
+ const totalSamples = samplesPerChannel * numChannels;
94
+ const result = new Uint8Array(totalSamples * bytesPerSample);
95
+ const input = new Float32Array(data.buffer, data.byteOffset, data.byteLength / 4);
96
+ const output = new Float32Array(result.buffer);
97
+ for (let s = 0; s < samplesPerChannel; s++) {
98
+ for (let ch = 0; ch < numChannels; ch++) {
99
+ const srcIdx = ch * samplesPerChannel + s;
100
+ const dstIdx = s * numChannels + ch;
101
+ output[dstIdx] = input[srcIdx];
102
+ }
103
+ }
104
+ return result;
105
+ }
106
+ /**
107
+ * Convert s16 interleaved to f32 interleaved
108
+ */
109
+ export function convertFromS16ToF32Interleaved(data, samplesPerChannel, numChannels) {
110
+ const totalSamples = samplesPerChannel * numChannels;
111
+ const result = new Uint8Array(totalSamples * 4); // 4 bytes per f32 sample
112
+ const input = new Int16Array(data.buffer, data.byteOffset, data.byteLength / 2);
113
+ const output = new Float32Array(result.buffer);
114
+ for (let i = 0; i < totalSamples; i++) {
115
+ // Convert s16 [-32768, 32767] to f32 [-1.0, 1.0]
116
+ output[i] = input[i] / 32768.0;
117
+ }
118
+ return result;
119
+ }
120
+ /**
121
+ * Convert s16 planar to f32 interleaved
122
+ */
123
+ export function convertFromS16PlanarToF32Interleaved(data, samplesPerChannel, numChannels) {
124
+ const totalSamples = samplesPerChannel * numChannels;
125
+ const result = new Uint8Array(totalSamples * 4); // 4 bytes per f32 sample
126
+ const input = new Int16Array(data.buffer, data.byteOffset, data.byteLength / 2);
127
+ const output = new Float32Array(result.buffer);
128
+ for (let s = 0; s < samplesPerChannel; s++) {
129
+ for (let ch = 0; ch < numChannels; ch++) {
130
+ const srcIdx = ch * samplesPerChannel + s;
131
+ const dstIdx = s * numChannels + ch;
132
+ // Convert s16 [-32768, 32767] to f32 [-1.0, 1.0]
133
+ output[dstIdx] = input[srcIdx] / 32768.0;
134
+ }
135
+ }
136
+ return result;
137
+ }
138
+ /**
139
+ * Convert s32 interleaved to f32 interleaved
140
+ */
141
+ export function convertFromS32ToF32Interleaved(data, samplesPerChannel, numChannels) {
142
+ const totalSamples = samplesPerChannel * numChannels;
143
+ const result = new Uint8Array(totalSamples * 4); // 4 bytes per f32 sample
144
+ const input = new Int32Array(data.buffer, data.byteOffset, data.byteLength / 4);
145
+ const output = new Float32Array(result.buffer);
146
+ for (let i = 0; i < totalSamples; i++) {
147
+ // Convert s32 to f32 [-1.0, 1.0]
148
+ output[i] = input[i] / 2147483648.0;
149
+ }
150
+ return result;
151
+ }
152
+ //# sourceMappingURL=sample-format-convert.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sample-format-convert.js","sourceRoot":"","sources":["../../../../../src/backends/node-av/audio/encoder/sample-format-convert.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Hardware capabilities configuration
3
+ */
4
+ import type { HardwareType, HardwareFormatCapabilities } from './types.js';
5
+ /**
6
+ * Known capabilities for each hardware type
7
+ * These are the theoretical capabilities - actual support depends on driver version
8
+ */
9
+ export declare const HARDWARE_CAPABILITIES: Record<HardwareType, HardwareFormatCapabilities>;
10
+ //# sourceMappingURL=capabilities.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"capabilities.d.ts","sourceRoot":"","sources":["../../../../src/backends/node-av/hardware-pipeline/capabilities.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,0BAA0B,EAAE,MAAM,YAAY,CAAC;AAE3E;;;GAGG;AACH,eAAO,MAAM,qBAAqB,EAAE,MAAM,CAAC,YAAY,EAAE,0BAA0B,CAoClF,CAAC"}
@@ -0,0 +1,45 @@
1
+ /**
2
+ * Hardware capabilities configuration
3
+ */
4
+ /**
5
+ * Known capabilities for each hardware type
6
+ * These are the theoretical capabilities - actual support depends on driver version
7
+ */
8
+ export const HARDWARE_CAPABILITIES = {
9
+ cuda: {
10
+ scaleFilter: 'scale_cuda',
11
+ gpuOutputFormats: ['nv12', 'yuv420p', 'p010le', 'yuv444p', 'bgra', 'rgba'],
12
+ supportsRgbOutput: true,
13
+ },
14
+ vaapi: {
15
+ scaleFilter: 'scale_vaapi',
16
+ gpuOutputFormats: ['nv12', 'p010'],
17
+ supportsRgbOutput: false,
18
+ },
19
+ qsv: {
20
+ scaleFilter: 'vpp_qsv', // vpp_qsv is more capable than scale_qsv
21
+ gpuOutputFormats: ['nv12', 'p010', 'bgra'], // bgra on some drivers
22
+ supportsRgbOutput: false, // Conservative - driver dependent
23
+ },
24
+ videotoolbox: {
25
+ scaleFilter: 'scale_vt',
26
+ gpuOutputFormats: ['nv12', 'p010', 'bgra'],
27
+ supportsRgbOutput: true,
28
+ },
29
+ drm: {
30
+ scaleFilter: '', // No GPU scale filter for DRM
31
+ gpuOutputFormats: ['nv12'],
32
+ supportsRgbOutput: false,
33
+ },
34
+ v4l2m2m: {
35
+ scaleFilter: '', // No GPU scale filter for V4L2
36
+ gpuOutputFormats: ['nv12', 'yuv420p'],
37
+ supportsRgbOutput: false,
38
+ },
39
+ software: {
40
+ scaleFilter: '',
41
+ gpuOutputFormats: [],
42
+ supportsRgbOutput: false,
43
+ },
44
+ };
45
+ //# sourceMappingURL=capabilities.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"capabilities.js","sourceRoot":"","sources":["../../../../src/backends/node-av/hardware-pipeline/capabilities.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH;;;GAGG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAqD;IACrF,IAAI,EAAE;QACJ,WAAW,EAAE,YAAY;QACzB,gBAAgB,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC;QAC1E,iBAAiB,EAAE,IAAI;KACxB;IACD,KAAK,EAAE;QACL,WAAW,EAAE,aAAa;QAC1B,gBAAgB,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;QAClC,iBAAiB,EAAE,KAAK;KACzB;IACD,GAAG,EAAE;QACH,WAAW,EAAE,SAAS,EAAG,yCAAyC;QAClE,gBAAgB,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAG,uBAAuB;QACpE,iBAAiB,EAAE,KAAK,EAAG,kCAAkC;KAC9D;IACD,YAAY,EAAE;QACZ,WAAW,EAAE,UAAU;QACvB,gBAAgB,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;QAC1C,iBAAiB,EAAE,IAAI;KACxB;IACD,GAAG,EAAE;QACH,WAAW,EAAE,EAAE,EAAG,8BAA8B;QAChD,gBAAgB,EAAE,CAAC,MAAM,CAAC;QAC1B,iBAAiB,EAAE,KAAK;KACzB;IACD,OAAO,EAAE;QACP,WAAW,EAAE,EAAE,EAAG,+BAA+B;QACjD,gBAAgB,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC;QACrC,iBAAiB,EAAE,KAAK;KACzB;IACD,QAAQ,EAAE;QACR,WAAW,EAAE,EAAE;QACf,gBAAgB,EAAE,EAAE;QACpB,iBAAiB,EAAE,KAAK;KACzB;CACF,CAAC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Hardware pipeline helper utilities
3
+ */
4
+ export type { HardwareType, HardwareFormatCapabilities } from './types.js';
5
+ export { HARDWARE_CAPABILITIES } from './capabilities.js';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/backends/node-av/hardware-pipeline/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,YAAY,EAAE,YAAY,EAAE,0BAA0B,EAAE,MAAM,YAAY,CAAC;AAC3E,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Hardware pipeline helper utilities
3
+ */
4
+ export { HARDWARE_CAPABILITIES } from './capabilities.js';
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/backends/node-av/hardware-pipeline/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Hardware pipeline type definitions
3
+ */
4
+ export type HardwareType = 'cuda' | 'vaapi' | 'qsv' | 'videotoolbox' | 'drm' | 'v4l2m2m' | 'software';
5
+ /**
6
+ * Hardware capabilities for format conversion
7
+ */
8
+ export interface HardwareFormatCapabilities {
9
+ scaleFilter: string;
10
+ gpuOutputFormats: string[];
11
+ supportsRgbOutput: boolean;
12
+ }
13
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/backends/node-av/hardware-pipeline/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,OAAO,GAAG,KAAK,GAAG,cAAc,GAAG,KAAK,GAAG,SAAS,GAAG,UAAU,CAAC;AAEtG;;GAEG;AACH,MAAM,WAAW,0BAA0B;IAEzC,WAAW,EAAE,MAAM,CAAC;IAEpB,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAE3B,iBAAiB,EAAE,OAAO,CAAC;CAC5B"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Hardware pipeline type definitions
3
+ */
4
+ export {};
5
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/backends/node-av/hardware-pipeline/types.ts"],"names":[],"mappings":"AAAA;;GAEG"}
@@ -0,0 +1,95 @@
1
+ /**
2
+ * NodeAvImageDecoder - Node-av based image decoder
3
+ *
4
+ * Decodes still images and animated images (GIF, APNG) using node-av
5
+ * native bindings (FFmpeg's libav* libraries).
6
+ *
7
+ * Note: Animated WebP is NOT fully supported due to FFmpeg's webp demuxer
8
+ * skipping ANIM/ANMF chunks. Consider using a dedicated WebP library for
9
+ * animated WebP support.
10
+ */
11
+ import { type DecodedImageFrame, type ImageDecoderConfig, probeImageDimensions } from './decoder/index.js';
12
+ export type { DecodedImageFrame, ImageDecoderConfig };
13
+ export { probeImageDimensions };
14
+ /**
15
+ * Decode images using node-av native bindings
16
+ */
17
+ export declare class NodeAvImageDecoder {
18
+ private decoder;
19
+ private demuxer;
20
+ private formatContext;
21
+ private stream;
22
+ private filter;
23
+ private config;
24
+ private frames;
25
+ private closed;
26
+ private static readonly DUMMY_TIME_BASE;
27
+ constructor(config: ImageDecoderConfig);
28
+ /**
29
+ * Decode all frames from the image data
30
+ */
31
+ decode(): Promise<DecodedImageFrame[]>;
32
+ /**
33
+ * Check if this format requires Demuxer for proper decoding
34
+ */
35
+ private usesDemuxer;
36
+ /**
37
+ * Get the codec ID for the MIME type
38
+ */
39
+ private getCodecId;
40
+ /**
41
+ * Decode animated images using Demuxer API
42
+ * This properly parses container formats like GIF and APNG
43
+ */
44
+ private decodeWithDemuxer;
45
+ /**
46
+ * Get the FFmpeg format string for the target output format
47
+ */
48
+ private getTargetFormat;
49
+ /**
50
+ * Convert a decoded frame to target format with specific timing
51
+ */
52
+ private convertFrameWithTiming;
53
+ /**
54
+ * Initialize the decoder with the given codec (for static images)
55
+ */
56
+ private initializeDecoder;
57
+ /**
58
+ * Decode static image data
59
+ */
60
+ private decodeData;
61
+ /**
62
+ * Send a packet to the decoder
63
+ */
64
+ private sendPacket;
65
+ /**
66
+ * Drain decoded frames from the decoder
67
+ */
68
+ private drainFrames;
69
+ /**
70
+ * Convert a decoded frame to target format (for static images)
71
+ */
72
+ private convertFrame;
73
+ /**
74
+ * Flush the decoder to get any remaining frames
75
+ */
76
+ private flush;
77
+ /**
78
+ * Clean up resources
79
+ */
80
+ private cleanup;
81
+ /**
82
+ * Close the decoder
83
+ */
84
+ close(): void;
85
+ /**
86
+ * Check if a MIME type is supported
87
+ */
88
+ static isTypeSupported(mimeType: string): boolean;
89
+ /**
90
+ * Check if animated decoding is supported for this type
91
+ * (GIF and APNG work, WebP does not due to FFmpeg limitations)
92
+ */
93
+ static isAnimatedTypeSupported(mimeType: string): boolean;
94
+ }
95
+ //# sourceMappingURL=NodeAvImageDecoder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NodeAvImageDecoder.d.ts","sourceRoot":"","sources":["../../../../src/backends/node-av/image/NodeAvImageDecoder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AASH,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EAIvB,oBAAoB,EACrB,MAAM,oBAAoB,CAAC;AAG5B,YAAY,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,CAAC;AACtD,OAAO,EAAE,oBAAoB,EAAE,CAAC;AAEhC;;GAEG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,OAAO,CAAwB;IACvC,OAAO,CAAC,OAAO,CAAwB;IACvC,OAAO,CAAC,aAAa,CAA8B;IACnD,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,MAAM,CAA0B;IACxC,OAAO,CAAC,MAAM,CAAqB;IACnC,OAAO,CAAC,MAAM,CAA2B;IACzC,OAAO,CAAC,MAAM,CAAS;IAGvB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAuB;gBAElD,MAAM,EAAE,kBAAkB;IAItC;;OAEG;IACG,MAAM,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC;IA2B5C;;OAEG;IACH,OAAO,CAAC,WAAW;IAInB;;OAEG;IACH,OAAO,CAAC,UAAU;IAIlB;;;OAGG;YACW,iBAAiB;IAkF/B;;OAEG;IACH,OAAO,CAAC,eAAe;IAUvB;;OAEG;YACW,sBAAsB;IAyEpC;;OAEG;YACW,iBAAiB;IAiB/B;;OAEG;YACW,UAAU;IASxB;;OAEG;YACW,UAAU;IAgBxB;;OAEG;YACW,WAAW;IAgBzB;;OAEG;YACW,YAAY;IAkE1B;;OAEG;YACW,KAAK;IAWnB;;OAEG;IACH,OAAO,CAAC,OAAO;IAWf;;OAEG;IACH,KAAK,IAAI,IAAI;IAOb;;OAEG;IACH,MAAM,CAAC,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAIjD;;;OAGG;IACH,MAAM,CAAC,uBAAuB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;CAG1D"}