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 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/encoders/video/types.ts"],"names":[],"mappings":"AAAA;;GAEG"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Color space conversion utilities
3
+ */
4
+ import type { ColorMatrix, SmpteSt2086Metadata, ContentLightLevelInfo } from './types.js';
5
+ /**
6
+ * Get color matrix from VideoColorSpaceInit
7
+ */
8
+ export declare function getColorMatrix(matrix?: string | null): ColorMatrix;
9
+ /**
10
+ * Convert RGBA pixel to YUV
11
+ * @returns [Y, U, V] values in range 0-255
12
+ */
13
+ export declare function rgbaToYuv(r: number, g: number, b: number, matrix?: ColorMatrix): [number, number, number];
14
+ /**
15
+ * Convert YUV to RGBA
16
+ * @returns [R, G, B, A] values in range 0-255
17
+ */
18
+ export declare function yuvToRgba(y: number, u: number, v: number, matrix?: ColorMatrix): [number, number, number, number];
19
+ /**
20
+ * Create a typical HDR10 mastering display metadata
21
+ */
22
+ export declare function createHdr10MasteringMetadata(maxLuminance: number, minLuminance?: number): SmpteSt2086Metadata;
23
+ /**
24
+ * Create content light level info
25
+ */
26
+ export declare function createContentLightLevel(maxCLL: number, maxFALL: number): ContentLightLevelInfo;
27
+ //# sourceMappingURL=convert.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"convert.d.ts","sourceRoot":"","sources":["../../../src/formats/color-space/convert.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAa1F;;GAEG;AACH,wBAAgB,cAAc,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,WAAW,CAclE;AAED;;;GAGG;AACH,wBAAgB,SAAS,CACvB,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,MAAM,GAAE,WAAqB,GAC5B,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAa1B;AAED;;;GAGG;AACH,wBAAgB,SAAS,CACvB,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,MAAM,GAAE,WAAqB,GAC5B,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAkBlC;AAED;;GAEG;AACH,wBAAgB,4BAA4B,CAC1C,YAAY,EAAE,MAAM,EACpB,YAAY,GAAE,MAAe,GAC5B,mBAAmB,CAarB;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,GACd,qBAAqB,CAEvB"}
@@ -0,0 +1,91 @@
1
+ /**
2
+ * Color space conversion utilities
3
+ */
4
+ /**
5
+ * YUV to RGB conversion coefficients for different standards
6
+ */
7
+ const YUV_TO_RGB_COEFFICIENTS = {
8
+ bt601: { kr: 0.299, kb: 0.114 },
9
+ smpte170m: { kr: 0.299, kb: 0.114 },
10
+ bt470bg: { kr: 0.299, kb: 0.114 },
11
+ bt709: { kr: 0.2126, kb: 0.0722 },
12
+ bt2020: { kr: 0.2627, kb: 0.0593 },
13
+ };
14
+ /**
15
+ * Get color matrix from VideoColorSpaceInit
16
+ */
17
+ export function getColorMatrix(matrix) {
18
+ switch (matrix) {
19
+ case 'bt601':
20
+ case 'smpte170m':
21
+ case 'bt470bg':
22
+ return 'bt601';
23
+ case 'bt2020-ncl':
24
+ case 'bt2020':
25
+ return 'bt2020';
26
+ case 'bt709':
27
+ case 'rgb':
28
+ default:
29
+ return 'bt709';
30
+ }
31
+ }
32
+ /**
33
+ * Convert RGBA pixel to YUV
34
+ * @returns [Y, U, V] values in range 0-255
35
+ */
36
+ export function rgbaToYuv(r, g, b, matrix = 'bt709') {
37
+ const { kr, kb } = YUV_TO_RGB_COEFFICIENTS[matrix];
38
+ const kg = 1 - kr - kb;
39
+ const y = kr * r + kg * g + kb * b;
40
+ const u = (b - y) / (2 * (1 - kb)) + 128;
41
+ const v = (r - y) / (2 * (1 - kr)) + 128;
42
+ return [
43
+ Math.max(0, Math.min(255, Math.round(y))),
44
+ Math.max(0, Math.min(255, Math.round(u))),
45
+ Math.max(0, Math.min(255, Math.round(v))),
46
+ ];
47
+ }
48
+ /**
49
+ * Convert YUV to RGBA
50
+ * @returns [R, G, B, A] values in range 0-255
51
+ */
52
+ export function yuvToRgba(y, u, v, matrix = 'bt709') {
53
+ const { kr, kb } = YUV_TO_RGB_COEFFICIENTS[matrix];
54
+ const kg = 1 - kr - kb;
55
+ const c = y;
56
+ const d = u - 128;
57
+ const e = v - 128;
58
+ const r = c + (2 * (1 - kr)) * e;
59
+ const g = c - (2 * kb * (1 - kb) / kg) * d - (2 * kr * (1 - kr) / kg) * e;
60
+ const b = c + (2 * (1 - kb)) * d;
61
+ return [
62
+ Math.max(0, Math.min(255, Math.round(r))),
63
+ Math.max(0, Math.min(255, Math.round(g))),
64
+ Math.max(0, Math.min(255, Math.round(b))),
65
+ 255,
66
+ ];
67
+ }
68
+ /**
69
+ * Create a typical HDR10 mastering display metadata
70
+ */
71
+ export function createHdr10MasteringMetadata(maxLuminance, minLuminance = 0.0001) {
72
+ return {
73
+ primaryRChromaticityX: 0.708,
74
+ primaryRChromaticityY: 0.292,
75
+ primaryGChromaticityX: 0.170,
76
+ primaryGChromaticityY: 0.797,
77
+ primaryBChromaticityX: 0.131,
78
+ primaryBChromaticityY: 0.046,
79
+ whitePointChromaticityX: 0.3127,
80
+ whitePointChromaticityY: 0.3290,
81
+ maxLuminance,
82
+ minLuminance,
83
+ };
84
+ }
85
+ /**
86
+ * Create content light level info
87
+ */
88
+ export function createContentLightLevel(maxCLL, maxFALL) {
89
+ return { maxCLL, maxFALL };
90
+ }
91
+ //# sourceMappingURL=convert.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"convert.js","sourceRoot":"","sources":["../../../src/formats/color-space/convert.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Color space extraction utilities
3
+ *
4
+ * Convert FFmpeg color space values to WebCodecs format
5
+ */
6
+ import type { VideoColorSpaceInit } from './types.js';
7
+ /**
8
+ * Convert FFmpeg AVColorPrimaries to WebCodecs primaries string
9
+ */
10
+ export declare function avColorPrimariesToWebCodecs(primaries: number): VideoColorSpaceInit['primaries'] | undefined;
11
+ /**
12
+ * Convert FFmpeg AVColorTransferCharacteristic to WebCodecs transfer string
13
+ */
14
+ export declare function avColorTransferToWebCodecs(transfer: number): VideoColorSpaceInit['transfer'] | undefined;
15
+ /**
16
+ * Convert FFmpeg AVColorSpace (matrix) to WebCodecs matrix string
17
+ */
18
+ export declare function avColorSpaceToWebCodecs(colorSpace: number): VideoColorSpaceInit['matrix'] | undefined;
19
+ /**
20
+ * Convert FFmpeg AVColorRange to WebCodecs fullRange boolean
21
+ */
22
+ export declare function avColorRangeToWebCodecs(range: number): boolean | undefined;
23
+ /**
24
+ * Extract VideoColorSpaceInit from FFmpeg frame color properties
25
+ */
26
+ export declare function extractColorSpaceFromFrame(frame: {
27
+ colorPrimaries?: number;
28
+ colorTrc?: number;
29
+ colorSpace?: number;
30
+ colorRange?: number;
31
+ }): VideoColorSpaceInit | undefined;
32
+ //# sourceMappingURL=extract.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extract.d.ts","sourceRoot":"","sources":["../../../src/formats/color-space/extract.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAQtD;;GAEG;AACH,wBAAgB,2BAA2B,CAAC,SAAS,EAAE,MAAM,GAAG,mBAAmB,CAAC,WAAW,CAAC,GAAG,SAAS,CAgB3G;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CAAC,QAAQ,EAAE,MAAM,GAAG,mBAAmB,CAAC,UAAU,CAAC,GAAG,SAAS,CAoBxG;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,UAAU,EAAE,MAAM,GAAG,mBAAmB,CAAC,QAAQ,CAAC,GAAG,SAAS,CAiBrG;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAS1E;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CAAC,KAAK,EAAE;IAChD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,GAAG,mBAAmB,GAAG,SAAS,CA0BlC"}
@@ -0,0 +1,116 @@
1
+ /**
2
+ * Color space extraction utilities
3
+ *
4
+ * Convert FFmpeg color space values to WebCodecs format
5
+ */
6
+ import { AVCOL_PRI_VALUES, AVCOL_TRC_VALUES, AVCOL_SPC_VALUES, AVCOL_RANGE_VALUES, } from './maps.js';
7
+ /**
8
+ * Convert FFmpeg AVColorPrimaries to WebCodecs primaries string
9
+ */
10
+ export function avColorPrimariesToWebCodecs(primaries) {
11
+ switch (primaries) {
12
+ case AVCOL_PRI_VALUES.BT709:
13
+ return 'bt709';
14
+ case AVCOL_PRI_VALUES.BT470BG:
15
+ return 'bt470bg';
16
+ case AVCOL_PRI_VALUES.SMPTE170M:
17
+ case AVCOL_PRI_VALUES.SMPTE240M:
18
+ return 'smpte170m';
19
+ case AVCOL_PRI_VALUES.BT2020:
20
+ return 'bt2020';
21
+ case AVCOL_PRI_VALUES.SMPTE432:
22
+ return 'smpte432';
23
+ default:
24
+ return undefined;
25
+ }
26
+ }
27
+ /**
28
+ * Convert FFmpeg AVColorTransferCharacteristic to WebCodecs transfer string
29
+ */
30
+ export function avColorTransferToWebCodecs(transfer) {
31
+ switch (transfer) {
32
+ case AVCOL_TRC_VALUES.BT709:
33
+ case AVCOL_TRC_VALUES.BT2020_10:
34
+ case AVCOL_TRC_VALUES.BT2020_12:
35
+ return 'bt709';
36
+ case AVCOL_TRC_VALUES.SMPTE170M:
37
+ case AVCOL_TRC_VALUES.SMPTE240M:
38
+ return 'smpte170m';
39
+ case AVCOL_TRC_VALUES.IEC61966_2_1:
40
+ return 'iec61966-2-1';
41
+ case AVCOL_TRC_VALUES.LINEAR:
42
+ return 'linear';
43
+ case AVCOL_TRC_VALUES.SMPTE2084:
44
+ return 'pq';
45
+ case AVCOL_TRC_VALUES.ARIB_STD_B67:
46
+ return 'hlg';
47
+ default:
48
+ return undefined;
49
+ }
50
+ }
51
+ /**
52
+ * Convert FFmpeg AVColorSpace (matrix) to WebCodecs matrix string
53
+ */
54
+ export function avColorSpaceToWebCodecs(colorSpace) {
55
+ switch (colorSpace) {
56
+ case AVCOL_SPC_VALUES.RGB:
57
+ return 'rgb';
58
+ case AVCOL_SPC_VALUES.BT709:
59
+ return 'bt709';
60
+ case AVCOL_SPC_VALUES.BT470BG:
61
+ return 'bt470bg';
62
+ case AVCOL_SPC_VALUES.SMPTE170M:
63
+ case AVCOL_SPC_VALUES.SMPTE240M:
64
+ return 'smpte170m';
65
+ case AVCOL_SPC_VALUES.BT2020_NCL:
66
+ case AVCOL_SPC_VALUES.BT2020_CL:
67
+ return 'bt2020-ncl';
68
+ default:
69
+ return undefined;
70
+ }
71
+ }
72
+ /**
73
+ * Convert FFmpeg AVColorRange to WebCodecs fullRange boolean
74
+ */
75
+ export function avColorRangeToWebCodecs(range) {
76
+ switch (range) {
77
+ case AVCOL_RANGE_VALUES.JPEG:
78
+ return true;
79
+ case AVCOL_RANGE_VALUES.MPEG:
80
+ return false;
81
+ default:
82
+ return undefined;
83
+ }
84
+ }
85
+ /**
86
+ * Extract VideoColorSpaceInit from FFmpeg frame color properties
87
+ */
88
+ export function extractColorSpaceFromFrame(frame) {
89
+ const primaries = frame.colorPrimaries !== undefined
90
+ ? avColorPrimariesToWebCodecs(frame.colorPrimaries)
91
+ : undefined;
92
+ const transfer = frame.colorTrc !== undefined
93
+ ? avColorTransferToWebCodecs(frame.colorTrc)
94
+ : undefined;
95
+ const matrix = frame.colorSpace !== undefined
96
+ ? avColorSpaceToWebCodecs(frame.colorSpace)
97
+ : undefined;
98
+ const fullRange = frame.colorRange !== undefined
99
+ ? avColorRangeToWebCodecs(frame.colorRange)
100
+ : undefined;
101
+ if (primaries === undefined && transfer === undefined &&
102
+ matrix === undefined && fullRange === undefined) {
103
+ return undefined;
104
+ }
105
+ const result = {};
106
+ if (primaries !== undefined)
107
+ result.primaries = primaries;
108
+ if (transfer !== undefined)
109
+ result.transfer = transfer;
110
+ if (matrix !== undefined)
111
+ result.matrix = matrix;
112
+ if (fullRange !== undefined)
113
+ result.fullRange = fullRange;
114
+ return result;
115
+ }
116
+ //# sourceMappingURL=extract.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extract.js","sourceRoot":"","sources":["../../../src/formats/color-space/extract.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,WAAW,CAAC;AAEnB;;GAEG;AACH,MAAM,UAAU,2BAA2B,CAAC,SAAiB;IAC3D,QAAQ,SAAS,EAAE,CAAC;QAClB,KAAK,gBAAgB,CAAC,KAAK;YACzB,OAAO,OAAO,CAAC;QACjB,KAAK,gBAAgB,CAAC,OAAO;YAC3B,OAAO,SAAS,CAAC;QACnB,KAAK,gBAAgB,CAAC,SAAS,CAAC;QAChC,KAAK,gBAAgB,CAAC,SAAS;YAC7B,OAAO,WAAW,CAAC;QACrB,KAAK,gBAAgB,CAAC,MAAM;YAC1B,OAAO,QAAQ,CAAC;QAClB,KAAK,gBAAgB,CAAC,QAAQ;YAC5B,OAAO,UAAU,CAAC;QACpB;YACE,OAAO,SAAS,CAAC;IACrB,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,0BAA0B,CAAC,QAAgB;IACzD,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,gBAAgB,CAAC,KAAK,CAAC;QAC5B,KAAK,gBAAgB,CAAC,SAAS,CAAC;QAChC,KAAK,gBAAgB,CAAC,SAAS;YAC7B,OAAO,OAAO,CAAC;QACjB,KAAK,gBAAgB,CAAC,SAAS,CAAC;QAChC,KAAK,gBAAgB,CAAC,SAAS;YAC7B,OAAO,WAAW,CAAC;QACrB,KAAK,gBAAgB,CAAC,YAAY;YAChC,OAAO,cAAc,CAAC;QACxB,KAAK,gBAAgB,CAAC,MAAM;YAC1B,OAAO,QAAQ,CAAC;QAClB,KAAK,gBAAgB,CAAC,SAAS;YAC7B,OAAO,IAAI,CAAC;QACd,KAAK,gBAAgB,CAAC,YAAY;YAChC,OAAO,KAAK,CAAC;QACf;YACE,OAAO,SAAS,CAAC;IACrB,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,uBAAuB,CAAC,UAAkB;IACxD,QAAQ,UAAU,EAAE,CAAC;QACnB,KAAK,gBAAgB,CAAC,GAAG;YACvB,OAAO,KAAK,CAAC;QACf,KAAK,gBAAgB,CAAC,KAAK;YACzB,OAAO,OAAO,CAAC;QACjB,KAAK,gBAAgB,CAAC,OAAO;YAC3B,OAAO,SAAS,CAAC;QACnB,KAAK,gBAAgB,CAAC,SAAS,CAAC;QAChC,KAAK,gBAAgB,CAAC,SAAS;YAC7B,OAAO,WAAW,CAAC;QACrB,KAAK,gBAAgB,CAAC,UAAU,CAAC;QACjC,KAAK,gBAAgB,CAAC,SAAS;YAC7B,OAAO,YAAY,CAAC;QACtB;YACE,OAAO,SAAS,CAAC;IACrB,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,uBAAuB,CAAC,KAAa;IACnD,QAAQ,KAAK,EAAE,CAAC;QACd,KAAK,kBAAkB,CAAC,IAAI;YAC1B,OAAO,IAAI,CAAC;QACd,KAAK,kBAAkB,CAAC,IAAI;YAC1B,OAAO,KAAK,CAAC;QACf;YACE,OAAO,SAAS,CAAC;IACrB,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,0BAA0B,CAAC,KAK1C;IACC,MAAM,SAAS,GAAG,KAAK,CAAC,cAAc,KAAK,SAAS;QAClD,CAAC,CAAC,2BAA2B,CAAC,KAAK,CAAC,cAAc,CAAC;QACnD,CAAC,CAAC,SAAS,CAAC;IACd,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,KAAK,SAAS;QAC3C,CAAC,CAAC,0BAA0B,CAAC,KAAK,CAAC,QAAQ,CAAC;QAC5C,CAAC,CAAC,SAAS,CAAC;IACd,MAAM,MAAM,GAAG,KAAK,CAAC,UAAU,KAAK,SAAS;QAC3C,CAAC,CAAC,uBAAuB,CAAC,KAAK,CAAC,UAAU,CAAC;QAC3C,CAAC,CAAC,SAAS,CAAC;IACd,MAAM,SAAS,GAAG,KAAK,CAAC,UAAU,KAAK,SAAS;QAC9C,CAAC,CAAC,uBAAuB,CAAC,KAAK,CAAC,UAAU,CAAC;QAC3C,CAAC,CAAC,SAAS,CAAC;IAEd,IAAI,SAAS,KAAK,SAAS,IAAI,QAAQ,KAAK,SAAS;QACjD,MAAM,KAAK,SAAS,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QACpD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,MAAM,GAAwB,EAAE,CAAC;IACvC,IAAI,SAAS,KAAK,SAAS;QAAE,MAAM,CAAC,SAAS,GAAG,SAAS,CAAC;IAC1D,IAAI,QAAQ,KAAK,SAAS;QAAE,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAC;IACvD,IAAI,MAAM,KAAK,SAAS;QAAE,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC;IACjD,IAAI,SAAS,KAAK,SAAS;QAAE,MAAM,CAAC,SAAS,GAAG,SAAS,CAAC;IAE1D,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Color space module
3
+ *
4
+ * Provides color space types and conversion utilities for WebCodecs.
5
+ */
6
+ export { VideoColorSpace, HDR10_DISPLAY_PRIMARIES, type ColorMatrix, type SmpteSt2086Metadata, type ContentLightLevelInfo, type HdrMetadata, type VideoColorSpaceInit, } from './types.js';
7
+ export { getColorMatrix, rgbaToYuv, yuvToRgba, createHdr10MasteringMetadata, createContentLightLevel, } from './convert.js';
8
+ export { AVCOL_PRI_VALUES, AVCOL_TRC_VALUES, AVCOL_SPC_VALUES, AVCOL_RANGE_VALUES, } from './maps.js';
9
+ export { avColorPrimariesToWebCodecs, avColorTransferToWebCodecs, avColorSpaceToWebCodecs, avColorRangeToWebCodecs, extractColorSpaceFromFrame, } from './extract.js';
10
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/formats/color-space/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EACL,eAAe,EACf,uBAAuB,EACvB,KAAK,WAAW,EAChB,KAAK,mBAAmB,EACxB,KAAK,qBAAqB,EAC1B,KAAK,WAAW,EAChB,KAAK,mBAAmB,GACzB,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,cAAc,EACd,SAAS,EACT,SAAS,EACT,4BAA4B,EAC5B,uBAAuB,GACxB,MAAM,cAAc,CAAC;AAGtB,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,WAAW,CAAC;AAGnB,OAAO,EACL,2BAA2B,EAC3B,0BAA0B,EAC1B,uBAAuB,EACvB,uBAAuB,EACvB,0BAA0B,GAC3B,MAAM,cAAc,CAAC"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Color space module
3
+ *
4
+ * Provides color space types and conversion utilities for WebCodecs.
5
+ */
6
+ // Types
7
+ export { VideoColorSpace, HDR10_DISPLAY_PRIMARIES, } from './types.js';
8
+ // Conversion utilities
9
+ export { getColorMatrix, rgbaToYuv, yuvToRgba, createHdr10MasteringMetadata, createContentLightLevel, } from './convert.js';
10
+ // FFmpeg color space mappings
11
+ export { AVCOL_PRI_VALUES, AVCOL_TRC_VALUES, AVCOL_SPC_VALUES, AVCOL_RANGE_VALUES, } from './maps.js';
12
+ // Extraction utilities
13
+ export { avColorPrimariesToWebCodecs, avColorTransferToWebCodecs, avColorSpaceToWebCodecs, avColorRangeToWebCodecs, extractColorSpaceFromFrame, } from './extract.js';
14
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/formats/color-space/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,QAAQ;AACR,OAAO,EACL,eAAe,EACf,uBAAuB,GAMxB,MAAM,YAAY,CAAC;AAEpB,uBAAuB;AACvB,OAAO,EACL,cAAc,EACd,SAAS,EACT,SAAS,EACT,4BAA4B,EAC5B,uBAAuB,GACxB,MAAM,cAAc,CAAC;AAEtB,8BAA8B;AAC9B,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,WAAW,CAAC;AAEnB,uBAAuB;AACvB,OAAO,EACL,2BAA2B,EAC3B,0BAA0B,EAC1B,uBAAuB,EACvB,uBAAuB,EACvB,0BAA0B,GAC3B,MAAM,cAAc,CAAC"}
@@ -0,0 +1,70 @@
1
+ /**
2
+ * FFmpeg color space enum value mappings
3
+ */
4
+ /**
5
+ * FFmpeg AVColorPrimaries enum values
6
+ */
7
+ export declare const AVCOL_PRI_VALUES: {
8
+ readonly RESERVED0: 0;
9
+ readonly BT709: 1;
10
+ readonly UNSPECIFIED: 2;
11
+ readonly RESERVED: 3;
12
+ readonly BT470M: 4;
13
+ readonly BT470BG: 5;
14
+ readonly SMPTE170M: 6;
15
+ readonly SMPTE240M: 7;
16
+ readonly FILM: 8;
17
+ readonly BT2020: 9;
18
+ readonly SMPTE428: 10;
19
+ readonly SMPTE431: 11;
20
+ readonly SMPTE432: 12;
21
+ };
22
+ /**
23
+ * FFmpeg AVColorTransferCharacteristic enum values
24
+ */
25
+ export declare const AVCOL_TRC_VALUES: {
26
+ readonly RESERVED0: 0;
27
+ readonly BT709: 1;
28
+ readonly UNSPECIFIED: 2;
29
+ readonly RESERVED: 3;
30
+ readonly GAMMA22: 4;
31
+ readonly GAMMA28: 5;
32
+ readonly SMPTE170M: 6;
33
+ readonly SMPTE240M: 7;
34
+ readonly LINEAR: 8;
35
+ readonly LOG: 9;
36
+ readonly LOG_SQRT: 10;
37
+ readonly IEC61966_2_4: 11;
38
+ readonly BT1361_ECG: 12;
39
+ readonly IEC61966_2_1: 13;
40
+ readonly BT2020_10: 14;
41
+ readonly BT2020_12: 15;
42
+ readonly SMPTE2084: 16;
43
+ readonly SMPTE428: 17;
44
+ readonly ARIB_STD_B67: 18;
45
+ };
46
+ /**
47
+ * FFmpeg AVColorSpace enum values (matrix coefficients)
48
+ */
49
+ export declare const AVCOL_SPC_VALUES: {
50
+ readonly RGB: 0;
51
+ readonly BT709: 1;
52
+ readonly UNSPECIFIED: 2;
53
+ readonly RESERVED: 3;
54
+ readonly FCC: 4;
55
+ readonly BT470BG: 5;
56
+ readonly SMPTE170M: 6;
57
+ readonly SMPTE240M: 7;
58
+ readonly YCGCO: 8;
59
+ readonly BT2020_NCL: 9;
60
+ readonly BT2020_CL: 10;
61
+ };
62
+ /**
63
+ * FFmpeg AVColorRange enum values
64
+ */
65
+ export declare const AVCOL_RANGE_VALUES: {
66
+ readonly UNSPECIFIED: 0;
67
+ readonly MPEG: 1;
68
+ readonly JPEG: 2;
69
+ };
70
+ //# sourceMappingURL=maps.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"maps.d.ts","sourceRoot":"","sources":["../../../src/formats/color-space/maps.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;CAcnB,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;CAoBnB,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;CAYnB,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,kBAAkB;;;;CAIrB,CAAC"}
@@ -0,0 +1,70 @@
1
+ /**
2
+ * FFmpeg color space enum value mappings
3
+ */
4
+ /**
5
+ * FFmpeg AVColorPrimaries enum values
6
+ */
7
+ export const AVCOL_PRI_VALUES = {
8
+ RESERVED0: 0,
9
+ BT709: 1,
10
+ UNSPECIFIED: 2,
11
+ RESERVED: 3,
12
+ BT470M: 4,
13
+ BT470BG: 5,
14
+ SMPTE170M: 6,
15
+ SMPTE240M: 7,
16
+ FILM: 8,
17
+ BT2020: 9,
18
+ SMPTE428: 10,
19
+ SMPTE431: 11,
20
+ SMPTE432: 12,
21
+ };
22
+ /**
23
+ * FFmpeg AVColorTransferCharacteristic enum values
24
+ */
25
+ export const AVCOL_TRC_VALUES = {
26
+ RESERVED0: 0,
27
+ BT709: 1,
28
+ UNSPECIFIED: 2,
29
+ RESERVED: 3,
30
+ GAMMA22: 4,
31
+ GAMMA28: 5,
32
+ SMPTE170M: 6,
33
+ SMPTE240M: 7,
34
+ LINEAR: 8,
35
+ LOG: 9,
36
+ LOG_SQRT: 10,
37
+ IEC61966_2_4: 11,
38
+ BT1361_ECG: 12,
39
+ IEC61966_2_1: 13,
40
+ BT2020_10: 14,
41
+ BT2020_12: 15,
42
+ SMPTE2084: 16,
43
+ SMPTE428: 17,
44
+ ARIB_STD_B67: 18,
45
+ };
46
+ /**
47
+ * FFmpeg AVColorSpace enum values (matrix coefficients)
48
+ */
49
+ export const AVCOL_SPC_VALUES = {
50
+ RGB: 0,
51
+ BT709: 1,
52
+ UNSPECIFIED: 2,
53
+ RESERVED: 3,
54
+ FCC: 4,
55
+ BT470BG: 5,
56
+ SMPTE170M: 6,
57
+ SMPTE240M: 7,
58
+ YCGCO: 8,
59
+ BT2020_NCL: 9,
60
+ BT2020_CL: 10,
61
+ };
62
+ /**
63
+ * FFmpeg AVColorRange enum values
64
+ */
65
+ export const AVCOL_RANGE_VALUES = {
66
+ UNSPECIFIED: 0,
67
+ MPEG: 1,
68
+ JPEG: 2,
69
+ };
70
+ //# sourceMappingURL=maps.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"maps.js","sourceRoot":"","sources":["../../../src/formats/color-space/maps.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,SAAS,EAAE,CAAC;IACZ,KAAK,EAAE,CAAC;IACR,WAAW,EAAE,CAAC;IACd,QAAQ,EAAE,CAAC;IACX,MAAM,EAAE,CAAC;IACT,OAAO,EAAE,CAAC;IACV,SAAS,EAAE,CAAC;IACZ,SAAS,EAAE,CAAC;IACZ,IAAI,EAAE,CAAC;IACP,MAAM,EAAE,CAAC;IACT,QAAQ,EAAE,EAAE;IACZ,QAAQ,EAAE,EAAE;IACZ,QAAQ,EAAE,EAAE;CACJ,CAAC;AAEX;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,SAAS,EAAE,CAAC;IACZ,KAAK,EAAE,CAAC;IACR,WAAW,EAAE,CAAC;IACd,QAAQ,EAAE,CAAC;IACX,OAAO,EAAE,CAAC;IACV,OAAO,EAAE,CAAC;IACV,SAAS,EAAE,CAAC;IACZ,SAAS,EAAE,CAAC;IACZ,MAAM,EAAE,CAAC;IACT,GAAG,EAAE,CAAC;IACN,QAAQ,EAAE,EAAE;IACZ,YAAY,EAAE,EAAE;IAChB,UAAU,EAAE,EAAE;IACd,YAAY,EAAE,EAAE;IAChB,SAAS,EAAE,EAAE;IACb,SAAS,EAAE,EAAE;IACb,SAAS,EAAE,EAAE;IACb,QAAQ,EAAE,EAAE;IACZ,YAAY,EAAE,EAAE;CACR,CAAC;AAEX;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,GAAG,EAAE,CAAC;IACN,KAAK,EAAE,CAAC;IACR,WAAW,EAAE,CAAC;IACd,QAAQ,EAAE,CAAC;IACX,GAAG,EAAE,CAAC;IACN,OAAO,EAAE,CAAC;IACV,SAAS,EAAE,CAAC;IACZ,SAAS,EAAE,CAAC;IACZ,KAAK,EAAE,CAAC;IACR,UAAU,EAAE,CAAC;IACb,SAAS,EAAE,EAAE;CACL,CAAC;AAEX;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,WAAW,EAAE,CAAC;IACd,IAAI,EAAE,CAAC;IACP,IAAI,EAAE,CAAC;CACC,CAAC"}
@@ -0,0 +1,68 @@
1
+ /**
2
+ * Color space type definitions
3
+ */
4
+ export type ColorMatrix = 'bt601' | 'bt709' | 'bt2020' | 'smpte170m' | 'bt470bg';
5
+ /**
6
+ * SMPTE ST 2086 Mastering Display Metadata
7
+ * Describes the color volume of the mastering display
8
+ */
9
+ export interface SmpteSt2086Metadata {
10
+ primaryRChromaticityX: number;
11
+ primaryRChromaticityY: number;
12
+ primaryGChromaticityX: number;
13
+ primaryGChromaticityY: number;
14
+ primaryBChromaticityX: number;
15
+ primaryBChromaticityY: number;
16
+ whitePointChromaticityX: number;
17
+ whitePointChromaticityY: number;
18
+ maxLuminance: number;
19
+ minLuminance: number;
20
+ }
21
+ /**
22
+ * Content Light Level Information
23
+ */
24
+ export interface ContentLightLevelInfo {
25
+ maxCLL: number;
26
+ maxFALL: number;
27
+ }
28
+ /**
29
+ * HDR Metadata combining mastering display and content light level info
30
+ */
31
+ export interface HdrMetadata {
32
+ smpteSt2086?: SmpteSt2086Metadata;
33
+ contentLightLevel?: ContentLightLevelInfo;
34
+ }
35
+ /**
36
+ * Video color space initialization options
37
+ */
38
+ export interface VideoColorSpaceInit {
39
+ primaries?: 'bt709' | 'bt470bg' | 'smpte170m' | 'bt2020' | 'smpte432';
40
+ transfer?: 'bt709' | 'smpte170m' | 'iec61966-2-1' | 'linear' | 'pq' | 'hlg';
41
+ matrix?: 'rgb' | 'bt709' | 'bt470bg' | 'smpte170m' | 'bt2020-ncl';
42
+ fullRange?: boolean;
43
+ hdrMetadata?: HdrMetadata;
44
+ }
45
+ /**
46
+ * VideoColorSpace - describes the color space of video content
47
+ */
48
+ export declare class VideoColorSpace {
49
+ readonly primaries: string | null;
50
+ readonly transfer: string | null;
51
+ readonly matrix: string | null;
52
+ readonly fullRange: boolean | null;
53
+ readonly hdrMetadata: HdrMetadata | null;
54
+ constructor(init?: VideoColorSpaceInit);
55
+ get isHdr(): boolean;
56
+ get hasHdrMetadata(): boolean;
57
+ toJSON(): {
58
+ primaries: string | null;
59
+ transfer: string | null;
60
+ matrix: string | null;
61
+ fullRange: boolean | null;
62
+ };
63
+ }
64
+ /**
65
+ * Common HDR10 display primaries (BT.2020 primaries with D65 white point)
66
+ */
67
+ export declare const HDR10_DISPLAY_PRIMARIES: Pick<SmpteSt2086Metadata, 'primaryRChromaticityX' | 'primaryRChromaticityY' | 'primaryGChromaticityX' | 'primaryGChromaticityY' | 'primaryBChromaticityX' | 'primaryBChromaticityY' | 'whitePointChromaticityX' | 'whitePointChromaticityY'>;
68
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/formats/color-space/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,OAAO,GAAG,QAAQ,GAAG,WAAW,GAAG,SAAS,CAAC;AAEjF;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IAClC,qBAAqB,EAAE,MAAM,CAAC;IAC9B,qBAAqB,EAAE,MAAM,CAAC;IAC9B,qBAAqB,EAAE,MAAM,CAAC;IAC9B,qBAAqB,EAAE,MAAM,CAAC;IAC9B,qBAAqB,EAAE,MAAM,CAAC;IAC9B,qBAAqB,EAAE,MAAM,CAAC;IAC9B,uBAAuB,EAAE,MAAM,CAAC;IAChC,uBAAuB,EAAE,MAAM,CAAC;IAChC,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,WAAW,CAAC,EAAE,mBAAmB,CAAC;IAClC,iBAAiB,CAAC,EAAE,qBAAqB,CAAC;CAC3C;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,SAAS,CAAC,EAAE,OAAO,GAAG,SAAS,GAAG,WAAW,GAAG,QAAQ,GAAG,UAAU,CAAC;IACtE,QAAQ,CAAC,EAAE,OAAO,GAAG,WAAW,GAAG,cAAc,GAAG,QAAQ,GAAG,IAAI,GAAG,KAAK,CAAC;IAC5E,MAAM,CAAC,EAAE,KAAK,GAAG,OAAO,GAAG,SAAS,GAAG,WAAW,GAAG,YAAY,CAAC;IAClE,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B;AAED;;GAEG;AACH,qBAAa,eAAe;IAC1B,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,QAAQ,CAAC,SAAS,EAAE,OAAO,GAAG,IAAI,CAAC;IACnC,QAAQ,CAAC,WAAW,EAAE,WAAW,GAAG,IAAI,CAAC;gBAE7B,IAAI,CAAC,EAAE,mBAAmB;IAQtC,IAAI,KAAK,IAAI,OAAO,CAEnB;IAED,IAAI,cAAc,IAAI,OAAO,CAK5B;IAED,MAAM,IAAI;QACR,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;QACzB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;QACxB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;QACtB,SAAS,EAAE,OAAO,GAAG,IAAI,CAAC;KAC3B;CAQF;AAED;;GAEG;AACH,eAAO,MAAM,uBAAuB,EAAE,IAAI,CACxC,mBAAmB,EACnB,uBAAuB,GAAG,uBAAuB,GACjD,uBAAuB,GAAG,uBAAuB,GACjD,uBAAuB,GAAG,uBAAuB,GACjD,yBAAyB,GAAG,yBAAyB,CAUtD,CAAC"}
@@ -0,0 +1,49 @@
1
+ /**
2
+ * Color space type definitions
3
+ */
4
+ /**
5
+ * VideoColorSpace - describes the color space of video content
6
+ */
7
+ export class VideoColorSpace {
8
+ primaries;
9
+ transfer;
10
+ matrix;
11
+ fullRange;
12
+ hdrMetadata;
13
+ constructor(init) {
14
+ this.primaries = init?.primaries ?? null;
15
+ this.transfer = init?.transfer ?? null;
16
+ this.matrix = init?.matrix ?? null;
17
+ this.fullRange = init?.fullRange ?? null;
18
+ this.hdrMetadata = init?.hdrMetadata ?? null;
19
+ }
20
+ get isHdr() {
21
+ return this.transfer === 'pq' || this.transfer === 'hlg';
22
+ }
23
+ get hasHdrMetadata() {
24
+ return this.hdrMetadata !== null && (this.hdrMetadata.smpteSt2086 !== undefined ||
25
+ this.hdrMetadata.contentLightLevel !== undefined);
26
+ }
27
+ toJSON() {
28
+ return {
29
+ primaries: this.primaries,
30
+ transfer: this.transfer,
31
+ matrix: this.matrix,
32
+ fullRange: this.fullRange,
33
+ };
34
+ }
35
+ }
36
+ /**
37
+ * Common HDR10 display primaries (BT.2020 primaries with D65 white point)
38
+ */
39
+ export const HDR10_DISPLAY_PRIMARIES = {
40
+ primaryRChromaticityX: 0.708,
41
+ primaryRChromaticityY: 0.292,
42
+ primaryGChromaticityX: 0.170,
43
+ primaryGChromaticityY: 0.797,
44
+ primaryBChromaticityX: 0.131,
45
+ primaryBChromaticityY: 0.046,
46
+ whitePointChromaticityX: 0.3127,
47
+ whitePointChromaticityY: 0.3290,
48
+ };
49
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/formats/color-space/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAgDH;;GAEG;AACH,MAAM,OAAO,eAAe;IACjB,SAAS,CAAgB;IACzB,QAAQ,CAAgB;IACxB,MAAM,CAAgB;IACtB,SAAS,CAAiB;IAC1B,WAAW,CAAqB;IAEzC,YAAY,IAA0B;QACpC,IAAI,CAAC,SAAS,GAAG,IAAI,EAAE,SAAS,IAAI,IAAI,CAAC;QACzC,IAAI,CAAC,QAAQ,GAAG,IAAI,EAAE,QAAQ,IAAI,IAAI,CAAC;QACvC,IAAI,CAAC,MAAM,GAAG,IAAI,EAAE,MAAM,IAAI,IAAI,CAAC;QACnC,IAAI,CAAC,SAAS,GAAG,IAAI,EAAE,SAAS,IAAI,IAAI,CAAC;QACzC,IAAI,CAAC,WAAW,GAAG,IAAI,EAAE,WAAW,IAAI,IAAI,CAAC;IAC/C,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,QAAQ,KAAK,IAAI,IAAI,IAAI,CAAC,QAAQ,KAAK,KAAK,CAAC;IAC3D,CAAC;IAED,IAAI,cAAc;QAChB,OAAO,IAAI,CAAC,WAAW,KAAK,IAAI,IAAI,CAClC,IAAI,CAAC,WAAW,CAAC,WAAW,KAAK,SAAS;YAC1C,IAAI,CAAC,WAAW,CAAC,iBAAiB,KAAK,SAAS,CACjD,CAAC;IACJ,CAAC;IAED,MAAM;QAMJ,OAAO;YACL,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,SAAS,EAAE,IAAI,CAAC,SAAS;SAC1B,CAAC;IACJ,CAAC;CACF;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAMhC;IACF,qBAAqB,EAAE,KAAK;IAC5B,qBAAqB,EAAE,KAAK;IAC5B,qBAAqB,EAAE,KAAK;IAC5B,qBAAqB,EAAE,KAAK;IAC5B,qBAAqB,EAAE,KAAK;IAC5B,qBAAqB,EAAE,KAAK;IAC5B,uBAAuB,EAAE,MAAM;IAC/B,uBAAuB,EAAE,MAAM;CAChC,CAAC"}