webcodecs-node 0.2.2

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 (455) hide show
  1. package/LICENSE +656 -0
  2. package/README.md +607 -0
  3. package/dist/AudioData.d.ts +6 -0
  4. package/dist/AudioData.d.ts.map +1 -0
  5. package/dist/AudioData.js +6 -0
  6. package/dist/AudioData.js.map +1 -0
  7. package/dist/AudioDecoder.d.ts +6 -0
  8. package/dist/AudioDecoder.d.ts.map +1 -0
  9. package/dist/AudioDecoder.js +6 -0
  10. package/dist/AudioDecoder.js.map +1 -0
  11. package/dist/AudioEncoder.d.ts +6 -0
  12. package/dist/AudioEncoder.d.ts.map +1 -0
  13. package/dist/AudioEncoder.js +6 -0
  14. package/dist/AudioEncoder.js.map +1 -0
  15. package/dist/EncodedAudioChunk.d.ts +6 -0
  16. package/dist/EncodedAudioChunk.d.ts.map +1 -0
  17. package/dist/EncodedAudioChunk.js +6 -0
  18. package/dist/EncodedAudioChunk.js.map +1 -0
  19. package/dist/EncodedVideoChunk.d.ts +6 -0
  20. package/dist/EncodedVideoChunk.d.ts.map +1 -0
  21. package/dist/EncodedVideoChunk.js +6 -0
  22. package/dist/EncodedVideoChunk.js.map +1 -0
  23. package/dist/FFmpegProcess.d.ts +6 -0
  24. package/dist/FFmpegProcess.d.ts.map +1 -0
  25. package/dist/FFmpegProcess.js +6 -0
  26. package/dist/FFmpegProcess.js.map +1 -0
  27. package/dist/HardwareAcceleration.d.ts +6 -0
  28. package/dist/HardwareAcceleration.d.ts.map +1 -0
  29. package/dist/HardwareAcceleration.js +6 -0
  30. package/dist/HardwareAcceleration.js.map +1 -0
  31. package/dist/ImageDecoder.d.ts +6 -0
  32. package/dist/ImageDecoder.d.ts.map +1 -0
  33. package/dist/ImageDecoder.js +6 -0
  34. package/dist/ImageDecoder.js.map +1 -0
  35. package/dist/Logger.d.ts +6 -0
  36. package/dist/Logger.d.ts.map +1 -0
  37. package/dist/Logger.js +6 -0
  38. package/dist/Logger.js.map +1 -0
  39. package/dist/MediaCapabilities.d.ts +9 -0
  40. package/dist/MediaCapabilities.d.ts.map +1 -0
  41. package/dist/MediaCapabilities.js +8 -0
  42. package/dist/MediaCapabilities.js.map +1 -0
  43. package/dist/VideoDecoder.d.ts +6 -0
  44. package/dist/VideoDecoder.d.ts.map +1 -0
  45. package/dist/VideoDecoder.js +6 -0
  46. package/dist/VideoDecoder.js.map +1 -0
  47. package/dist/VideoEncoder.d.ts +6 -0
  48. package/dist/VideoEncoder.d.ts.map +1 -0
  49. package/dist/VideoEncoder.js +6 -0
  50. package/dist/VideoEncoder.js.map +1 -0
  51. package/dist/VideoFrame.d.ts +10 -0
  52. package/dist/VideoFrame.d.ts.map +1 -0
  53. package/dist/VideoFrame.js +9 -0
  54. package/dist/VideoFrame.js.map +1 -0
  55. package/dist/__tests__/AudioData.test.d.ts +5 -0
  56. package/dist/__tests__/AudioData.test.d.ts.map +1 -0
  57. package/dist/__tests__/AudioData.test.js +179 -0
  58. package/dist/__tests__/AudioData.test.js.map +1 -0
  59. package/dist/__tests__/AudioDecoder.test.d.ts +5 -0
  60. package/dist/__tests__/AudioDecoder.test.d.ts.map +1 -0
  61. package/dist/__tests__/AudioDecoder.test.js +733 -0
  62. package/dist/__tests__/AudioDecoder.test.js.map +1 -0
  63. package/dist/__tests__/AudioEncoder.test.d.ts +5 -0
  64. package/dist/__tests__/AudioEncoder.test.d.ts.map +1 -0
  65. package/dist/__tests__/AudioEncoder.test.js +247 -0
  66. package/dist/__tests__/AudioEncoder.test.js.map +1 -0
  67. package/dist/__tests__/EncodedChunks.test.d.ts +5 -0
  68. package/dist/__tests__/EncodedChunks.test.d.ts.map +1 -0
  69. package/dist/__tests__/EncodedChunks.test.js +99 -0
  70. package/dist/__tests__/EncodedChunks.test.js.map +1 -0
  71. package/dist/__tests__/HardwareAcceleration.test.d.ts +5 -0
  72. package/dist/__tests__/HardwareAcceleration.test.d.ts.map +1 -0
  73. package/dist/__tests__/HardwareAcceleration.test.js +84 -0
  74. package/dist/__tests__/HardwareAcceleration.test.js.map +1 -0
  75. package/dist/__tests__/ImageDecoder.test.d.ts +5 -0
  76. package/dist/__tests__/ImageDecoder.test.d.ts.map +1 -0
  77. package/dist/__tests__/ImageDecoder.test.js +587 -0
  78. package/dist/__tests__/ImageDecoder.test.js.map +1 -0
  79. package/dist/__tests__/MediaCapabilities.test.d.ts +5 -0
  80. package/dist/__tests__/MediaCapabilities.test.d.ts.map +1 -0
  81. package/dist/__tests__/MediaCapabilities.test.js +346 -0
  82. package/dist/__tests__/MediaCapabilities.test.js.map +1 -0
  83. package/dist/__tests__/VideoDecoder.test.d.ts +5 -0
  84. package/dist/__tests__/VideoDecoder.test.d.ts.map +1 -0
  85. package/dist/__tests__/VideoDecoder.test.js +675 -0
  86. package/dist/__tests__/VideoDecoder.test.js.map +1 -0
  87. package/dist/__tests__/VideoEncoder.test.d.ts +5 -0
  88. package/dist/__tests__/VideoEncoder.test.d.ts.map +1 -0
  89. package/dist/__tests__/VideoEncoder.test.js +468 -0
  90. package/dist/__tests__/VideoEncoder.test.js.map +1 -0
  91. package/dist/__tests__/VideoFrame.test.d.ts +5 -0
  92. package/dist/__tests__/VideoFrame.test.d.ts.map +1 -0
  93. package/dist/__tests__/VideoFrame.test.js +243 -0
  94. package/dist/__tests__/VideoFrame.test.js.map +1 -0
  95. package/dist/__tests__/aac-utils.test.d.ts +2 -0
  96. package/dist/__tests__/aac-utils.test.d.ts.map +1 -0
  97. package/dist/__tests__/aac-utils.test.js +37 -0
  98. package/dist/__tests__/aac-utils.test.js.map +1 -0
  99. package/dist/__tests__/avc-utils.test.d.ts +2 -0
  100. package/dist/__tests__/avc-utils.test.d.ts.map +1 -0
  101. package/dist/__tests__/avc-utils.test.js +63 -0
  102. package/dist/__tests__/avc-utils.test.js.map +1 -0
  103. package/dist/__tests__/hevc-utils.test.d.ts +2 -0
  104. package/dist/__tests__/hevc-utils.test.d.ts.map +1 -0
  105. package/dist/__tests__/hevc-utils.test.js +78 -0
  106. package/dist/__tests__/hevc-utils.test.js.map +1 -0
  107. package/dist/capabilities/MediaCapabilities.d.ts +78 -0
  108. package/dist/capabilities/MediaCapabilities.d.ts.map +1 -0
  109. package/dist/capabilities/MediaCapabilities.js +276 -0
  110. package/dist/capabilities/MediaCapabilities.js.map +1 -0
  111. package/dist/capabilities/codecs.d.ts +72 -0
  112. package/dist/capabilities/codecs.d.ts.map +1 -0
  113. package/dist/capabilities/codecs.js +153 -0
  114. package/dist/capabilities/codecs.js.map +1 -0
  115. package/dist/capabilities/index.d.ts +7 -0
  116. package/dist/capabilities/index.d.ts.map +1 -0
  117. package/dist/capabilities/index.js +8 -0
  118. package/dist/capabilities/index.js.map +1 -0
  119. package/dist/capabilities/types.d.ts +77 -0
  120. package/dist/capabilities/types.d.ts.map +1 -0
  121. package/dist/capabilities/types.js +5 -0
  122. package/dist/capabilities/types.js.map +1 -0
  123. package/dist/core/AudioData.d.ts +36 -0
  124. package/dist/core/AudioData.d.ts.map +1 -0
  125. package/dist/core/AudioData.js +229 -0
  126. package/dist/core/AudioData.js.map +1 -0
  127. package/dist/core/EncodedAudioChunk.d.ts +26 -0
  128. package/dist/core/EncodedAudioChunk.d.ts.map +1 -0
  129. package/dist/core/EncodedAudioChunk.js +58 -0
  130. package/dist/core/EncodedAudioChunk.js.map +1 -0
  131. package/dist/core/EncodedVideoChunk.d.ts +23 -0
  132. package/dist/core/EncodedVideoChunk.d.ts.map +1 -0
  133. package/dist/core/EncodedVideoChunk.js +55 -0
  134. package/dist/core/EncodedVideoChunk.js.map +1 -0
  135. package/dist/core/VideoFrame.d.ts +61 -0
  136. package/dist/core/VideoFrame.d.ts.map +1 -0
  137. package/dist/core/VideoFrame.js +385 -0
  138. package/dist/core/VideoFrame.js.map +1 -0
  139. package/dist/core/index.d.ts +8 -0
  140. package/dist/core/index.d.ts.map +1 -0
  141. package/dist/core/index.js +8 -0
  142. package/dist/core/index.js.map +1 -0
  143. package/dist/debug-h264.d.ts +5 -0
  144. package/dist/debug-h264.d.ts.map +1 -0
  145. package/dist/debug-h264.js +103 -0
  146. package/dist/debug-h264.js.map +1 -0
  147. package/dist/decoders/AudioDecoder.d.ts +57 -0
  148. package/dist/decoders/AudioDecoder.d.ts.map +1 -0
  149. package/dist/decoders/AudioDecoder.js +333 -0
  150. package/dist/decoders/AudioDecoder.js.map +1 -0
  151. package/dist/decoders/ImageDecoder.d.ts +111 -0
  152. package/dist/decoders/ImageDecoder.d.ts.map +1 -0
  153. package/dist/decoders/ImageDecoder.js +686 -0
  154. package/dist/decoders/ImageDecoder.js.map +1 -0
  155. package/dist/decoders/VideoDecoder.d.ts +70 -0
  156. package/dist/decoders/VideoDecoder.d.ts.map +1 -0
  157. package/dist/decoders/VideoDecoder.js +410 -0
  158. package/dist/decoders/VideoDecoder.js.map +1 -0
  159. package/dist/decoders/index.d.ts +8 -0
  160. package/dist/decoders/index.d.ts.map +1 -0
  161. package/dist/decoders/index.js +7 -0
  162. package/dist/decoders/index.js.map +1 -0
  163. package/dist/demos/demo-audio-opus.d.ts +5 -0
  164. package/dist/demos/demo-audio-opus.d.ts.map +1 -0
  165. package/dist/demos/demo-audio-opus.js +107 -0
  166. package/dist/demos/demo-audio-opus.js.map +1 -0
  167. package/dist/demos/demo-audio.d.ts +10 -0
  168. package/dist/demos/demo-audio.d.ts.map +1 -0
  169. package/dist/demos/demo-audio.js +135 -0
  170. package/dist/demos/demo-audio.js.map +1 -0
  171. package/dist/demos/demo-conversion.d.ts +13 -0
  172. package/dist/demos/demo-conversion.d.ts.map +1 -0
  173. package/dist/demos/demo-conversion.js +301 -0
  174. package/dist/demos/demo-conversion.js.map +1 -0
  175. package/dist/demos/demo-h264.d.ts +7 -0
  176. package/dist/demos/demo-h264.d.ts.map +1 -0
  177. package/dist/demos/demo-h264.js +134 -0
  178. package/dist/demos/demo-h264.js.map +1 -0
  179. package/dist/demos/demo-hwaccel-conversion.d.ts +8 -0
  180. package/dist/demos/demo-hwaccel-conversion.d.ts.map +1 -0
  181. package/dist/demos/demo-hwaccel-conversion.js +161 -0
  182. package/dist/demos/demo-hwaccel-conversion.js.map +1 -0
  183. package/dist/demos/demo-hwaccel.d.ts +7 -0
  184. package/dist/demos/demo-hwaccel.d.ts.map +1 -0
  185. package/dist/demos/demo-hwaccel.js +51 -0
  186. package/dist/demos/demo-hwaccel.js.map +1 -0
  187. package/dist/demos/demo-image.d.ts +12 -0
  188. package/dist/demos/demo-image.d.ts.map +1 -0
  189. package/dist/demos/demo-image.js +178 -0
  190. package/dist/demos/demo-image.js.map +1 -0
  191. package/dist/demos/demo-mediabunny.d.ts +7 -0
  192. package/dist/demos/demo-mediabunny.d.ts.map +1 -0
  193. package/dist/demos/demo-mediabunny.js +78 -0
  194. package/dist/demos/demo-mediabunny.js.map +1 -0
  195. package/dist/demos/demo-pipeline.d.ts +8 -0
  196. package/dist/demos/demo-pipeline.d.ts.map +1 -0
  197. package/dist/demos/demo-pipeline.js +83 -0
  198. package/dist/demos/demo-pipeline.js.map +1 -0
  199. package/dist/demos/demo-samples.d.ts +9 -0
  200. package/dist/demos/demo-samples.d.ts.map +1 -0
  201. package/dist/demos/demo-samples.js +413 -0
  202. package/dist/demos/demo-samples.js.map +1 -0
  203. package/dist/demos/demo-streaming.d.ts +8 -0
  204. package/dist/demos/demo-streaming.d.ts.map +1 -0
  205. package/dist/demos/demo-streaming.js +299 -0
  206. package/dist/demos/demo-streaming.js.map +1 -0
  207. package/dist/demos/demo-webcodecs.d.ts +8 -0
  208. package/dist/demos/demo-webcodecs.d.ts.map +1 -0
  209. package/dist/demos/demo-webcodecs.js +316 -0
  210. package/dist/demos/demo-webcodecs.js.map +1 -0
  211. package/dist/demos/demo.d.ts +10 -0
  212. package/dist/demos/demo.d.ts.map +1 -0
  213. package/dist/demos/demo.js +123 -0
  214. package/dist/demos/demo.js.map +1 -0
  215. package/dist/encoders/AudioEncoder.d.ts +69 -0
  216. package/dist/encoders/AudioEncoder.d.ts.map +1 -0
  217. package/dist/encoders/AudioEncoder.js +425 -0
  218. package/dist/encoders/AudioEncoder.js.map +1 -0
  219. package/dist/encoders/VideoEncoder.d.ts +80 -0
  220. package/dist/encoders/VideoEncoder.d.ts.map +1 -0
  221. package/dist/encoders/VideoEncoder.js +386 -0
  222. package/dist/encoders/VideoEncoder.js.map +1 -0
  223. package/dist/encoders/codecs/av1.d.ts +31 -0
  224. package/dist/encoders/codecs/av1.d.ts.map +1 -0
  225. package/dist/encoders/codecs/av1.js +66 -0
  226. package/dist/encoders/codecs/av1.js.map +1 -0
  227. package/dist/encoders/codecs/h264.d.ts +28 -0
  228. package/dist/encoders/codecs/h264.d.ts.map +1 -0
  229. package/dist/encoders/codecs/h264.js +95 -0
  230. package/dist/encoders/codecs/h264.js.map +1 -0
  231. package/dist/encoders/codecs/hevc.d.ts +28 -0
  232. package/dist/encoders/codecs/hevc.d.ts.map +1 -0
  233. package/dist/encoders/codecs/hevc.js +73 -0
  234. package/dist/encoders/codecs/hevc.js.map +1 -0
  235. package/dist/encoders/codecs/index.d.ts +19 -0
  236. package/dist/encoders/codecs/index.d.ts.map +1 -0
  237. package/dist/encoders/codecs/index.js +60 -0
  238. package/dist/encoders/codecs/index.js.map +1 -0
  239. package/dist/encoders/codecs/vp9.d.ts +29 -0
  240. package/dist/encoders/codecs/vp9.d.ts.map +1 -0
  241. package/dist/encoders/codecs/vp9.js +58 -0
  242. package/dist/encoders/codecs/vp9.js.map +1 -0
  243. package/dist/encoders/index.d.ts +8 -0
  244. package/dist/encoders/index.d.ts.map +1 -0
  245. package/dist/encoders/index.js +8 -0
  246. package/dist/encoders/index.js.map +1 -0
  247. package/dist/ffmpeg/FFmpegProcess.d.ts +111 -0
  248. package/dist/ffmpeg/FFmpegProcess.d.ts.map +1 -0
  249. package/dist/ffmpeg/FFmpegProcess.js +543 -0
  250. package/dist/ffmpeg/FFmpegProcess.js.map +1 -0
  251. package/dist/ffmpeg/audio-codecs.d.ts +59 -0
  252. package/dist/ffmpeg/audio-codecs.d.ts.map +1 -0
  253. package/dist/ffmpeg/audio-codecs.js +99 -0
  254. package/dist/ffmpeg/audio-codecs.js.map +1 -0
  255. package/dist/ffmpeg/formats.d.ts +42 -0
  256. package/dist/ffmpeg/formats.d.ts.map +1 -0
  257. package/dist/ffmpeg/formats.js +147 -0
  258. package/dist/ffmpeg/formats.js.map +1 -0
  259. package/dist/ffmpeg/index.d.ts +9 -0
  260. package/dist/ffmpeg/index.d.ts.map +1 -0
  261. package/dist/ffmpeg/index.js +13 -0
  262. package/dist/ffmpeg/index.js.map +1 -0
  263. package/dist/ffmpeg/parsers/annexb.d.ts +88 -0
  264. package/dist/ffmpeg/parsers/annexb.d.ts.map +1 -0
  265. package/dist/ffmpeg/parsers/annexb.js +201 -0
  266. package/dist/ffmpeg/parsers/annexb.js.map +1 -0
  267. package/dist/ffmpeg/parsers/index.d.ts +6 -0
  268. package/dist/ffmpeg/parsers/index.d.ts.map +1 -0
  269. package/dist/ffmpeg/parsers/index.js +8 -0
  270. package/dist/ffmpeg/parsers/index.js.map +1 -0
  271. package/dist/ffmpeg/parsers/ivf.d.ts +54 -0
  272. package/dist/ffmpeg/parsers/ivf.d.ts.map +1 -0
  273. package/dist/ffmpeg/parsers/ivf.js +109 -0
  274. package/dist/ffmpeg/parsers/ivf.js.map +1 -0
  275. package/dist/ffmpeg/types.d.ts +85 -0
  276. package/dist/ffmpeg/types.d.ts.map +1 -0
  277. package/dist/ffmpeg/types.js +8 -0
  278. package/dist/ffmpeg/types.js.map +1 -0
  279. package/dist/formats/audio-formats.d.ts +61 -0
  280. package/dist/formats/audio-formats.d.ts.map +1 -0
  281. package/dist/formats/audio-formats.js +113 -0
  282. package/dist/formats/audio-formats.js.map +1 -0
  283. package/dist/formats/color-space.d.ts +35 -0
  284. package/dist/formats/color-space.d.ts.map +1 -0
  285. package/dist/formats/color-space.js +62 -0
  286. package/dist/formats/color-space.js.map +1 -0
  287. package/dist/formats/conversions/frame-converter.d.ts +42 -0
  288. package/dist/formats/conversions/frame-converter.d.ts.map +1 -0
  289. package/dist/formats/conversions/frame-converter.js +244 -0
  290. package/dist/formats/conversions/frame-converter.js.map +1 -0
  291. package/dist/formats/conversions/index.d.ts +8 -0
  292. package/dist/formats/conversions/index.d.ts.map +1 -0
  293. package/dist/formats/conversions/index.js +10 -0
  294. package/dist/formats/conversions/index.js.map +1 -0
  295. package/dist/formats/index.d.ts +9 -0
  296. package/dist/formats/index.d.ts.map +1 -0
  297. package/dist/formats/index.js +14 -0
  298. package/dist/formats/index.js.map +1 -0
  299. package/dist/formats/parsers/index.d.ts +5 -0
  300. package/dist/formats/parsers/index.d.ts.map +1 -0
  301. package/dist/formats/parsers/index.js +5 -0
  302. package/dist/formats/parsers/index.js.map +1 -0
  303. package/dist/formats/parsers/webp.d.ts +16 -0
  304. package/dist/formats/parsers/webp.d.ts.map +1 -0
  305. package/dist/formats/parsers/webp.js +116 -0
  306. package/dist/formats/parsers/webp.js.map +1 -0
  307. package/dist/formats/pixel-formats.d.ts +41 -0
  308. package/dist/formats/pixel-formats.d.ts.map +1 -0
  309. package/dist/formats/pixel-formats.js +113 -0
  310. package/dist/formats/pixel-formats.js.map +1 -0
  311. package/dist/hardware/HardwareAcceleration.d.ts +6 -0
  312. package/dist/hardware/HardwareAcceleration.d.ts.map +1 -0
  313. package/dist/hardware/HardwareAcceleration.js +6 -0
  314. package/dist/hardware/HardwareAcceleration.js.map +1 -0
  315. package/dist/hardware/decoder-args.d.ts +25 -0
  316. package/dist/hardware/decoder-args.d.ts.map +1 -0
  317. package/dist/hardware/decoder-args.js +84 -0
  318. package/dist/hardware/decoder-args.js.map +1 -0
  319. package/dist/hardware/detection.d.ts +39 -0
  320. package/dist/hardware/detection.d.ts.map +1 -0
  321. package/dist/hardware/detection.js +178 -0
  322. package/dist/hardware/detection.js.map +1 -0
  323. package/dist/hardware/encoder-args.d.ts +38 -0
  324. package/dist/hardware/encoder-args.d.ts.map +1 -0
  325. package/dist/hardware/encoder-args.js +177 -0
  326. package/dist/hardware/encoder-args.js.map +1 -0
  327. package/dist/hardware/index.d.ts +12 -0
  328. package/dist/hardware/index.d.ts.map +1 -0
  329. package/dist/hardware/index.js +14 -0
  330. package/dist/hardware/index.js.map +1 -0
  331. package/dist/hardware/types.d.ts +29 -0
  332. package/dist/hardware/types.d.ts.map +1 -0
  333. package/dist/hardware/types.js +58 -0
  334. package/dist/hardware/types.js.map +1 -0
  335. package/dist/index.d.ts +44 -0
  336. package/dist/index.d.ts.map +1 -0
  337. package/dist/index.js +37 -0
  338. package/dist/index.js.map +1 -0
  339. package/dist/mediabunny/FFmpegAudioDecoder.d.ts +37 -0
  340. package/dist/mediabunny/FFmpegAudioDecoder.d.ts.map +1 -0
  341. package/dist/mediabunny/FFmpegAudioDecoder.js +254 -0
  342. package/dist/mediabunny/FFmpegAudioDecoder.js.map +1 -0
  343. package/dist/mediabunny/FFmpegAudioEncoder.d.ts +77 -0
  344. package/dist/mediabunny/FFmpegAudioEncoder.d.ts.map +1 -0
  345. package/dist/mediabunny/FFmpegAudioEncoder.js +484 -0
  346. package/dist/mediabunny/FFmpegAudioEncoder.js.map +1 -0
  347. package/dist/mediabunny/FFmpegVideoDecoder.d.ts +58 -0
  348. package/dist/mediabunny/FFmpegVideoDecoder.d.ts.map +1 -0
  349. package/dist/mediabunny/FFmpegVideoDecoder.js +366 -0
  350. package/dist/mediabunny/FFmpegVideoDecoder.js.map +1 -0
  351. package/dist/mediabunny/FFmpegVideoEncoder.d.ts +77 -0
  352. package/dist/mediabunny/FFmpegVideoEncoder.d.ts.map +1 -0
  353. package/dist/mediabunny/FFmpegVideoEncoder.js +551 -0
  354. package/dist/mediabunny/FFmpegVideoEncoder.js.map +1 -0
  355. package/dist/mediabunny/index.d.ts +21 -0
  356. package/dist/mediabunny/index.d.ts.map +1 -0
  357. package/dist/mediabunny/index.js +33 -0
  358. package/dist/mediabunny/index.js.map +1 -0
  359. package/dist/polyfill.d.ts +27 -0
  360. package/dist/polyfill.d.ts.map +1 -0
  361. package/dist/polyfill.js +78 -0
  362. package/dist/polyfill.js.map +1 -0
  363. package/dist/polyfills/CanvasRenderingContext2DPolyfill.d.ts +72 -0
  364. package/dist/polyfills/CanvasRenderingContext2DPolyfill.d.ts.map +1 -0
  365. package/dist/polyfills/CanvasRenderingContext2DPolyfill.js +293 -0
  366. package/dist/polyfills/CanvasRenderingContext2DPolyfill.js.map +1 -0
  367. package/dist/polyfills/ImageDataPolyfill.d.ts +12 -0
  368. package/dist/polyfills/ImageDataPolyfill.d.ts.map +1 -0
  369. package/dist/polyfills/ImageDataPolyfill.js +22 -0
  370. package/dist/polyfills/ImageDataPolyfill.js.map +1 -0
  371. package/dist/polyfills/OffscreenCanvas.d.ts +15 -0
  372. package/dist/polyfills/OffscreenCanvas.d.ts.map +1 -0
  373. package/dist/polyfills/OffscreenCanvas.js +35 -0
  374. package/dist/polyfills/OffscreenCanvas.js.map +1 -0
  375. package/dist/polyfills/OffscreenCanvasPolyfill.d.ts +16 -0
  376. package/dist/polyfills/OffscreenCanvasPolyfill.d.ts.map +1 -0
  377. package/dist/polyfills/OffscreenCanvasPolyfill.js +46 -0
  378. package/dist/polyfills/OffscreenCanvasPolyfill.js.map +1 -0
  379. package/dist/polyfills/VideoFramePolyfill.d.ts +44 -0
  380. package/dist/polyfills/VideoFramePolyfill.d.ts.map +1 -0
  381. package/dist/polyfills/VideoFramePolyfill.js +98 -0
  382. package/dist/polyfills/VideoFramePolyfill.js.map +1 -0
  383. package/dist/tools/generate-capabilities-profile.d.ts +2 -0
  384. package/dist/tools/generate-capabilities-profile.d.ts.map +1 -0
  385. package/dist/tools/generate-capabilities-profile.js +63 -0
  386. package/dist/tools/generate-capabilities-profile.js.map +1 -0
  387. package/dist/types/audio.d.ts +26 -0
  388. package/dist/types/audio.d.ts.map +1 -0
  389. package/dist/types/audio.js +5 -0
  390. package/dist/types/audio.js.map +1 -0
  391. package/dist/types/common.d.ts +68 -0
  392. package/dist/types/common.d.ts.map +1 -0
  393. package/dist/types/common.js +70 -0
  394. package/dist/types/common.js.map +1 -0
  395. package/dist/types/geometry.d.ts +35 -0
  396. package/dist/types/geometry.d.ts.map +1 -0
  397. package/dist/types/geometry.js +34 -0
  398. package/dist/types/geometry.js.map +1 -0
  399. package/dist/types/index.d.ts +8 -0
  400. package/dist/types/index.d.ts.map +1 -0
  401. package/dist/types/index.js +8 -0
  402. package/dist/types/index.js.map +1 -0
  403. package/dist/types/video.d.ts +43 -0
  404. package/dist/types/video.d.ts.map +1 -0
  405. package/dist/types/video.js +5 -0
  406. package/dist/types/video.js.map +1 -0
  407. package/dist/types.d.ts +6 -0
  408. package/dist/types.d.ts.map +1 -0
  409. package/dist/types.js +6 -0
  410. package/dist/types.js.map +1 -0
  411. package/dist/utils/aac.d.ts +26 -0
  412. package/dist/utils/aac.d.ts.map +1 -0
  413. package/dist/utils/aac.js +129 -0
  414. package/dist/utils/aac.js.map +1 -0
  415. package/dist/utils/avc.d.ts +39 -0
  416. package/dist/utils/avc.d.ts.map +1 -0
  417. package/dist/utils/avc.js +225 -0
  418. package/dist/utils/avc.js.map +1 -0
  419. package/dist/utils/buffer.d.ts +25 -0
  420. package/dist/utils/buffer.d.ts.map +1 -0
  421. package/dist/utils/buffer.js +73 -0
  422. package/dist/utils/buffer.js.map +1 -0
  423. package/dist/utils/hevc.d.ts +27 -0
  424. package/dist/utils/hevc.d.ts.map +1 -0
  425. package/dist/utils/hevc.js +239 -0
  426. package/dist/utils/hevc.js.map +1 -0
  427. package/dist/utils/index.d.ts +11 -0
  428. package/dist/utils/index.d.ts.map +1 -0
  429. package/dist/utils/index.js +16 -0
  430. package/dist/utils/index.js.map +1 -0
  431. package/dist/utils/logger.d.ts +55 -0
  432. package/dist/utils/logger.d.ts.map +1 -0
  433. package/dist/utils/logger.js +110 -0
  434. package/dist/utils/logger.js.map +1 -0
  435. package/dist/utils/type-guards.d.ts +50 -0
  436. package/dist/utils/type-guards.d.ts.map +1 -0
  437. package/dist/utils/type-guards.js +49 -0
  438. package/dist/utils/type-guards.js.map +1 -0
  439. package/dist/utils/validation.d.ts +32 -0
  440. package/dist/utils/validation.d.ts.map +1 -0
  441. package/dist/utils/validation.js +66 -0
  442. package/dist/utils/validation.js.map +1 -0
  443. package/docs/api.md +506 -0
  444. package/docs/codecs.md +382 -0
  445. package/docs/configuration.md +442 -0
  446. package/examples/README.md +100 -0
  447. package/examples/audio-encoding.ts +85 -0
  448. package/examples/hardware-decoding.ts +245 -0
  449. package/examples/hardware-encoding.ts +231 -0
  450. package/examples/image-decoding.ts +145 -0
  451. package/examples/streaming.ts +151 -0
  452. package/examples/transparent-video.ts +162 -0
  453. package/examples/video-decoding.ts +107 -0
  454. package/examples/video-encoding.ts +93 -0
  455. package/package.json +105 -0
@@ -0,0 +1,44 @@
1
+ /**
2
+ * VideoFrame polyfill for Node.js
3
+ * Minimal implementation sufficient for Mediabunny's needs
4
+ */
5
+ import type { OffscreenCanvasPolyfill } from './OffscreenCanvasPolyfill.js';
6
+ export declare class VideoFramePolyfill {
7
+ readonly format: string;
8
+ readonly codedWidth: number;
9
+ readonly codedHeight: number;
10
+ readonly displayWidth: number;
11
+ readonly displayHeight: number;
12
+ readonly timestamp: number;
13
+ readonly duration: number | null;
14
+ readonly colorSpace: {
15
+ primaries: string;
16
+ transfer: string;
17
+ matrix: string;
18
+ fullRange: boolean;
19
+ };
20
+ private _data;
21
+ private _closed;
22
+ constructor(data: Uint8Array | Uint8ClampedArray | OffscreenCanvasPolyfill | unknown, init: {
23
+ format?: string;
24
+ codedWidth?: number;
25
+ codedHeight?: number;
26
+ timestamp: number;
27
+ duration?: number;
28
+ colorSpace?: {
29
+ primaries?: string;
30
+ transfer?: string;
31
+ matrix?: string;
32
+ fullRange?: boolean;
33
+ };
34
+ });
35
+ allocationSize(): number;
36
+ copyTo(destination: Uint8Array | Uint8ClampedArray): Promise<Array<{
37
+ offset: number;
38
+ stride: number;
39
+ }>>;
40
+ clone(): VideoFramePolyfill;
41
+ close(): void;
42
+ get _rawData(): Uint8Array;
43
+ }
44
+ //# sourceMappingURL=VideoFramePolyfill.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VideoFramePolyfill.d.ts","sourceRoot":"","sources":["../../src/polyfills/VideoFramePolyfill.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAE5E,qBAAa,kBAAkB;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,QAAQ,CAAC,UAAU,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,OAAO,CAAA;KAAE,CAAC;IACjG,OAAO,CAAC,KAAK,CAAa;IAC1B,OAAO,CAAC,OAAO,CAAkB;gBAG/B,IAAI,EAAE,UAAU,GAAG,iBAAiB,GAAG,uBAAuB,GAAG,OAAO,EACxE,IAAI,EAAE;QACJ,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,UAAU,CAAC,EAAE;YAAE,SAAS,CAAC,EAAE,MAAM,CAAC;YAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;YAAC,MAAM,CAAC,EAAE,MAAM,CAAC;YAAC,SAAS,CAAC,EAAE,OAAO,CAAA;SAAE,CAAC;KAC9F;IAkDH,cAAc,IAAI,MAAM;IAIlB,MAAM,CAAC,WAAW,EAAE,UAAU,GAAG,iBAAiB,GAAG,OAAO,CAAC,KAAK,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAQ7G,KAAK,IAAI,kBAAkB;IAc3B,KAAK,IAAI,IAAI;IAKb,IAAI,QAAQ,IAAI,UAAU,CAEzB;CACF"}
@@ -0,0 +1,98 @@
1
+ /**
2
+ * VideoFrame polyfill for Node.js
3
+ * Minimal implementation sufficient for Mediabunny's needs
4
+ */
5
+ export class VideoFramePolyfill {
6
+ format;
7
+ codedWidth;
8
+ codedHeight;
9
+ displayWidth;
10
+ displayHeight;
11
+ timestamp;
12
+ duration;
13
+ colorSpace;
14
+ _data;
15
+ _closed = false;
16
+ constructor(data, init) {
17
+ // Handle OffscreenCanvas input
18
+ if (data && typeof data === 'object' && '_getImageData' in data && typeof data._getImageData === 'function') {
19
+ const canvas = data;
20
+ this._data = new Uint8Array(canvas._getImageData());
21
+ this.format = 'RGBA';
22
+ this.codedWidth = canvas.width;
23
+ this.codedHeight = canvas.height;
24
+ }
25
+ else if (data instanceof Uint8Array || data instanceof Uint8ClampedArray) {
26
+ // Handle raw data input
27
+ this._data = new Uint8Array(data);
28
+ this.format = init.format ?? 'RGBA';
29
+ this.codedWidth = init.codedWidth ?? 0;
30
+ this.codedHeight = init.codedHeight ?? 0;
31
+ }
32
+ else {
33
+ // Try to extract data from canvas-like objects
34
+ const obj = data;
35
+ if (obj && obj.width !== undefined && obj.height !== undefined) {
36
+ const width = obj.width;
37
+ const height = obj.height;
38
+ // Try to get image data
39
+ if (typeof obj._getImageData === 'function') {
40
+ this._data = new Uint8Array(obj._getImageData());
41
+ }
42
+ else {
43
+ this._data = new Uint8Array(width * height * 4);
44
+ }
45
+ this.format = 'RGBA';
46
+ this.codedWidth = width;
47
+ this.codedHeight = height;
48
+ }
49
+ else {
50
+ this._data = new Uint8Array(0);
51
+ this.format = init.format ?? 'RGBA';
52
+ this.codedWidth = init.codedWidth ?? 0;
53
+ this.codedHeight = init.codedHeight ?? 0;
54
+ }
55
+ }
56
+ this.displayWidth = this.codedWidth;
57
+ this.displayHeight = this.codedHeight;
58
+ this.timestamp = init.timestamp;
59
+ this.duration = init.duration ?? null;
60
+ this.colorSpace = {
61
+ primaries: init.colorSpace?.primaries ?? 'bt709',
62
+ transfer: init.colorSpace?.transfer ?? 'bt709',
63
+ matrix: init.colorSpace?.matrix ?? 'bt709',
64
+ fullRange: init.colorSpace?.fullRange ?? true,
65
+ };
66
+ }
67
+ allocationSize() {
68
+ return this._data.byteLength;
69
+ }
70
+ async copyTo(destination) {
71
+ if (this._closed) {
72
+ throw new Error('VideoFrame is closed');
73
+ }
74
+ destination.set(this._data.subarray(0, destination.length));
75
+ return [{ offset: 0, stride: this.codedWidth * 4 }];
76
+ }
77
+ clone() {
78
+ if (this._closed) {
79
+ throw new Error('VideoFrame is closed');
80
+ }
81
+ return new VideoFramePolyfill(this._data, {
82
+ format: this.format,
83
+ codedWidth: this.codedWidth,
84
+ codedHeight: this.codedHeight,
85
+ timestamp: this.timestamp,
86
+ duration: this.duration ?? undefined,
87
+ colorSpace: this.colorSpace,
88
+ });
89
+ }
90
+ close() {
91
+ this._closed = true;
92
+ }
93
+ // Property to expose data for OffscreenCanvas polyfill
94
+ get _rawData() {
95
+ return this._data;
96
+ }
97
+ }
98
+ //# sourceMappingURL=VideoFramePolyfill.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VideoFramePolyfill.js","sourceRoot":"","sources":["../../src/polyfills/VideoFramePolyfill.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=generate-capabilities-profile.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate-capabilities-profile.d.ts","sourceRoot":"","sources":["../../src/tools/generate-capabilities-profile.ts"],"names":[],"mappings":""}
@@ -0,0 +1,63 @@
1
+ import fs from 'fs';
2
+ import path from 'path';
3
+ import { SMOOTH_THRESHOLDS } from '../capabilities/codecs.js';
4
+ import { detectHardwareAcceleration, parseCodecString, } from '../hardware/index.js';
5
+ const VIDEO_PRESETS = [
6
+ { codec: 'avc1.42E01E', profile: 'baseline', level: '4.0' },
7
+ { codec: 'hev1.1.6.L93.B0', profile: 'main', level: '5.1' },
8
+ { codec: 'vp8', profile: 'main' },
9
+ { codec: 'vp09.00.10.08', profile: 'profile0', level: '4' },
10
+ { codec: 'av01.0.01M.08', profile: 'main', level: '4.0' },
11
+ ];
12
+ const AUDIO_PRESETS = [
13
+ { codec: 'mp4a.40.2', maxBitrate: 320000 },
14
+ { codec: 'opus', maxBitrate: 320000 },
15
+ { codec: 'mp3', maxBitrate: 320000 },
16
+ { codec: 'vorbis', maxBitrate: 320000 },
17
+ { codec: 'flac', maxBitrate: 5000000 },
18
+ ];
19
+ async function main() {
20
+ const outputArg = process.argv[2];
21
+ const targetPath = path.resolve(outputArg || path.join(process.cwd(), 'webcodecs-capabilities.json'));
22
+ const hw = await detectHardwareAcceleration();
23
+ const videoProfile = buildVideoProfile(hw);
24
+ const audioProfile = buildAudioProfile();
25
+ const profile = {
26
+ video: videoProfile,
27
+ audio: audioProfile,
28
+ };
29
+ await fs.promises.mkdir(path.dirname(targetPath), { recursive: true });
30
+ await fs.promises.writeFile(targetPath, JSON.stringify(profile, null, 2), 'utf-8');
31
+ console.log(`Capability profile written to ${targetPath}`);
32
+ }
33
+ function buildVideoProfile(hw) {
34
+ return VIDEO_PRESETS.map((preset) => {
35
+ const codecName = parseCodecString(preset.codec);
36
+ const hardwareAvailable = codecName
37
+ ? hw.encoders.some((entry) => entry.codec === codecName && entry.available) ||
38
+ hw.decoders.some((entry) => entry.codec === codecName && entry.available)
39
+ : false;
40
+ const thresholds = hardwareAvailable ? SMOOTH_THRESHOLDS.hardware : SMOOTH_THRESHOLDS.software;
41
+ return {
42
+ codec: preset.codec,
43
+ profile: preset.profile,
44
+ level: preset.level,
45
+ maxWidth: thresholds.maxWidth,
46
+ maxHeight: thresholds.maxHeight,
47
+ maxFramerate: thresholds.maxFramerate,
48
+ maxBitrate: thresholds.maxBitrate,
49
+ hardwareAccelerated: hardwareAvailable,
50
+ };
51
+ });
52
+ }
53
+ function buildAudioProfile() {
54
+ return AUDIO_PRESETS.map((preset) => ({
55
+ codec: preset.codec,
56
+ maxBitrate: preset.maxBitrate,
57
+ }));
58
+ }
59
+ main().catch((err) => {
60
+ console.error('Failed to generate capability profile:', err);
61
+ process.exitCode = 1;
62
+ });
63
+ //# sourceMappingURL=generate-capabilities-profile.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate-capabilities-profile.js","sourceRoot":"","sources":["../../src/tools/generate-capabilities-profile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EACL,0BAA0B,EAC1B,gBAAgB,GACjB,MAAM,sBAAsB,CAAC;AAE9B,MAAM,aAAa,GAId;IACH,EAAE,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE;IAC3D,EAAE,KAAK,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE;IAC3D,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE;IACjC,EAAE,KAAK,EAAE,eAAe,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,EAAE;IAC3D,EAAE,KAAK,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE;CAC1D,CAAC;AAEF,MAAM,aAAa,GAGd;IACH,EAAE,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,EAAE;IAC1C,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE;IACrC,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE;IACpC,EAAE,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE;IACvC,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE;CACvC,CAAC;AAEF,KAAK,UAAU,IAAI;IACjB,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClC,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,6BAA6B,CAAC,CAAC,CAAC;IAEtG,MAAM,EAAE,GAAG,MAAM,0BAA0B,EAAE,CAAC;IAC9C,MAAM,YAAY,GAAG,iBAAiB,CAAC,EAAE,CAAC,CAAC;IAC3C,MAAM,YAAY,GAAG,iBAAiB,EAAE,CAAC;IAEzC,MAAM,OAAO,GAAsB;QACjC,KAAK,EAAE,YAAY;QACnB,KAAK,EAAE,YAAY;KACpB,CAAC;IAEF,MAAM,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACvE,MAAM,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;IACnF,OAAO,CAAC,GAAG,CAAC,iCAAiC,UAAU,EAAE,CAAC,CAAC;AAC7D,CAAC;AAED,SAAS,iBAAiB,CAAC,EAA0D;IACnF,OAAO,aAAa,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;QAClC,MAAM,SAAS,GAAG,gBAAgB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACjD,MAAM,iBAAiB,GAAG,SAAS;YACjC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,SAAS,CAAC;gBACzE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,SAAS,CAAC;YAC3E,CAAC,CAAC,KAAK,CAAC;QAEV,MAAM,UAAU,GAAG,iBAAiB,CAAC,CAAC,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC,CAAC,iBAAiB,CAAC,QAAQ,CAAC;QAE/F,OAAO;YACL,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,QAAQ,EAAE,UAAU,CAAC,QAAQ;YAC7B,SAAS,EAAE,UAAU,CAAC,SAAS;YAC/B,YAAY,EAAE,UAAU,CAAC,YAAY;YACrC,UAAU,EAAE,UAAU,CAAC,UAAU;YACjC,mBAAmB,EAAE,iBAAiB;SACvC,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,iBAAiB;IACxB,OAAO,aAAa,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACpC,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,UAAU,EAAE,MAAM,CAAC,UAAU;KAC9B,CAAC,CAAC,CAAC;AACN,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IACnB,OAAO,CAAC,KAAK,CAAC,wCAAwC,EAAE,GAAG,CAAC,CAAC;IAC7D,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;AACvB,CAAC,CAAC,CAAC"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Audio-related type definitions
3
+ */
4
+ export type { AudioSampleFormat } from '../formats/audio-formats.js';
5
+ /**
6
+ * Initialization options for creating AudioData
7
+ */
8
+ export interface AudioDataInit {
9
+ format: import('../formats/audio-formats.js').AudioSampleFormat;
10
+ sampleRate: number;
11
+ numberOfFrames: number;
12
+ numberOfChannels: number;
13
+ timestamp: number;
14
+ data: ArrayBufferView | ArrayBuffer;
15
+ transfer?: ArrayBuffer[];
16
+ }
17
+ /**
18
+ * Options for AudioData.copyTo()
19
+ */
20
+ export interface AudioDataCopyToOptions {
21
+ planeIndex: number;
22
+ frameOffset?: number;
23
+ frameCount?: number;
24
+ format?: import('../formats/audio-formats.js').AudioSampleFormat;
25
+ }
26
+ //# sourceMappingURL=audio.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audio.d.ts","sourceRoot":"","sources":["../../src/types/audio.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,YAAY,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAErE;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,OAAO,6BAA6B,EAAE,iBAAiB,CAAC;IAChE,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB,EAAE,MAAM,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,eAAe,GAAG,WAAW,CAAC;IACpC,QAAQ,CAAC,EAAE,WAAW,EAAE,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,6BAA6B,EAAE,iBAAiB,CAAC;CAClE"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Audio-related type definitions
3
+ */
4
+ export {};
5
+ //# sourceMappingURL=audio.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audio.js","sourceRoot":"","sources":["../../src/types/audio.ts"],"names":[],"mappings":"AAAA;;GAEG"}
@@ -0,0 +1,68 @@
1
+ /**
2
+ * Common type definitions for WebCodecs API
3
+ * These types mirror the browser DOM types needed for WebCodecs
4
+ */
5
+ export type BufferSource = ArrayBuffer | ArrayBufferView;
6
+ /**
7
+ * DOMException polyfill for Node.js
8
+ */
9
+ export declare class DOMException extends Error {
10
+ readonly code: number;
11
+ readonly name: string;
12
+ static readonly INDEX_SIZE_ERR = 1;
13
+ static readonly DOMSTRING_SIZE_ERR = 2;
14
+ static readonly HIERARCHY_REQUEST_ERR = 3;
15
+ static readonly WRONG_DOCUMENT_ERR = 4;
16
+ static readonly INVALID_CHARACTER_ERR = 5;
17
+ static readonly NO_DATA_ALLOWED_ERR = 6;
18
+ static readonly NO_MODIFICATION_ALLOWED_ERR = 7;
19
+ static readonly NOT_FOUND_ERR = 8;
20
+ static readonly NOT_SUPPORTED_ERR = 9;
21
+ static readonly INUSE_ATTRIBUTE_ERR = 10;
22
+ static readonly INVALID_STATE_ERR = 11;
23
+ static readonly SYNTAX_ERR = 12;
24
+ static readonly INVALID_MODIFICATION_ERR = 13;
25
+ static readonly NAMESPACE_ERR = 14;
26
+ static readonly INVALID_ACCESS_ERR = 15;
27
+ static readonly VALIDATION_ERR = 16;
28
+ static readonly TYPE_MISMATCH_ERR = 17;
29
+ static readonly SECURITY_ERR = 18;
30
+ static readonly NETWORK_ERR = 19;
31
+ static readonly ABORT_ERR = 20;
32
+ static readonly URL_MISMATCH_ERR = 21;
33
+ static readonly QUOTA_EXCEEDED_ERR = 22;
34
+ static readonly TIMEOUT_ERR = 23;
35
+ static readonly INVALID_NODE_TYPE_ERR = 24;
36
+ static readonly DATA_CLONE_ERR = 25;
37
+ constructor(message?: string, name?: string);
38
+ private _getCode;
39
+ }
40
+ /**
41
+ * Codec state values
42
+ */
43
+ export type CodecState = 'unconfigured' | 'configured' | 'closed';
44
+ /**
45
+ * Hardware acceleration preference
46
+ */
47
+ export type HardwareAcceleration = 'no-preference' | 'prefer-hardware' | 'prefer-software';
48
+ /**
49
+ * Alpha handling mode
50
+ */
51
+ export type AlphaOption = 'discard' | 'keep';
52
+ /**
53
+ * Latency mode for encoding
54
+ */
55
+ export type LatencyMode = 'quality' | 'realtime';
56
+ /**
57
+ * Bitrate mode for encoding
58
+ */
59
+ export type BitrateMode = 'constant' | 'variable' | 'quantizer';
60
+ /**
61
+ * AVC (H.264) format options
62
+ */
63
+ export type AvcBitstreamFormat = 'annexb' | 'avc';
64
+ /**
65
+ * HEVC (H.265) format options
66
+ */
67
+ export type HevcBitstreamFormat = 'annexb' | 'hevc';
68
+ //# sourceMappingURL=common.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../src/types/common.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,MAAM,MAAM,YAAY,GAAG,WAAW,GAAG,eAAe,CAAC;AAEzD;;GAEG;AACH,qBAAa,YAAa,SAAQ,KAAK;IACrC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAGtB,MAAM,CAAC,QAAQ,CAAC,cAAc,KAAK;IACnC,MAAM,CAAC,QAAQ,CAAC,kBAAkB,KAAK;IACvC,MAAM,CAAC,QAAQ,CAAC,qBAAqB,KAAK;IAC1C,MAAM,CAAC,QAAQ,CAAC,kBAAkB,KAAK;IACvC,MAAM,CAAC,QAAQ,CAAC,qBAAqB,KAAK;IAC1C,MAAM,CAAC,QAAQ,CAAC,mBAAmB,KAAK;IACxC,MAAM,CAAC,QAAQ,CAAC,2BAA2B,KAAK;IAChD,MAAM,CAAC,QAAQ,CAAC,aAAa,KAAK;IAClC,MAAM,CAAC,QAAQ,CAAC,iBAAiB,KAAK;IACtC,MAAM,CAAC,QAAQ,CAAC,mBAAmB,MAAM;IACzC,MAAM,CAAC,QAAQ,CAAC,iBAAiB,MAAM;IACvC,MAAM,CAAC,QAAQ,CAAC,UAAU,MAAM;IAChC,MAAM,CAAC,QAAQ,CAAC,wBAAwB,MAAM;IAC9C,MAAM,CAAC,QAAQ,CAAC,aAAa,MAAM;IACnC,MAAM,CAAC,QAAQ,CAAC,kBAAkB,MAAM;IACxC,MAAM,CAAC,QAAQ,CAAC,cAAc,MAAM;IACpC,MAAM,CAAC,QAAQ,CAAC,iBAAiB,MAAM;IACvC,MAAM,CAAC,QAAQ,CAAC,YAAY,MAAM;IAClC,MAAM,CAAC,QAAQ,CAAC,WAAW,MAAM;IACjC,MAAM,CAAC,QAAQ,CAAC,SAAS,MAAM;IAC/B,MAAM,CAAC,QAAQ,CAAC,gBAAgB,MAAM;IACtC,MAAM,CAAC,QAAQ,CAAC,kBAAkB,MAAM;IACxC,MAAM,CAAC,QAAQ,CAAC,WAAW,MAAM;IACjC,MAAM,CAAC,QAAQ,CAAC,qBAAqB,MAAM;IAC3C,MAAM,CAAC,QAAQ,CAAC,cAAc,MAAM;gBAExB,OAAO,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM;IAM3C,OAAO,CAAC,QAAQ;CA2BjB;AAED;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,cAAc,GAAG,YAAY,GAAG,QAAQ,CAAC;AAElE;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG,eAAe,GAAG,iBAAiB,GAAG,iBAAiB,CAAC;AAE3F;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,MAAM,CAAC;AAE7C;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,UAAU,CAAC;AAEjD;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,UAAU,GAAG,UAAU,GAAG,WAAW,CAAC;AAEhE;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG,QAAQ,GAAG,KAAK,CAAC;AAElD;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAAG,QAAQ,GAAG,MAAM,CAAC"}
@@ -0,0 +1,70 @@
1
+ /**
2
+ * Common type definitions for WebCodecs API
3
+ * These types mirror the browser DOM types needed for WebCodecs
4
+ */
5
+ /**
6
+ * DOMException polyfill for Node.js
7
+ */
8
+ export class DOMException extends Error {
9
+ code;
10
+ name;
11
+ // Standard DOMException error codes
12
+ static INDEX_SIZE_ERR = 1;
13
+ static DOMSTRING_SIZE_ERR = 2;
14
+ static HIERARCHY_REQUEST_ERR = 3;
15
+ static WRONG_DOCUMENT_ERR = 4;
16
+ static INVALID_CHARACTER_ERR = 5;
17
+ static NO_DATA_ALLOWED_ERR = 6;
18
+ static NO_MODIFICATION_ALLOWED_ERR = 7;
19
+ static NOT_FOUND_ERR = 8;
20
+ static NOT_SUPPORTED_ERR = 9;
21
+ static INUSE_ATTRIBUTE_ERR = 10;
22
+ static INVALID_STATE_ERR = 11;
23
+ static SYNTAX_ERR = 12;
24
+ static INVALID_MODIFICATION_ERR = 13;
25
+ static NAMESPACE_ERR = 14;
26
+ static INVALID_ACCESS_ERR = 15;
27
+ static VALIDATION_ERR = 16;
28
+ static TYPE_MISMATCH_ERR = 17;
29
+ static SECURITY_ERR = 18;
30
+ static NETWORK_ERR = 19;
31
+ static ABORT_ERR = 20;
32
+ static URL_MISMATCH_ERR = 21;
33
+ static QUOTA_EXCEEDED_ERR = 22;
34
+ static TIMEOUT_ERR = 23;
35
+ static INVALID_NODE_TYPE_ERR = 24;
36
+ static DATA_CLONE_ERR = 25;
37
+ constructor(message, name) {
38
+ super(message);
39
+ this.name = name || 'Error';
40
+ this.code = this._getCode(this.name);
41
+ }
42
+ _getCode(name) {
43
+ const codeMap = {
44
+ IndexSizeError: 1,
45
+ HierarchyRequestError: 3,
46
+ WrongDocumentError: 4,
47
+ InvalidCharacterError: 5,
48
+ NoModificationAllowedError: 7,
49
+ NotFoundError: 8,
50
+ NotSupportedError: 9,
51
+ InUseAttributeError: 10,
52
+ InvalidStateError: 11,
53
+ SyntaxError: 12,
54
+ InvalidModificationError: 13,
55
+ NamespaceError: 14,
56
+ InvalidAccessError: 15,
57
+ TypeMismatchError: 17,
58
+ SecurityError: 18,
59
+ NetworkError: 19,
60
+ AbortError: 20,
61
+ URLMismatchError: 21,
62
+ QuotaExceededError: 22,
63
+ TimeoutError: 23,
64
+ InvalidNodeTypeError: 24,
65
+ DataCloneError: 25,
66
+ };
67
+ return codeMap[name] || 0;
68
+ }
69
+ }
70
+ //# sourceMappingURL=common.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"common.js","sourceRoot":"","sources":["../../src/types/common.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH;;GAEG;AACH,MAAM,OAAO,YAAa,SAAQ,KAAK;IAC5B,IAAI,CAAS;IACb,IAAI,CAAS;IAEtB,oCAAoC;IACpC,MAAM,CAAU,cAAc,GAAG,CAAC,CAAC;IACnC,MAAM,CAAU,kBAAkB,GAAG,CAAC,CAAC;IACvC,MAAM,CAAU,qBAAqB,GAAG,CAAC,CAAC;IAC1C,MAAM,CAAU,kBAAkB,GAAG,CAAC,CAAC;IACvC,MAAM,CAAU,qBAAqB,GAAG,CAAC,CAAC;IAC1C,MAAM,CAAU,mBAAmB,GAAG,CAAC,CAAC;IACxC,MAAM,CAAU,2BAA2B,GAAG,CAAC,CAAC;IAChD,MAAM,CAAU,aAAa,GAAG,CAAC,CAAC;IAClC,MAAM,CAAU,iBAAiB,GAAG,CAAC,CAAC;IACtC,MAAM,CAAU,mBAAmB,GAAG,EAAE,CAAC;IACzC,MAAM,CAAU,iBAAiB,GAAG,EAAE,CAAC;IACvC,MAAM,CAAU,UAAU,GAAG,EAAE,CAAC;IAChC,MAAM,CAAU,wBAAwB,GAAG,EAAE,CAAC;IAC9C,MAAM,CAAU,aAAa,GAAG,EAAE,CAAC;IACnC,MAAM,CAAU,kBAAkB,GAAG,EAAE,CAAC;IACxC,MAAM,CAAU,cAAc,GAAG,EAAE,CAAC;IACpC,MAAM,CAAU,iBAAiB,GAAG,EAAE,CAAC;IACvC,MAAM,CAAU,YAAY,GAAG,EAAE,CAAC;IAClC,MAAM,CAAU,WAAW,GAAG,EAAE,CAAC;IACjC,MAAM,CAAU,SAAS,GAAG,EAAE,CAAC;IAC/B,MAAM,CAAU,gBAAgB,GAAG,EAAE,CAAC;IACtC,MAAM,CAAU,kBAAkB,GAAG,EAAE,CAAC;IACxC,MAAM,CAAU,WAAW,GAAG,EAAE,CAAC;IACjC,MAAM,CAAU,qBAAqB,GAAG,EAAE,CAAC;IAC3C,MAAM,CAAU,cAAc,GAAG,EAAE,CAAC;IAEpC,YAAY,OAAgB,EAAE,IAAa;QACzC,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,IAAI,IAAI,OAAO,CAAC;QAC5B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACvC,CAAC;IAEO,QAAQ,CAAC,IAAY;QAC3B,MAAM,OAAO,GAA2B;YACtC,cAAc,EAAE,CAAC;YACjB,qBAAqB,EAAE,CAAC;YACxB,kBAAkB,EAAE,CAAC;YACrB,qBAAqB,EAAE,CAAC;YACxB,0BAA0B,EAAE,CAAC;YAC7B,aAAa,EAAE,CAAC;YAChB,iBAAiB,EAAE,CAAC;YACpB,mBAAmB,EAAE,EAAE;YACvB,iBAAiB,EAAE,EAAE;YACrB,WAAW,EAAE,EAAE;YACf,wBAAwB,EAAE,EAAE;YAC5B,cAAc,EAAE,EAAE;YAClB,kBAAkB,EAAE,EAAE;YACtB,iBAAiB,EAAE,EAAE;YACrB,aAAa,EAAE,EAAE;YACjB,YAAY,EAAE,EAAE;YAChB,UAAU,EAAE,EAAE;YACd,gBAAgB,EAAE,EAAE;YACpB,kBAAkB,EAAE,EAAE;YACtB,YAAY,EAAE,EAAE;YAChB,oBAAoB,EAAE,EAAE;YACxB,cAAc,EAAE,EAAE;SACnB,CAAC;QACF,OAAO,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC"}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * Geometry types - DOMRect and related structures
3
+ */
4
+ /**
5
+ * DOMRectInit - initialization object for DOMRect
6
+ */
7
+ export interface DOMRectInit {
8
+ x?: number;
9
+ y?: number;
10
+ width?: number;
11
+ height?: number;
12
+ }
13
+ /**
14
+ * DOMRectReadOnly - immutable rectangle representation
15
+ */
16
+ export declare class DOMRectReadOnly {
17
+ readonly x: number;
18
+ readonly y: number;
19
+ readonly width: number;
20
+ readonly height: number;
21
+ constructor(x?: number, y?: number, width?: number, height?: number);
22
+ get top(): number;
23
+ get right(): number;
24
+ get bottom(): number;
25
+ get left(): number;
26
+ toJSON(): DOMRectInit;
27
+ }
28
+ /**
29
+ * PlaneLayout - describes the layout of a single plane in a video frame
30
+ */
31
+ export interface PlaneLayout {
32
+ offset: number;
33
+ stride: number;
34
+ }
35
+ //# sourceMappingURL=geometry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"geometry.d.ts","sourceRoot":"","sources":["../../src/types/geometry.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,qBAAa,eAAe;IAC1B,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;gBAEZ,CAAC,SAAI,EAAE,CAAC,SAAI,EAAE,KAAK,SAAI,EAAE,MAAM,SAAI;IAO/C,IAAI,GAAG,IAAI,MAAM,CAEhB;IAED,IAAI,KAAK,IAAI,MAAM,CAElB;IAED,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,MAAM,IAAI,WAAW;CAGtB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Geometry types - DOMRect and related structures
3
+ */
4
+ /**
5
+ * DOMRectReadOnly - immutable rectangle representation
6
+ */
7
+ export class DOMRectReadOnly {
8
+ x;
9
+ y;
10
+ width;
11
+ height;
12
+ constructor(x = 0, y = 0, width = 0, height = 0) {
13
+ this.x = x;
14
+ this.y = y;
15
+ this.width = width;
16
+ this.height = height;
17
+ }
18
+ get top() {
19
+ return this.y;
20
+ }
21
+ get right() {
22
+ return this.x + this.width;
23
+ }
24
+ get bottom() {
25
+ return this.y + this.height;
26
+ }
27
+ get left() {
28
+ return this.x;
29
+ }
30
+ toJSON() {
31
+ return { x: this.x, y: this.y, width: this.width, height: this.height };
32
+ }
33
+ }
34
+ //# sourceMappingURL=geometry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"geometry.js","sourceRoot":"","sources":["../../src/types/geometry.ts"],"names":[],"mappings":"AAAA;;GAEG;AAYH;;GAEG;AACH,MAAM,OAAO,eAAe;IACjB,CAAC,CAAS;IACV,CAAC,CAAS;IACV,KAAK,CAAS;IACd,MAAM,CAAS;IAExB,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,MAAM,GAAG,CAAC;QAC7C,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QACX,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QACX,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,IAAI,GAAG;QACL,OAAO,IAAI,CAAC,CAAC,CAAC;IAChB,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;IAC7B,CAAC;IAED,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;IAC9B,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,CAAC,CAAC;IAChB,CAAC;IAED,MAAM;QACJ,OAAO,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;IAC1E,CAAC;CACF"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Type exports for WebCodecs implementation
3
+ */
4
+ export { type BufferSource, DOMException, type CodecState, type HardwareAcceleration, type AlphaOption, type LatencyMode, type BitrateMode, type AvcBitstreamFormat, type HevcBitstreamFormat, } from './common.js';
5
+ export { type DOMRectInit, DOMRectReadOnly, type PlaneLayout, } from './geometry.js';
6
+ export { type VideoPixelFormat, type VideoFrameBufferInit, type VideoFrameInit, type VideoFrameCopyToOptions, } from './video.js';
7
+ export { type AudioSampleFormat, type AudioDataInit, type AudioDataCopyToOptions, } from './audio.js';
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EACL,KAAK,YAAY,EACjB,YAAY,EACZ,KAAK,UAAU,EACf,KAAK,oBAAoB,EACzB,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,GACzB,MAAM,aAAa,CAAC;AAGrB,OAAO,EACL,KAAK,WAAW,EAChB,eAAe,EACf,KAAK,WAAW,GACjB,MAAM,eAAe,CAAC;AAGvB,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,oBAAoB,EACzB,KAAK,cAAc,EACnB,KAAK,uBAAuB,GAC7B,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,aAAa,EAClB,KAAK,sBAAsB,GAC5B,MAAM,YAAY,CAAC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Type exports for WebCodecs implementation
3
+ */
4
+ // Common types
5
+ export { DOMException, } from './common.js';
6
+ // Geometry types
7
+ export { DOMRectReadOnly, } from './geometry.js';
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,eAAe;AACf,OAAO,EAEL,YAAY,GAQb,MAAM,aAAa,CAAC;AAErB,iBAAiB;AACjB,OAAO,EAEL,eAAe,GAEhB,MAAM,eAAe,CAAC"}
@@ -0,0 +1,43 @@
1
+ /**
2
+ * Video-related type definitions
3
+ */
4
+ import type { PlaneLayout, DOMRectInit } from './geometry.js';
5
+ import type { VideoColorSpaceInit } from '../formats/color-space.js';
6
+ import type { VideoPixelFormat } from '../formats/pixel-formats.js';
7
+ export type { VideoPixelFormat };
8
+ /**
9
+ * Initialization options for creating a VideoFrame from raw pixel data
10
+ */
11
+ export interface VideoFrameBufferInit {
12
+ format: VideoPixelFormat;
13
+ codedWidth: number;
14
+ codedHeight: number;
15
+ timestamp: number;
16
+ duration?: number;
17
+ layout?: PlaneLayout[];
18
+ visibleRect?: DOMRectInit;
19
+ displayWidth?: number;
20
+ displayHeight?: number;
21
+ colorSpace?: VideoColorSpaceInit;
22
+ }
23
+ /**
24
+ * Initialization options for creating a VideoFrame from CanvasImageSource
25
+ */
26
+ export interface VideoFrameInit {
27
+ timestamp: number;
28
+ duration?: number;
29
+ alpha?: 'discard' | 'keep';
30
+ visibleRect?: DOMRectInit;
31
+ displayWidth?: number;
32
+ displayHeight?: number;
33
+ colorSpace?: VideoColorSpaceInit;
34
+ }
35
+ /**
36
+ * Options for VideoFrame.copyTo()
37
+ */
38
+ export interface VideoFrameCopyToOptions {
39
+ rect?: DOMRectInit;
40
+ layout?: PlaneLayout[];
41
+ format?: VideoPixelFormat;
42
+ }
43
+ //# sourceMappingURL=video.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"video.d.ts","sourceRoot":"","sources":["../../src/types/video.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC9D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAGpE,YAAY,EAAE,gBAAgB,EAAE,CAAC;AAEjC;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,gBAAgB,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,WAAW,EAAE,CAAC;IACvB,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,mBAAmB,CAAC;CAClC;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC;IAC3B,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,mBAAmB,CAAC;CAClC;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,MAAM,CAAC,EAAE,WAAW,EAAE,CAAC;IACvB,MAAM,CAAC,EAAE,gBAAgB,CAAC;CAC3B"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Video-related type definitions
3
+ */
4
+ export {};
5
+ //# sourceMappingURL=video.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"video.js","sourceRoot":"","sources":["../../src/types/video.ts"],"names":[],"mappings":"AAAA;;GAEG"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Types - Re-export from new location for backwards compatibility
3
+ * @deprecated Import from './types/index.js' instead
4
+ */
5
+ export * from './types/index.js';
6
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,cAAc,kBAAkB,CAAC"}
package/dist/types.js ADDED
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Types - Re-export from new location for backwards compatibility
3
+ * @deprecated Import from './types/index.js' instead
4
+ */
5
+ export * from './types/index.js';
6
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,cAAc,kBAAkB,CAAC"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * AAC (AudioSpecificConfig) parsing and ADTS framing utilities.
3
+ */
4
+ export interface AacConfig {
5
+ audioObjectType: number;
6
+ samplingFrequencyIndex: number;
7
+ samplingRate: number;
8
+ channelConfiguration: number;
9
+ }
10
+ export declare const SAMPLING_RATES: number[];
11
+ /**
12
+ * Parse the AudioSpecificConfig (ISO/IEC 14496-3) blob passed via
13
+ * AudioDecoderConfig.description for codecs like mp4a.40.*.
14
+ */
15
+ export declare function parseAudioSpecificConfig(data: Uint8Array): AacConfig;
16
+ /**
17
+ * Wrap a raw AAC frame with an ADTS header using the parsed config.
18
+ */
19
+ export declare function wrapAacFrameWithAdts(data: Uint8Array, config: AacConfig): Buffer;
20
+ export declare function buildAudioSpecificConfig(params: {
21
+ audioObjectType?: number;
22
+ samplingRate: number;
23
+ channelConfiguration: number;
24
+ }): Uint8Array;
25
+ export declare function stripAdtsHeader(frame: Uint8Array): Uint8Array;
26
+ //# sourceMappingURL=aac.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"aac.d.ts","sourceRoot":"","sources":["../../src/utils/aac.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,SAAS;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,sBAAsB,EAAE,MAAM,CAAC;IAC/B,YAAY,EAAE,MAAM,CAAC;IACrB,oBAAoB,EAAE,MAAM,CAAC;CAC9B;AAED,eAAO,MAAM,cAAc,UAI1B,CAAC;AAEF;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,UAAU,GAAG,SAAS,CA2CpE;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,GAAG,MAAM,CAiBhF;AAED,wBAAgB,wBAAwB,CAAC,MAAM,EAAE;IAC/C,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,oBAAoB,EAAE,MAAM,CAAC;CAC9B,GAAG,UAAU,CA0Bb;AA+BD,wBAAgB,eAAe,CAAC,KAAK,EAAE,UAAU,GAAG,UAAU,CAW7D"}