@carbonenginejs/runtime-resource 0.1.0

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 (372) hide show
  1. package/FORMAT-PROVENANCE.md +135 -0
  2. package/LICENSE +21 -0
  3. package/NOTICE +29 -0
  4. package/README.md +241 -0
  5. package/dist/CjsMotherLode.js +56 -0
  6. package/dist/CjsMotherLode.js.map +1 -0
  7. package/dist/CjsResMan.js +740 -0
  8. package/dist/CjsResMan.js.map +1 -0
  9. package/dist/CjsResManQueue.js +214 -0
  10. package/dist/CjsResManQueue.js.map +1 -0
  11. package/dist/CjsResource.js +366 -0
  12. package/dist/CjsResource.js.map +1 -0
  13. package/dist/CjsResourceSource.js +59 -0
  14. package/dist/CjsResourceSource.js.map +1 -0
  15. package/dist/_virtual/_rollupPluginBabelHelpers.js +153 -0
  16. package/dist/_virtual/_rollupPluginBabelHelpers.js.map +1 -0
  17. package/dist/format/CjsFormat.js +178 -0
  18. package/dist/format/CjsFormat.js.map +1 -0
  19. package/dist/format/CjsResourceProbe.js +269 -0
  20. package/dist/format/CjsResourceProbe.js.map +1 -0
  21. package/dist/format/payloadContract.js +173 -0
  22. package/dist/format/payloadContract.js.map +1 -0
  23. package/dist/formats/black/CjsBlackFormat.js +272 -0
  24. package/dist/formats/black/CjsBlackFormat.js.map +1 -0
  25. package/dist/formats/black/core/CjsBlackBinaryReader.js +153 -0
  26. package/dist/formats/black/core/CjsBlackBinaryReader.js.map +1 -0
  27. package/dist/formats/black/core/CjsBlackPropertyReaders.js +382 -0
  28. package/dist/formats/black/core/CjsBlackPropertyReaders.js.map +1 -0
  29. package/dist/formats/black/core/CjsBlackReader.js +760 -0
  30. package/dist/formats/black/core/CjsBlackReader.js.map +1 -0
  31. package/dist/formats/black/core/CjsBlackSchemaRegistry.js +433 -0
  32. package/dist/formats/black/core/CjsBlackSchemaRegistry.js.map +1 -0
  33. package/dist/formats/black/core/black-schema-v1-2026-07-11.json.js +4 -0
  34. package/dist/formats/black/core/black-schema-v1-2026-07-11.json.js.map +1 -0
  35. package/dist/formats/black/core/blackConstants.js +7 -0
  36. package/dist/formats/black/core/blackConstants.js.map +1 -0
  37. package/dist/formats/black/core/blackDefinitions.js +10 -0
  38. package/dist/formats/black/core/blackDefinitions.js.map +1 -0
  39. package/dist/formats/black/core/blackEnums.js +6 -0
  40. package/dist/formats/black/core/blackEnums.js.map +1 -0
  41. package/dist/formats/black/core/blackSchema.js +3 -0
  42. package/dist/formats/black/core/blackSchema.js.map +1 -0
  43. package/dist/formats/black/core/blackVersion.js +22 -0
  44. package/dist/formats/black/core/blackVersion.js.map +1 -0
  45. package/dist/formats/black/core/helpers.js +182 -0
  46. package/dist/formats/black/core/helpers.js.map +1 -0
  47. package/dist/formats/black/core/schema.js +4 -0
  48. package/dist/formats/black/core/schema.js.map +1 -0
  49. package/dist/formats/black/index.js +2 -0
  50. package/dist/formats/black/index.js.map +1 -0
  51. package/dist/formats/bnk/CjsBnkFormat.js +245 -0
  52. package/dist/formats/bnk/CjsBnkFormat.js.map +1 -0
  53. package/dist/formats/bnk/core/helpers.js +354 -0
  54. package/dist/formats/bnk/core/helpers.js.map +1 -0
  55. package/dist/formats/bnk/core/soundbanksInfo.js +246 -0
  56. package/dist/formats/bnk/core/soundbanksInfo.js.map +1 -0
  57. package/dist/formats/bnk/index.js +3 -0
  58. package/dist/formats/bnk/index.js.map +1 -0
  59. package/dist/formats/cmf/CjsCmfFormat.js +491 -0
  60. package/dist/formats/cmf/CjsCmfFormat.js.map +1 -0
  61. package/dist/formats/cmf/core/binary.js +118 -0
  62. package/dist/formats/cmf/core/binary.js.map +1 -0
  63. package/dist/formats/cmf/core/buffers.js +233 -0
  64. package/dist/formats/cmf/core/buffers.js.map +1 -0
  65. package/dist/formats/cmf/core/constants.js +47 -0
  66. package/dist/formats/cmf/core/constants.js.map +1 -0
  67. package/dist/formats/cmf/core/gr2Anim.js +453 -0
  68. package/dist/formats/cmf/core/gr2Anim.js.map +1 -0
  69. package/dist/formats/cmf/core/helpers.js +287 -0
  70. package/dist/formats/cmf/core/helpers.js.map +1 -0
  71. package/dist/formats/cmf/core/pack.js +276 -0
  72. package/dist/formats/cmf/core/pack.js.map +1 -0
  73. package/dist/formats/cmf/core/schema.js +364 -0
  74. package/dist/formats/cmf/core/schema.js.map +1 -0
  75. package/dist/formats/cmf/core/shared.js +268 -0
  76. package/dist/formats/cmf/core/shared.js.map +1 -0
  77. package/dist/formats/cmf/core/writer.js +517 -0
  78. package/dist/formats/cmf/core/writer.js.map +1 -0
  79. package/dist/formats/cmf/index.js +2 -0
  80. package/dist/formats/cmf/index.js.map +1 -0
  81. package/dist/formats/dds/CjsDdsFormat.js +187 -0
  82. package/dist/formats/dds/CjsDdsFormat.js.map +1 -0
  83. package/dist/formats/dds/core/helpers.js +812 -0
  84. package/dist/formats/dds/core/helpers.js.map +1 -0
  85. package/dist/formats/dds/index.js +2 -0
  86. package/dist/formats/dds/index.js.map +1 -0
  87. package/dist/formats/fbx/CjsFbxFormat.js +260 -0
  88. package/dist/formats/fbx/CjsFbxFormat.js.map +1 -0
  89. package/dist/formats/fbx/core/helpers.js +3901 -0
  90. package/dist/formats/fbx/core/helpers.js.map +1 -0
  91. package/dist/formats/fbx/index.js +2 -0
  92. package/dist/formats/fbx/index.js.map +1 -0
  93. package/dist/formats/flac/CjsFlacFormat.js +81 -0
  94. package/dist/formats/flac/CjsFlacFormat.js.map +1 -0
  95. package/dist/formats/flac/core/helpers.js +295 -0
  96. package/dist/formats/flac/core/helpers.js.map +1 -0
  97. package/dist/formats/flac/index.js +2 -0
  98. package/dist/formats/flac/index.js.map +1 -0
  99. package/dist/formats/gif/CjsGifFormat.js +81 -0
  100. package/dist/formats/gif/CjsGifFormat.js.map +1 -0
  101. package/dist/formats/gif/core/helpers.js +360 -0
  102. package/dist/formats/gif/core/helpers.js.map +1 -0
  103. package/dist/formats/gif/index.js +2 -0
  104. package/dist/formats/gif/index.js.map +1 -0
  105. package/dist/formats/gltf/CjsGltfFormat.js +284 -0
  106. package/dist/formats/gltf/CjsGltfFormat.js.map +1 -0
  107. package/dist/formats/gltf/core/helpers.js +292 -0
  108. package/dist/formats/gltf/core/helpers.js.map +1 -0
  109. package/dist/formats/gltf/core/json.js +79 -0
  110. package/dist/formats/gltf/core/json.js.map +1 -0
  111. package/dist/formats/gltf/core/parser.js +666 -0
  112. package/dist/formats/gltf/core/parser.js.map +1 -0
  113. package/dist/formats/gltf/core/targets.js +163 -0
  114. package/dist/formats/gltf/core/targets.js.map +1 -0
  115. package/dist/formats/gltf/index.js +2 -0
  116. package/dist/formats/gltf/index.js.map +1 -0
  117. package/dist/formats/index.js +23 -0
  118. package/dist/formats/index.js.map +1 -0
  119. package/dist/formats/jpeg/CjsJpegFormat.js +200 -0
  120. package/dist/formats/jpeg/CjsJpegFormat.js.map +1 -0
  121. package/dist/formats/jpeg/core/helpers.js +350 -0
  122. package/dist/formats/jpeg/core/helpers.js.map +1 -0
  123. package/dist/formats/jpeg/core/jpeg.js +377 -0
  124. package/dist/formats/jpeg/core/jpeg.js.map +1 -0
  125. package/dist/formats/jpeg/index.js +2 -0
  126. package/dist/formats/jpeg/index.js.map +1 -0
  127. package/dist/formats/mp3/CjsMp3Format.js +186 -0
  128. package/dist/formats/mp3/CjsMp3Format.js.map +1 -0
  129. package/dist/formats/mp3/core/helpers.js +338 -0
  130. package/dist/formats/mp3/core/helpers.js.map +1 -0
  131. package/dist/formats/mp3/index.js +2 -0
  132. package/dist/formats/mp3/index.js.map +1 -0
  133. package/dist/formats/mp4/CjsMp4Format.js +185 -0
  134. package/dist/formats/mp4/CjsMp4Format.js.map +1 -0
  135. package/dist/formats/mp4/core/helpers.js +449 -0
  136. package/dist/formats/mp4/core/helpers.js.map +1 -0
  137. package/dist/formats/mp4/index.js +2 -0
  138. package/dist/formats/mp4/index.js.map +1 -0
  139. package/dist/formats/obj/CjsObjFormat.js +247 -0
  140. package/dist/formats/obj/CjsObjFormat.js.map +1 -0
  141. package/dist/formats/obj/core/helpers.js +573 -0
  142. package/dist/formats/obj/core/helpers.js.map +1 -0
  143. package/dist/formats/obj/core/json.js +64 -0
  144. package/dist/formats/obj/core/json.js.map +1 -0
  145. package/dist/formats/obj/core/parser.js +321 -0
  146. package/dist/formats/obj/core/parser.js.map +1 -0
  147. package/dist/formats/obj/index.js +2 -0
  148. package/dist/formats/obj/index.js.map +1 -0
  149. package/dist/formats/ogg/CjsOggFormat.js +82 -0
  150. package/dist/formats/ogg/CjsOggFormat.js.map +1 -0
  151. package/dist/formats/ogg/core/helpers.js +387 -0
  152. package/dist/formats/ogg/core/helpers.js.map +1 -0
  153. package/dist/formats/ogg/core/imdct.js +178 -0
  154. package/dist/formats/ogg/core/imdct.js.map +1 -0
  155. package/dist/formats/ogg/core/vorbis.js +999 -0
  156. package/dist/formats/ogg/core/vorbis.js.map +1 -0
  157. package/dist/formats/ogg/index.js +2 -0
  158. package/dist/formats/ogg/index.js.map +1 -0
  159. package/dist/formats/png/CjsPngFormat.js +189 -0
  160. package/dist/formats/png/CjsPngFormat.js.map +1 -0
  161. package/dist/formats/png/core/helpers.js +583 -0
  162. package/dist/formats/png/core/helpers.js.map +1 -0
  163. package/dist/formats/png/index.js +2 -0
  164. package/dist/formats/png/index.js.map +1 -0
  165. package/dist/formats/red/CjsRedFormat.js +247 -0
  166. package/dist/formats/red/CjsRedFormat.js.map +1 -0
  167. package/dist/formats/red/core/CjsRedReader.js +201 -0
  168. package/dist/formats/red/core/CjsRedReader.js.map +1 -0
  169. package/dist/formats/red/core/blackDefinitions.js +3 -0
  170. package/dist/formats/red/core/blackDefinitions.js.map +1 -0
  171. package/dist/formats/red/core/helpers.js +136 -0
  172. package/dist/formats/red/core/helpers.js.map +1 -0
  173. package/dist/formats/red/core/redGraph.js +68 -0
  174. package/dist/formats/red/core/redGraph.js.map +1 -0
  175. package/dist/formats/red/core/schema.js +4 -0
  176. package/dist/formats/red/core/schema.js.map +1 -0
  177. package/dist/formats/red/index.js +2 -0
  178. package/dist/formats/red/index.js.map +1 -0
  179. package/dist/formats/stl/CjsStlFormat.js +304 -0
  180. package/dist/formats/stl/CjsStlFormat.js.map +1 -0
  181. package/dist/formats/stl/core/helpers.js +257 -0
  182. package/dist/formats/stl/core/helpers.js.map +1 -0
  183. package/dist/formats/stl/core/json.js +51 -0
  184. package/dist/formats/stl/core/json.js.map +1 -0
  185. package/dist/formats/stl/core/stl.js +544 -0
  186. package/dist/formats/stl/core/stl.js.map +1 -0
  187. package/dist/formats/stl/core/targets.js +163 -0
  188. package/dist/formats/stl/core/targets.js.map +1 -0
  189. package/dist/formats/stl/index.js +2 -0
  190. package/dist/formats/stl/index.js.map +1 -0
  191. package/dist/formats/tga/CjsTgaFormat.js +186 -0
  192. package/dist/formats/tga/CjsTgaFormat.js.map +1 -0
  193. package/dist/formats/tga/core/helpers.js +446 -0
  194. package/dist/formats/tga/core/helpers.js.map +1 -0
  195. package/dist/formats/tga/index.js +2 -0
  196. package/dist/formats/tga/index.js.map +1 -0
  197. package/dist/formats/wav/CjsWavFormat.js +186 -0
  198. package/dist/formats/wav/CjsWavFormat.js.map +1 -0
  199. package/dist/formats/wav/core/helpers.js +328 -0
  200. package/dist/formats/wav/core/helpers.js.map +1 -0
  201. package/dist/formats/wav/index.js +2 -0
  202. package/dist/formats/wav/index.js.map +1 -0
  203. package/dist/formats/webm/CjsWebmFormat.js +185 -0
  204. package/dist/formats/webm/CjsWebmFormat.js.map +1 -0
  205. package/dist/formats/webm/core/helpers.js +537 -0
  206. package/dist/formats/webm/core/helpers.js.map +1 -0
  207. package/dist/formats/webm/index.js +2 -0
  208. package/dist/formats/webm/index.js.map +1 -0
  209. package/dist/formats/webp/CjsWebpFormat.js +80 -0
  210. package/dist/formats/webp/CjsWebpFormat.js.map +1 -0
  211. package/dist/formats/webp/core/helpers.js +214 -0
  212. package/dist/formats/webp/core/helpers.js.map +1 -0
  213. package/dist/formats/webp/index.js +2 -0
  214. package/dist/formats/webp/index.js.map +1 -0
  215. package/dist/formats/wem/CjsWemFormat.js +197 -0
  216. package/dist/formats/wem/CjsWemFormat.js.map +1 -0
  217. package/dist/formats/wem/core/bitStream.js +259 -0
  218. package/dist/formats/wem/core/bitStream.js.map +1 -0
  219. package/dist/formats/wem/core/codebookLibrary.js +164 -0
  220. package/dist/formats/wem/core/codebookLibrary.js.map +1 -0
  221. package/dist/formats/wem/core/helpers.js +336 -0
  222. package/dist/formats/wem/core/helpers.js.map +1 -0
  223. package/dist/formats/wem/core/packedCodebooksAotuv603.js +30 -0
  224. package/dist/formats/wem/core/packedCodebooksAotuv603.js.map +1 -0
  225. package/dist/formats/wem/core/wemToOgg.js +485 -0
  226. package/dist/formats/wem/core/wemToOgg.js.map +1 -0
  227. package/dist/formats/wem/index.js +2 -0
  228. package/dist/formats/wem/index.js.map +1 -0
  229. package/dist/formats/yaml/CjsYamlFormat.js +77 -0
  230. package/dist/formats/yaml/CjsYamlFormat.js.map +1 -0
  231. package/dist/formats/yaml/core/CjsYamlReader.js +304 -0
  232. package/dist/formats/yaml/core/CjsYamlReader.js.map +1 -0
  233. package/dist/formats/yaml/core/helpers.js +160 -0
  234. package/dist/formats/yaml/core/helpers.js.map +1 -0
  235. package/dist/formats/yaml/index.js +2 -0
  236. package/dist/formats/yaml/index.js.map +1 -0
  237. package/dist/generated/resources/AudioGeometryResData.js +47 -0
  238. package/dist/generated/resources/AudioGeometryResData.js.map +1 -0
  239. package/dist/generated/resources/CmfVertexReader.js +46 -0
  240. package/dist/generated/resources/CmfVertexReader.js.map +1 -0
  241. package/dist/generated/resources/GStateBindingCallbackData.js +31 -0
  242. package/dist/generated/resources/GStateBindingCallbackData.js.map +1 -0
  243. package/dist/generated/resources/MeshDecalData.js +37 -0
  244. package/dist/generated/resources/MeshDecalData.js.map +1 -0
  245. package/dist/generated/resources/MeshDecalLodData.js +34 -0
  246. package/dist/generated/resources/MeshDecalLodData.js.map +1 -0
  247. package/dist/generated/resources/Tr2AsyncSave.js +46 -0
  248. package/dist/generated/resources/Tr2AsyncSave.js.map +1 -0
  249. package/dist/generated/resources/Tr2CmfContents.js +37 -0
  250. package/dist/generated/resources/Tr2CmfContents.js.map +1 -0
  251. package/dist/generated/resources/Tr2GrannyIntersectionResult.js +58 -0
  252. package/dist/generated/resources/Tr2GrannyIntersectionResult.js.map +1 -0
  253. package/dist/generated/resources/Tr2LoadPrepareFence.js +37 -0
  254. package/dist/generated/resources/Tr2LoadPrepareFence.js.map +1 -0
  255. package/dist/generated/resources/Tr2MaterialArea.js +34 -0
  256. package/dist/generated/resources/Tr2MaterialArea.js.map +1 -0
  257. package/dist/generated/resources/Tr2MaterialMesh.js +31 -0
  258. package/dist/generated/resources/Tr2MaterialMesh.js.map +1 -0
  259. package/dist/generated/resources/Tr2MaterialRes.js +34 -0
  260. package/dist/generated/resources/Tr2MaterialRes.js.map +1 -0
  261. package/dist/generated/resources/Tr2ShaderPermutation.js +43 -0
  262. package/dist/generated/resources/Tr2ShaderPermutation.js.map +1 -0
  263. package/dist/generated/resources/Tr2TextureLodManager.js +60 -0
  264. package/dist/generated/resources/Tr2TextureLodManager.js.map +1 -0
  265. package/dist/generated/resources/Tr2TextureLodUpdateRequest.js +37 -0
  266. package/dist/generated/resources/Tr2TextureLodUpdateRequest.js.map +1 -0
  267. package/dist/generated/resources/Tr2TexturePackChannel.js +37 -0
  268. package/dist/generated/resources/Tr2TexturePackChannel.js.map +1 -0
  269. package/dist/generated/resources/Tr2TexturePipeline.js +44 -0
  270. package/dist/generated/resources/Tr2TexturePipeline.js.map +1 -0
  271. package/dist/generated/resources/Tr2TexturePipelineParams.js +34 -0
  272. package/dist/generated/resources/Tr2TexturePipelineParams.js.map +1 -0
  273. package/dist/generated/resources/Tr2TexturePipelineStepCompress.js +40 -0
  274. package/dist/generated/resources/Tr2TexturePipelineStepCompress.js.map +1 -0
  275. package/dist/generated/resources/Tr2TexturePipelineStepLimitSize.js +34 -0
  276. package/dist/generated/resources/Tr2TexturePipelineStepLimitSize.js.map +1 -0
  277. package/dist/generated/resources/Tr2TexturePipelineStepLoad.js +31 -0
  278. package/dist/generated/resources/Tr2TexturePipelineStepLoad.js.map +1 -0
  279. package/dist/generated/resources/Tr2TexturePipelineStepPack.js +43 -0
  280. package/dist/generated/resources/Tr2TexturePipelineStepPack.js.map +1 -0
  281. package/dist/generated/resources/TriGeometryResAreaData.js +59 -0
  282. package/dist/generated/resources/TriGeometryResAreaData.js.map +1 -0
  283. package/dist/generated/resources/TriGeometryResJointData.js +38 -0
  284. package/dist/generated/resources/TriGeometryResJointData.js.map +1 -0
  285. package/dist/generated/resources/TriGeometryResLodData.js +88 -0
  286. package/dist/generated/resources/TriGeometryResLodData.js.map +1 -0
  287. package/dist/generated/resources/TriGeometryResMeshData.js +63 -0
  288. package/dist/generated/resources/TriGeometryResMeshData.js.map +1 -0
  289. package/dist/generated/resources/TriGeometryResSkeletonData.js +34 -0
  290. package/dist/generated/resources/TriGeometryResSkeletonData.js.map +1 -0
  291. package/dist/generated/resources/TriJointBinding.js +38 -0
  292. package/dist/generated/resources/TriJointBinding.js.map +1 -0
  293. package/dist/generated/resources/TriMorphTargetGeometryConstants.js +46 -0
  294. package/dist/generated/resources/TriMorphTargetGeometryConstants.js.map +1 -0
  295. package/dist/generated/resources/TriRtGeometryConstants.js +88 -0
  296. package/dist/generated/resources/TriRtGeometryConstants.js.map +1 -0
  297. package/dist/generated/resources/enums.js +18 -0
  298. package/dist/generated/resources/enums.js.map +1 -0
  299. package/dist/generated/resources/index.js +32 -0
  300. package/dist/generated/resources/index.js.map +1 -0
  301. package/dist/index.js +52 -0
  302. package/dist/index.js.map +1 -0
  303. package/dist/resourcePath.js +18 -0
  304. package/dist/resourcePath.js.map +1 -0
  305. package/dist/resourceStates.js +9 -0
  306. package/dist/resourceStates.js.map +1 -0
  307. package/dist/resources/Tr2EffectRes.js +71 -0
  308. package/dist/resources/Tr2EffectRes.js.map +1 -0
  309. package/dist/resources/Tr2GrannyStateRes.js +44 -0
  310. package/dist/resources/Tr2GrannyStateRes.js.map +1 -0
  311. package/dist/resources/Tr2ImageRes.js +114 -0
  312. package/dist/resources/Tr2ImageRes.js.map +1 -0
  313. package/dist/resources/Tr2LightProfileRes.js +40 -0
  314. package/dist/resources/Tr2LightProfileRes.js.map +1 -0
  315. package/dist/resources/TriGeometryRes.js +216 -0
  316. package/dist/resources/TriGeometryRes.js.map +1 -0
  317. package/dist/resources/TriGrannyRes.js +43 -0
  318. package/dist/resources/TriGrannyRes.js.map +1 -0
  319. package/dist/resources/TriTextureRes.js +304 -0
  320. package/dist/resources/TriTextureRes.js.map +1 -0
  321. package/dist/resources/resourceBoundary.js +47 -0
  322. package/dist/resources/resourceBoundary.js.map +1 -0
  323. package/dist/texture/CjsTextureArrayRes.js +406 -0
  324. package/dist/texture/CjsTextureArrayRes.js.map +1 -0
  325. package/dist/texture/CjsTextureParameterProxy.js +133 -0
  326. package/dist/texture/CjsTextureParameterProxy.js.map +1 -0
  327. package/format-notices/black/LICENSE +21 -0
  328. package/format-notices/black/NOTICE +47 -0
  329. package/format-notices/bnk/LICENSE +21 -0
  330. package/format-notices/bnk/NOTICE +17 -0
  331. package/format-notices/cmf/LICENSE +21 -0
  332. package/format-notices/cmf/NOTICE +36 -0
  333. package/format-notices/dds/LICENSE +21 -0
  334. package/format-notices/dds/NOTICE +14 -0
  335. package/format-notices/fbx/LICENSE +21 -0
  336. package/format-notices/fbx/NOTICE +14 -0
  337. package/format-notices/flac/LICENSE +21 -0
  338. package/format-notices/flac/NOTICE +14 -0
  339. package/format-notices/gif/LICENSE +21 -0
  340. package/format-notices/gif/NOTICE +14 -0
  341. package/format-notices/gltf/LICENSE +21 -0
  342. package/format-notices/gltf/NOTICE +27 -0
  343. package/format-notices/jpeg/LICENSE +21 -0
  344. package/format-notices/jpeg/NOTICE +14 -0
  345. package/format-notices/mp3/LICENSE +21 -0
  346. package/format-notices/mp3/NOTICE +14 -0
  347. package/format-notices/mp4/LICENSE +21 -0
  348. package/format-notices/mp4/NOTICE +14 -0
  349. package/format-notices/obj/LICENSE +21 -0
  350. package/format-notices/obj/NOTICE +26 -0
  351. package/format-notices/ogg/LICENSE +21 -0
  352. package/format-notices/ogg/NOTICE +28 -0
  353. package/format-notices/png/LICENSE +21 -0
  354. package/format-notices/png/NOTICE +14 -0
  355. package/format-notices/red/LICENSE +21 -0
  356. package/format-notices/red/NOTICE +31 -0
  357. package/format-notices/stl/LICENSE +21 -0
  358. package/format-notices/stl/NOTICE +21 -0
  359. package/format-notices/tga/LICENSE +21 -0
  360. package/format-notices/tga/NOTICE +14 -0
  361. package/format-notices/wav/LICENSE +21 -0
  362. package/format-notices/wav/NOTICE +14 -0
  363. package/format-notices/webm/LICENSE +21 -0
  364. package/format-notices/webm/NOTICE +14 -0
  365. package/format-notices/webp/LICENSE +21 -0
  366. package/format-notices/webp/NOTICE +14 -0
  367. package/format-notices/wem/LICENSE +57 -0
  368. package/format-notices/wem/NOTICE +33 -0
  369. package/format-notices/yaml/LICENSE +21 -0
  370. package/format-notices/yaml/NOTICE +44 -0
  371. package/package.json +51 -0
  372. package/resource-lifecycle.md +487 -0
@@ -0,0 +1,449 @@
1
+ const OUTPUT_VIDEO = "video";
2
+ const OUTPUT_RAW = "raw";
3
+ const OUTPUT_JSON = "json";
4
+ const DEFAULT_VALUES = Object.freeze({
5
+ emit: OUTPUT_RAW,
6
+ inputType: "",
7
+ source: ""
8
+ });
9
+ const DEBUG_OUTPUTS = Object.freeze({
10
+ mp4: "mp4Json",
11
+ m4a: "mp4Json",
12
+ webm: "webmJson"
13
+ });
14
+ function normalizeValues(base = DEFAULT_VALUES, options = {}, readerName = "CjsVideoFormat") {
15
+ const values = {
16
+ ...DEFAULT_VALUES,
17
+ ...(base || {}),
18
+ ...(options || {})
19
+ };
20
+ values.inputType = values.inputType ? String(values.inputType).replace(/^\./u, "").toLowerCase() : "";
21
+ values.emit = normalizeEmit(values.emit, values.inputType, readerName);
22
+ return values;
23
+ }
24
+ function normalizeEmit(emit, inputType, readerName) {
25
+ if (emit === undefined || emit === null) return OUTPUT_RAW;
26
+ if (emit === OUTPUT_JSON && inputType) return DEBUG_OUTPUTS[inputType] || OUTPUT_JSON;
27
+ if ([OUTPUT_VIDEO, OUTPUT_RAW, OUTPUT_JSON].includes(emit)) return emit;
28
+ if (Object.values(DEBUG_OUTPUTS).includes(emit)) return emit;
29
+ throw new TypeError(`${readerName}: unknown emit value ${JSON.stringify(emit)}`);
30
+ }
31
+ function toBytes(input) {
32
+ if (input instanceof Uint8Array) return input;
33
+ if (input instanceof ArrayBuffer) return new Uint8Array(input);
34
+ if (ArrayBuffer.isView(input)) return new Uint8Array(input.buffer, input.byteOffset, input.byteLength);
35
+ throw new TypeError("Video input must be Uint8Array, ArrayBuffer, or DataView");
36
+ }
37
+ function inspectWithValues(input, values = DEFAULT_VALUES, expectedType = "") {
38
+ const bytes = toBytes(input);
39
+ const metadata = inspectBytes(bytes);
40
+ if (expectedType && metadata.sourceFormat && metadata.sourceFormat !== expectedType) {
41
+ throw new TypeError(`CjsVideoFormat: expected ${expectedType}, got ${metadata.sourceFormat}`);
42
+ }
43
+ return {
44
+ payloadType: "video",
45
+ mediaTypes: ["video"],
46
+ byteLength: bytes.byteLength,
47
+ sourceFormat: expectedType || values.inputType || metadata.sourceFormat,
48
+ ...metadata
49
+ };
50
+ }
51
+ function isSupportedWithValues(input, values = DEFAULT_VALUES, expectedType = "") {
52
+ try {
53
+ const metadata = inspectWithValues(input, values, expectedType);
54
+ const codecs = getTrackCodecSummary(metadata);
55
+ const mimeType = getMediaMimeType(metadata);
56
+ return {
57
+ format: metadata.sourceFormat,
58
+ source: values.source || "buffer",
59
+ supported: metadata.sourceFormat ? "partial" : "none",
60
+ confidence: metadata.sourceFormat ? 1 : 0,
61
+ preferred: "container",
62
+ reason: metadata.sourceFormat ? "Container/header recognized." : "Unrecognized video format.",
63
+ metadata,
64
+ variants: [{
65
+ kind: "raw",
66
+ payloadType: "raw",
67
+ codec: metadata.sourceFormat,
68
+ mimeType,
69
+ supported: true,
70
+ containerOnly: true,
71
+ isDecoded: false,
72
+ frameDecodeSupported: false
73
+ }, {
74
+ kind: "container",
75
+ payloadType: "video",
76
+ codec: metadata.sourceFormat,
77
+ mimeType,
78
+ codecs: codecs.codecs,
79
+ videoCodecs: codecs.videoCodecs,
80
+ audioCodecs: codecs.audioCodecs,
81
+ supported: true,
82
+ containerOnly: true,
83
+ isDecoded: false,
84
+ frameDecodeSupported: false
85
+ }, {
86
+ kind: "decoded",
87
+ payloadType: "video-frame",
88
+ codec: "frames",
89
+ supported: false,
90
+ reason: "Video decode is not implemented in this package."
91
+ }],
92
+ warnings: [],
93
+ errors: []
94
+ };
95
+ } catch (error) {
96
+ return {
97
+ format: expectedType || values.inputType || "",
98
+ source: values.source || "buffer",
99
+ supported: "none",
100
+ confidence: 0,
101
+ preferred: "",
102
+ reason: error.message,
103
+ metadata: null,
104
+ variants: [],
105
+ warnings: [],
106
+ errors: [error.message]
107
+ };
108
+ }
109
+ }
110
+ function readWithValues(input, values = DEFAULT_VALUES, expectedType = "") {
111
+ const bytes = toBytes(input);
112
+ const metadata = inspectWithValues(bytes, values, expectedType);
113
+ if (values.emit === OUTPUT_RAW) {
114
+ return {
115
+ payloadType: "raw",
116
+ sourceFormat: metadata.sourceFormat,
117
+ metadata,
118
+ bytes
119
+ };
120
+ }
121
+ if (values.emit === OUTPUT_JSON || values.emit === DEBUG_OUTPUTS[metadata.sourceFormat]) return metadata;
122
+ if (values.emit === OUTPUT_VIDEO && metadata.sourceFormat === "mp4") {
123
+ const codecs = getTrackCodecSummary(metadata);
124
+ const mimeType = getMediaMimeType(metadata);
125
+ return {
126
+ payloadType: OUTPUT_VIDEO,
127
+ sourceFormat: "mp4",
128
+ container: metadata.container,
129
+ mimeType,
130
+ containerOnly: true,
131
+ isDecoded: false,
132
+ frameDecodeSupported: false,
133
+ codecs: codecs.codecs,
134
+ videoCodecs: codecs.videoCodecs,
135
+ audioCodecs: codecs.audioCodecs,
136
+ duration: metadata.duration || 0,
137
+ durationTimescale: metadata.durationTimescale || 1,
138
+ tracks: metadata.tracks || [],
139
+ metadata,
140
+ sourceBytes: bytes
141
+ };
142
+ }
143
+ const error = new Error(`${metadata.sourceFormat}: emit "${values.emit}" is not implemented yet`);
144
+ error.code = "CJS_FORMAT_OUTPUT_NOT_IMPLEMENTED";
145
+ error.sourceFormat = metadata.sourceFormat;
146
+ error.emit = values.emit;
147
+ throw error;
148
+ }
149
+ function getTrackCodecSummary(metadata) {
150
+ const tracks = Array.isArray(metadata.tracks) ? metadata.tracks : [];
151
+ return {
152
+ codecs: uniqueTrackCodecs(tracks),
153
+ videoCodecs: uniqueTrackCodecs(tracks.filter(track => track.type === "video")),
154
+ audioCodecs: uniqueTrackCodecs(tracks.filter(track => track.type === "audio"))
155
+ };
156
+ }
157
+ function uniqueTrackCodecs(tracks) {
158
+ return [...new Set(tracks.map(track => track.codec).filter(Boolean))];
159
+ }
160
+ function getMediaMimeType(metadata) {
161
+ const tracks = Array.isArray(metadata.tracks) ? metadata.tracks : [];
162
+ return tracks.some(track => track.type === "video") ? "video/mp4" : "audio/mp4";
163
+ }
164
+ function inspectBytes(bytes) {
165
+ if (isMP4(bytes)) return inspectMP4(bytes);
166
+ if (isWebM(bytes)) return inspectWebM();
167
+ return {
168
+ sourceFormat: ""
169
+ };
170
+ }
171
+ function isMP4(bytes) {
172
+ return bytes.byteLength >= 12 && fourCc(bytes, 4) === "ftyp";
173
+ }
174
+ function isWebM(bytes) {
175
+ return bytes.byteLength >= 4 && bytes[0] === 0x1a && bytes[1] === 0x45 && bytes[2] === 0xdf && bytes[3] === 0xa3;
176
+ }
177
+ function toJsonValue(value) {
178
+ if (value instanceof Uint8Array) return {
179
+ byteLength: value.byteLength
180
+ };
181
+ if (Array.isArray(value)) return value.map(toJsonValue);
182
+ if (value && typeof value === "object") {
183
+ const output = {};
184
+ for (const [key, entry] of Object.entries(value)) output[key] = toJsonValue(entry);
185
+ return output;
186
+ }
187
+ return value;
188
+ }
189
+ function inspectMP4(bytes) {
190
+ const boxes = readMp4Boxes(bytes, 0, bytes.byteLength);
191
+ const ftyp = boxes.find(box => box.type === "ftyp");
192
+ const moov = boxes.find(box => box.type === "moov");
193
+ const movie = moov ? inspectMp4Movie(bytes, moov) : {
194
+ duration: 0,
195
+ durationTimescale: 1,
196
+ tracks: []
197
+ };
198
+ return {
199
+ sourceFormat: "mp4",
200
+ brand: ftyp ? fourCc(bytes, ftyp.dataStart) : fourCc(bytes, 8),
201
+ compatibleBrands: ftyp ? readMp4Brands(bytes, ftyp) : [],
202
+ container: "isobmff",
203
+ ...movie
204
+ };
205
+ }
206
+ function inspectMp4Movie(bytes, moov) {
207
+ const mvhd = findMp4Child(bytes, moov, "mvhd");
208
+ const movieTiming = mvhd ? readMp4Timing(bytes, mvhd) : {
209
+ duration: 0,
210
+ durationTimescale: 1
211
+ };
212
+ const tracks = findMp4Children(bytes, moov, "trak").map(trak => inspectMp4Track(bytes, trak));
213
+ return {
214
+ ...movieTiming,
215
+ tracks
216
+ };
217
+ }
218
+ function inspectMp4Track(bytes, trak) {
219
+ const tkhd = findMp4Child(bytes, trak, "tkhd");
220
+ const mdia = findMp4Child(bytes, trak, "mdia");
221
+ const mdhd = mdia ? findMp4Child(bytes, mdia, "mdhd") : null;
222
+ const hdlr = mdia ? findMp4Child(bytes, mdia, "hdlr") : null;
223
+ const minf = mdia ? findMp4Child(bytes, mdia, "minf") : null;
224
+ const stbl = minf ? findMp4Child(bytes, minf, "stbl") : null;
225
+ const stsd = stbl ? findMp4Child(bytes, stbl, "stsd") : null;
226
+ const sampleTable = stbl ? readMp4SampleTable(bytes, stbl) : null;
227
+ const timing = mdhd ? readMp4Timing(bytes, mdhd) : {
228
+ duration: 0,
229
+ durationTimescale: 1
230
+ };
231
+ const handler = hdlr && hdlr.dataLength >= 12 ? fourCc(bytes, hdlr.dataStart + 8) : "";
232
+ const sample = stsd ? readMp4SampleEntry(bytes, stsd) : null;
233
+ const track = {
234
+ id: tkhd ? readMp4TrackId(bytes, tkhd) : 0,
235
+ type: handler === "vide" ? "video" : handler === "soun" ? "audio" : handler || "unknown",
236
+ handler,
237
+ codec: sample?.codec || "",
238
+ duration: timing.duration,
239
+ durationTimescale: timing.durationTimescale,
240
+ language: mdhd ? readMp4Language(bytes, mdhd) : "und"
241
+ };
242
+ if (sample?.width) track.width = sample.width;
243
+ if (sample?.height) track.height = sample.height;
244
+ if (sample?.channels) track.channels = sample.channels;
245
+ if (sample?.sampleRate) track.sampleRate = sample.sampleRate;
246
+ if (sampleTable) track.sampleTable = sampleTable;
247
+ return track;
248
+ }
249
+ function readMp4SampleTable(bytes, stbl) {
250
+ const stts = findMp4Child(bytes, stbl, "stts");
251
+ const stsc = findMp4Child(bytes, stbl, "stsc");
252
+ const stsz = findMp4Child(bytes, stbl, "stsz");
253
+ const stco = findMp4Child(bytes, stbl, "stco");
254
+ const co64 = findMp4Child(bytes, stbl, "co64");
255
+ const stss = findMp4Child(bytes, stbl, "stss");
256
+ const ctts = findMp4Child(bytes, stbl, "ctts");
257
+ if (!stts && !stsc && !stsz && !stco && !co64 && !stss && !ctts) return null;
258
+ const timing = stts ? readMp4TimeToSample(bytes, stts) : {
259
+ entryCount: 0,
260
+ sampleCount: 0,
261
+ duration: 0
262
+ };
263
+ const composition = ctts ? readMp4CompositionOffsets(bytes, ctts) : {
264
+ entryCount: 0,
265
+ sampleCount: 0,
266
+ minOffset: 0,
267
+ maxOffset: 0
268
+ };
269
+ const sizes = stsz ? readMp4SampleSizes(bytes, stsz) : {
270
+ sampleCount: 0,
271
+ bytes: 0,
272
+ fixedSize: 0
273
+ };
274
+ return {
275
+ sampleCount: sizes.sampleCount || timing.sampleCount,
276
+ sampleBytes: sizes.bytes,
277
+ fixedSampleBytes: sizes.fixedSize,
278
+ decodeTimeEntries: timing.entryCount,
279
+ decodeDuration: timing.duration,
280
+ compositionTimeEntries: composition.entryCount,
281
+ compositionSampleCount: composition.sampleCount,
282
+ compositionOffsetMin: composition.minOffset,
283
+ compositionOffsetMax: composition.maxOffset,
284
+ chunkCount: stco ? readMp4Count(bytes, stco, 4) : co64 ? readMp4Count(bytes, co64, 4) : 0,
285
+ chunkOffsetType: stco ? "stco" : co64 ? "co64" : "",
286
+ sampleToChunkEntries: stsc ? readMp4Count(bytes, stsc, 4) : 0,
287
+ keyframeCount: stss ? readMp4Count(bytes, stss, 4) : 0
288
+ };
289
+ }
290
+ function readMp4TimeToSample(bytes, box) {
291
+ const entryCount = readMp4Count(bytes, box, 4);
292
+ let sampleCount = 0;
293
+ let duration = 0;
294
+ for (let index = 0; index < entryCount; index++) {
295
+ const offset = box.dataStart + 8 + index * 8;
296
+ if (offset + 8 > box.end) break;
297
+ const count = readU32BE(bytes, offset);
298
+ const delta = readU32BE(bytes, offset + 4);
299
+ sampleCount += count;
300
+ duration += count * delta;
301
+ }
302
+ return {
303
+ entryCount,
304
+ sampleCount,
305
+ duration
306
+ };
307
+ }
308
+ function readMp4CompositionOffsets(bytes, box) {
309
+ const version = bytes[box.dataStart];
310
+ const entryCount = readMp4Count(bytes, box, 4);
311
+ let sampleCount = 0;
312
+ let minOffset = 0;
313
+ let maxOffset = 0;
314
+ for (let index = 0; index < entryCount; index++) {
315
+ const offset = box.dataStart + 8 + index * 8;
316
+ if (offset + 8 > box.end) break;
317
+ const count = readU32BE(bytes, offset);
318
+ const compositionOffset = version === 1 ? readI32BE(bytes, offset + 4) : readU32BE(bytes, offset + 4);
319
+ sampleCount += count;
320
+ minOffset = index === 0 ? compositionOffset : Math.min(minOffset, compositionOffset);
321
+ maxOffset = index === 0 ? compositionOffset : Math.max(maxOffset, compositionOffset);
322
+ }
323
+ return {
324
+ entryCount,
325
+ sampleCount,
326
+ minOffset,
327
+ maxOffset
328
+ };
329
+ }
330
+ function readMp4SampleSizes(bytes, box) {
331
+ const fixedSize = readU32BE(bytes, box.dataStart + 4);
332
+ const sampleCount = readU32BE(bytes, box.dataStart + 8);
333
+ if (fixedSize !== 0) return {
334
+ sampleCount,
335
+ bytes: fixedSize * sampleCount,
336
+ fixedSize
337
+ };
338
+ let total = 0;
339
+ for (let index = 0; index < sampleCount; index++) {
340
+ const offset = box.dataStart + 12 + index * 4;
341
+ if (offset + 4 > box.end) break;
342
+ total += readU32BE(bytes, offset);
343
+ }
344
+ return {
345
+ sampleCount,
346
+ bytes: total,
347
+ fixedSize: 0
348
+ };
349
+ }
350
+ function readMp4Count(bytes, box, offset) {
351
+ return box.dataStart + offset + 4 <= box.end ? readU32BE(bytes, box.dataStart + offset) : 0;
352
+ }
353
+ function readMp4Timing(bytes, box) {
354
+ const version = bytes[box.dataStart];
355
+ const offset = version === 1 ? 20 : 12;
356
+ const durationOffset = version === 1 ? 28 : 16;
357
+ return {
358
+ durationTimescale: readU32BE(bytes, box.dataStart + offset) || 1,
359
+ duration: version === 1 ? readU64BE(bytes, box.dataStart + durationOffset) : readU32BE(bytes, box.dataStart + durationOffset)
360
+ };
361
+ }
362
+ function readMp4TrackId(bytes, box) {
363
+ return readU32BE(bytes, box.dataStart + (bytes[box.dataStart] === 1 ? 20 : 12));
364
+ }
365
+ function readMp4Language(bytes, box) {
366
+ const offset = box.dataStart + (bytes[box.dataStart] === 1 ? 32 : 20);
367
+ const value = readU16BE(bytes, offset) & 0x7fff;
368
+ if (!value) return "und";
369
+ return String.fromCharCode((value >>> 10 & 0x1f) + 0x60, (value >>> 5 & 0x1f) + 0x60, (value & 0x1f) + 0x60);
370
+ }
371
+ function readMp4SampleEntry(bytes, stsd) {
372
+ if (stsd.dataLength < 16) return null;
373
+ const entryCount = readU32BE(bytes, stsd.dataStart + 4);
374
+ if (!entryCount) return null;
375
+ const entry = readMp4Boxes(bytes, stsd.dataStart + 8, stsd.end)[0];
376
+ if (!entry) return null;
377
+ const result = {
378
+ codec: fourCc(bytes, entry.start + 4)
379
+ };
380
+ if (result.codec === "avc1" || result.codec === "avc3" || result.codec === "hvc1" || result.codec === "hev1" || result.codec === "vp09" || result.codec === "av01") {
381
+ result.width = readU16BE(bytes, entry.dataStart + 16);
382
+ result.height = readU16BE(bytes, entry.dataStart + 18);
383
+ } else if (["mp4a", "ac-3", "ec-3", "Opus"].includes(result.codec)) {
384
+ result.channels = readU16BE(bytes, entry.dataStart + 8);
385
+ result.sampleRate = readU32BE(bytes, entry.dataStart + 16) >>> 16;
386
+ }
387
+ return result;
388
+ }
389
+ function readMp4Brands(bytes, ftyp) {
390
+ const brands = [];
391
+ for (let offset = ftyp.dataStart + 8; offset + 4 <= ftyp.end; offset += 4) {
392
+ brands.push(fourCc(bytes, offset));
393
+ }
394
+ return brands;
395
+ }
396
+ function readMp4Boxes(bytes, start, end) {
397
+ const boxes = [];
398
+ let offset = start;
399
+ while (offset + 8 <= end) {
400
+ let size = readU32BE(bytes, offset);
401
+ const type = fourCc(bytes, offset + 4);
402
+ let headerSize = 8;
403
+ if (size === 1 && offset + 16 <= end) {
404
+ size = readU64BE(bytes, offset + 8);
405
+ headerSize = 16;
406
+ }
407
+ if (size === 0) size = end - offset;
408
+ if (size < headerSize || offset + size > end) break;
409
+ boxes.push({
410
+ type,
411
+ start: offset,
412
+ dataStart: offset + headerSize,
413
+ dataLength: size - headerSize,
414
+ end: offset + size
415
+ });
416
+ offset += size;
417
+ }
418
+ return boxes;
419
+ }
420
+ function findMp4Child(bytes, parent, type) {
421
+ return readMp4Boxes(bytes, parent.dataStart, parent.end).find(box => box.type === type) || null;
422
+ }
423
+ function findMp4Children(bytes, parent, type) {
424
+ return readMp4Boxes(bytes, parent.dataStart, parent.end).filter(box => box.type === type);
425
+ }
426
+ function inspectWebM() {
427
+ return {
428
+ sourceFormat: "webm",
429
+ container: "ebml"
430
+ };
431
+ }
432
+ function fourCc(bytes, offset) {
433
+ return String.fromCharCode(bytes[offset] || 0, bytes[offset + 1] || 0, bytes[offset + 2] || 0, bytes[offset + 3] || 0);
434
+ }
435
+ function readU16BE(bytes, offset) {
436
+ return (bytes[offset] || 0) << 8 | (bytes[offset + 1] || 0);
437
+ }
438
+ function readU32BE(bytes, offset) {
439
+ return (bytes[offset] || 0) * 0x1000000 + ((bytes[offset + 1] || 0) << 16) + ((bytes[offset + 2] || 0) << 8) + (bytes[offset + 3] || 0) >>> 0;
440
+ }
441
+ function readI32BE(bytes, offset) {
442
+ return readU32BE(bytes, offset) | 0;
443
+ }
444
+ function readU64BE(bytes, offset) {
445
+ return readU32BE(bytes, offset) * 0x100000000 + readU32BE(bytes, offset + 4);
446
+ }
447
+
448
+ export { DEFAULT_VALUES, OUTPUT_JSON, OUTPUT_RAW, OUTPUT_VIDEO, inspectBytes, inspectWithValues, isMP4, isSupportedWithValues, isWebM, normalizeEmit, normalizeValues, readWithValues, toBytes, toJsonValue };
449
+ //# sourceMappingURL=helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.js","sources":["../../../../../src/formats/mp4/core/helpers.js"],"sourcesContent":["export const OUTPUT_VIDEO = \"video\";\nexport const OUTPUT_RAW = \"raw\";\nexport const OUTPUT_JSON = \"json\";\n\nexport const DEFAULT_VALUES = Object.freeze({\n emit: OUTPUT_RAW,\n inputType: \"\",\n source: \"\"\n});\n\nconst DEBUG_OUTPUTS = Object.freeze({\n mp4: \"mp4Json\",\n m4a: \"mp4Json\",\n webm: \"webmJson\"\n});\n\nexport function normalizeValues(base = DEFAULT_VALUES, options = {}, readerName = \"CjsVideoFormat\")\n{\n const values = { ...DEFAULT_VALUES, ...(base || {}), ...(options || {}) };\n values.inputType = values.inputType ? String(values.inputType).replace(/^\\./u, \"\").toLowerCase() : \"\";\n values.emit = normalizeEmit(values.emit, values.inputType, readerName);\n return values;\n}\n\nexport function normalizeEmit(emit, inputType, readerName)\n{\n if (emit === undefined || emit === null) return OUTPUT_RAW;\n if (emit === OUTPUT_JSON && inputType) return DEBUG_OUTPUTS[inputType] || OUTPUT_JSON;\n if ([ OUTPUT_VIDEO, OUTPUT_RAW, OUTPUT_JSON ].includes(emit)) return emit;\n if (Object.values(DEBUG_OUTPUTS).includes(emit)) return emit;\n throw new TypeError(`${readerName}: unknown emit value ${JSON.stringify(emit)}`);\n}\n\nexport function toBytes(input)\n{\n if (input instanceof Uint8Array) return input;\n if (input instanceof ArrayBuffer) return new Uint8Array(input);\n if (ArrayBuffer.isView(input)) return new Uint8Array(input.buffer, input.byteOffset, input.byteLength);\n throw new TypeError(\"Video input must be Uint8Array, ArrayBuffer, or DataView\");\n}\n\nexport function inspectWithValues(input, values = DEFAULT_VALUES, expectedType = \"\")\n{\n const bytes = toBytes(input);\n const metadata = inspectBytes(bytes);\n if (expectedType && metadata.sourceFormat && metadata.sourceFormat !== expectedType)\n {\n throw new TypeError(`CjsVideoFormat: expected ${expectedType}, got ${metadata.sourceFormat}`);\n }\n return {\n payloadType: \"video\",\n mediaTypes: [ \"video\" ],\n byteLength: bytes.byteLength,\n sourceFormat: expectedType || values.inputType || metadata.sourceFormat,\n ...metadata\n };\n}\n\nexport function isSupportedWithValues(input, values = DEFAULT_VALUES, expectedType = \"\")\n{\n try\n {\n const metadata = inspectWithValues(input, values, expectedType);\n const codecs = getTrackCodecSummary(metadata);\n const mimeType = getMediaMimeType(metadata);\n return {\n format: metadata.sourceFormat,\n source: values.source || \"buffer\",\n supported: metadata.sourceFormat ? \"partial\" : \"none\",\n confidence: metadata.sourceFormat ? 1 : 0,\n preferred: \"container\",\n reason: metadata.sourceFormat ? \"Container/header recognized.\" : \"Unrecognized video format.\",\n metadata,\n variants: [\n {\n kind: \"raw\",\n payloadType: \"raw\",\n codec: metadata.sourceFormat,\n mimeType,\n supported: true,\n containerOnly: true,\n isDecoded: false,\n frameDecodeSupported: false\n },\n {\n kind: \"container\",\n payloadType: \"video\",\n codec: metadata.sourceFormat,\n mimeType,\n codecs: codecs.codecs,\n videoCodecs: codecs.videoCodecs,\n audioCodecs: codecs.audioCodecs,\n supported: true,\n containerOnly: true,\n isDecoded: false,\n frameDecodeSupported: false\n },\n {\n kind: \"decoded\",\n payloadType: \"video-frame\",\n codec: \"frames\",\n supported: false,\n reason: \"Video decode is not implemented in this package.\"\n }\n ],\n warnings: [],\n errors: []\n };\n }\n catch (error)\n {\n return {\n format: expectedType || values.inputType || \"\",\n source: values.source || \"buffer\",\n supported: \"none\",\n confidence: 0,\n preferred: \"\",\n reason: error.message,\n metadata: null,\n variants: [],\n warnings: [],\n errors: [ error.message ]\n };\n }\n}\n\nexport function readWithValues(input, values = DEFAULT_VALUES, expectedType = \"\")\n{\n const bytes = toBytes(input);\n const metadata = inspectWithValues(bytes, values, expectedType);\n if (values.emit === OUTPUT_RAW)\n {\n return {\n payloadType: \"raw\",\n sourceFormat: metadata.sourceFormat,\n metadata,\n bytes\n };\n }\n if (values.emit === OUTPUT_JSON || values.emit === DEBUG_OUTPUTS[metadata.sourceFormat]) return metadata;\n\n if (values.emit === OUTPUT_VIDEO && metadata.sourceFormat === \"mp4\")\n {\n const codecs = getTrackCodecSummary(metadata);\n const mimeType = getMediaMimeType(metadata);\n return {\n payloadType: OUTPUT_VIDEO,\n sourceFormat: \"mp4\",\n container: metadata.container,\n mimeType,\n containerOnly: true,\n isDecoded: false,\n frameDecodeSupported: false,\n codecs: codecs.codecs,\n videoCodecs: codecs.videoCodecs,\n audioCodecs: codecs.audioCodecs,\n duration: metadata.duration || 0,\n durationTimescale: metadata.durationTimescale || 1,\n tracks: metadata.tracks || [],\n metadata,\n sourceBytes: bytes\n };\n }\n\n const error = new Error(`${metadata.sourceFormat}: emit \"${values.emit}\" is not implemented yet`);\n error.code = \"CJS_FORMAT_OUTPUT_NOT_IMPLEMENTED\";\n error.sourceFormat = metadata.sourceFormat;\n error.emit = values.emit;\n throw error;\n}\n\nfunction getTrackCodecSummary(metadata)\n{\n const tracks = Array.isArray(metadata.tracks) ? metadata.tracks : [];\n return {\n codecs: uniqueTrackCodecs(tracks),\n videoCodecs: uniqueTrackCodecs(tracks.filter((track) => track.type === \"video\")),\n audioCodecs: uniqueTrackCodecs(tracks.filter((track) => track.type === \"audio\"))\n };\n}\n\nfunction uniqueTrackCodecs(tracks)\n{\n return [ ...new Set(tracks.map((track) => track.codec).filter(Boolean)) ];\n}\n\nfunction getMediaMimeType(metadata)\n{\n const tracks = Array.isArray(metadata.tracks) ? metadata.tracks : [];\n return tracks.some((track) => track.type === \"video\") ? \"video/mp4\" : \"audio/mp4\";\n}\n\nexport function inspectBytes(bytes)\n{\n if (isMP4(bytes)) return inspectMP4(bytes);\n if (isWebM(bytes)) return inspectWebM();\n return { sourceFormat: \"\" };\n}\n\nexport function isMP4(bytes)\n{\n return bytes.byteLength >= 12 && fourCc(bytes, 4) === \"ftyp\";\n}\n\nexport function isWebM(bytes)\n{\n return bytes.byteLength >= 4 && bytes[0] === 0x1a && bytes[1] === 0x45 && bytes[2] === 0xdf && bytes[3] === 0xa3;\n}\n\nexport function toJsonValue(value)\n{\n if (value instanceof Uint8Array) return { byteLength: value.byteLength };\n if (Array.isArray(value)) return value.map(toJsonValue);\n if (value && typeof value === \"object\")\n {\n const output = {};\n for (const [ key, entry ] of Object.entries(value)) output[key] = toJsonValue(entry);\n return output;\n }\n return value;\n}\n\nfunction inspectMP4(bytes)\n{\n const boxes = readMp4Boxes(bytes, 0, bytes.byteLength);\n const ftyp = boxes.find((box) => box.type === \"ftyp\");\n const moov = boxes.find((box) => box.type === \"moov\");\n const movie = moov ? inspectMp4Movie(bytes, moov) : { duration: 0, durationTimescale: 1, tracks: [] };\n return {\n sourceFormat: \"mp4\",\n brand: ftyp ? fourCc(bytes, ftyp.dataStart) : fourCc(bytes, 8),\n compatibleBrands: ftyp ? readMp4Brands(bytes, ftyp) : [],\n container: \"isobmff\",\n ...movie\n };\n}\n\nfunction inspectMp4Movie(bytes, moov)\n{\n const mvhd = findMp4Child(bytes, moov, \"mvhd\");\n const movieTiming = mvhd ? readMp4Timing(bytes, mvhd) : { duration: 0, durationTimescale: 1 };\n const tracks = findMp4Children(bytes, moov, \"trak\").map((trak) => inspectMp4Track(bytes, trak));\n return { ...movieTiming, tracks };\n}\n\nfunction inspectMp4Track(bytes, trak)\n{\n const tkhd = findMp4Child(bytes, trak, \"tkhd\");\n const mdia = findMp4Child(bytes, trak, \"mdia\");\n const mdhd = mdia ? findMp4Child(bytes, mdia, \"mdhd\") : null;\n const hdlr = mdia ? findMp4Child(bytes, mdia, \"hdlr\") : null;\n const minf = mdia ? findMp4Child(bytes, mdia, \"minf\") : null;\n const stbl = minf ? findMp4Child(bytes, minf, \"stbl\") : null;\n const stsd = stbl ? findMp4Child(bytes, stbl, \"stsd\") : null;\n const sampleTable = stbl ? readMp4SampleTable(bytes, stbl) : null;\n const timing = mdhd ? readMp4Timing(bytes, mdhd) : { duration: 0, durationTimescale: 1 };\n const handler = hdlr && hdlr.dataLength >= 12 ? fourCc(bytes, hdlr.dataStart + 8) : \"\";\n const sample = stsd ? readMp4SampleEntry(bytes, stsd) : null;\n const track = {\n id: tkhd ? readMp4TrackId(bytes, tkhd) : 0,\n type: handler === \"vide\" ? \"video\" : handler === \"soun\" ? \"audio\" : handler || \"unknown\",\n handler,\n codec: sample?.codec || \"\",\n duration: timing.duration,\n durationTimescale: timing.durationTimescale,\n language: mdhd ? readMp4Language(bytes, mdhd) : \"und\"\n };\n if (sample?.width) track.width = sample.width;\n if (sample?.height) track.height = sample.height;\n if (sample?.channels) track.channels = sample.channels;\n if (sample?.sampleRate) track.sampleRate = sample.sampleRate;\n if (sampleTable) track.sampleTable = sampleTable;\n return track;\n}\n\nfunction readMp4SampleTable(bytes, stbl)\n{\n const stts = findMp4Child(bytes, stbl, \"stts\");\n const stsc = findMp4Child(bytes, stbl, \"stsc\");\n const stsz = findMp4Child(bytes, stbl, \"stsz\");\n const stco = findMp4Child(bytes, stbl, \"stco\");\n const co64 = findMp4Child(bytes, stbl, \"co64\");\n const stss = findMp4Child(bytes, stbl, \"stss\");\n const ctts = findMp4Child(bytes, stbl, \"ctts\");\n if (!stts && !stsc && !stsz && !stco && !co64 && !stss && !ctts) return null;\n\n const timing = stts ? readMp4TimeToSample(bytes, stts) : { entryCount: 0, sampleCount: 0, duration: 0 };\n const composition = ctts ? readMp4CompositionOffsets(bytes, ctts) : { entryCount: 0, sampleCount: 0, minOffset: 0, maxOffset: 0 };\n const sizes = stsz ? readMp4SampleSizes(bytes, stsz) : { sampleCount: 0, bytes: 0, fixedSize: 0 };\n return {\n sampleCount: sizes.sampleCount || timing.sampleCount,\n sampleBytes: sizes.bytes,\n fixedSampleBytes: sizes.fixedSize,\n decodeTimeEntries: timing.entryCount,\n decodeDuration: timing.duration,\n compositionTimeEntries: composition.entryCount,\n compositionSampleCount: composition.sampleCount,\n compositionOffsetMin: composition.minOffset,\n compositionOffsetMax: composition.maxOffset,\n chunkCount: stco ? readMp4Count(bytes, stco, 4) : co64 ? readMp4Count(bytes, co64, 4) : 0,\n chunkOffsetType: stco ? \"stco\" : co64 ? \"co64\" : \"\",\n sampleToChunkEntries: stsc ? readMp4Count(bytes, stsc, 4) : 0,\n keyframeCount: stss ? readMp4Count(bytes, stss, 4) : 0\n };\n}\n\nfunction readMp4TimeToSample(bytes, box)\n{\n const entryCount = readMp4Count(bytes, box, 4);\n let sampleCount = 0;\n let duration = 0;\n for (let index = 0; index < entryCount; index++)\n {\n const offset = box.dataStart + 8 + index * 8;\n if (offset + 8 > box.end) break;\n const count = readU32BE(bytes, offset);\n const delta = readU32BE(bytes, offset + 4);\n sampleCount += count;\n duration += count * delta;\n }\n return { entryCount, sampleCount, duration };\n}\n\nfunction readMp4CompositionOffsets(bytes, box)\n{\n const version = bytes[box.dataStart];\n const entryCount = readMp4Count(bytes, box, 4);\n let sampleCount = 0;\n let minOffset = 0;\n let maxOffset = 0;\n for (let index = 0; index < entryCount; index++)\n {\n const offset = box.dataStart + 8 + index * 8;\n if (offset + 8 > box.end) break;\n const count = readU32BE(bytes, offset);\n const compositionOffset = version === 1 ? readI32BE(bytes, offset + 4) : readU32BE(bytes, offset + 4);\n sampleCount += count;\n minOffset = index === 0 ? compositionOffset : Math.min(minOffset, compositionOffset);\n maxOffset = index === 0 ? compositionOffset : Math.max(maxOffset, compositionOffset);\n }\n return { entryCount, sampleCount, minOffset, maxOffset };\n}\n\nfunction readMp4SampleSizes(bytes, box)\n{\n const fixedSize = readU32BE(bytes, box.dataStart + 4);\n const sampleCount = readU32BE(bytes, box.dataStart + 8);\n if (fixedSize !== 0) return { sampleCount, bytes: fixedSize * sampleCount, fixedSize };\n\n let total = 0;\n for (let index = 0; index < sampleCount; index++)\n {\n const offset = box.dataStart + 12 + index * 4;\n if (offset + 4 > box.end) break;\n total += readU32BE(bytes, offset);\n }\n return { sampleCount, bytes: total, fixedSize: 0 };\n}\n\nfunction readMp4Count(bytes, box, offset)\n{\n return box.dataStart + offset + 4 <= box.end ? readU32BE(bytes, box.dataStart + offset) : 0;\n}\n\nfunction readMp4Timing(bytes, box)\n{\n const version = bytes[box.dataStart];\n const offset = version === 1 ? 20 : 12;\n const durationOffset = version === 1 ? 28 : 16;\n return {\n durationTimescale: readU32BE(bytes, box.dataStart + offset) || 1,\n duration: version === 1 ? readU64BE(bytes, box.dataStart + durationOffset) : readU32BE(bytes, box.dataStart + durationOffset)\n };\n}\n\nfunction readMp4TrackId(bytes, box)\n{\n return readU32BE(bytes, box.dataStart + (bytes[box.dataStart] === 1 ? 20 : 12));\n}\n\nfunction readMp4Language(bytes, box)\n{\n const offset = box.dataStart + (bytes[box.dataStart] === 1 ? 32 : 20);\n const value = readU16BE(bytes, offset) & 0x7fff;\n if (!value) return \"und\";\n return String.fromCharCode(\n ((value >>> 10) & 0x1f) + 0x60,\n ((value >>> 5) & 0x1f) + 0x60,\n (value & 0x1f) + 0x60\n );\n}\n\nfunction readMp4SampleEntry(bytes, stsd)\n{\n if (stsd.dataLength < 16) return null;\n const entryCount = readU32BE(bytes, stsd.dataStart + 4);\n if (!entryCount) return null;\n const entry = readMp4Boxes(bytes, stsd.dataStart + 8, stsd.end)[0];\n if (!entry) return null;\n const result = { codec: fourCc(bytes, entry.start + 4) };\n if (result.codec === \"avc1\" || result.codec === \"avc3\" || result.codec === \"hvc1\" || result.codec === \"hev1\" || result.codec === \"vp09\" || result.codec === \"av01\")\n {\n result.width = readU16BE(bytes, entry.dataStart + 16);\n result.height = readU16BE(bytes, entry.dataStart + 18);\n }\n else if ([ \"mp4a\", \"ac-3\", \"ec-3\", \"Opus\" ].includes(result.codec))\n {\n result.channels = readU16BE(bytes, entry.dataStart + 8);\n result.sampleRate = readU32BE(bytes, entry.dataStart + 16) >>> 16;\n }\n return result;\n}\n\nfunction readMp4Brands(bytes, ftyp)\n{\n const brands = [];\n for (let offset = ftyp.dataStart + 8; offset + 4 <= ftyp.end; offset += 4)\n {\n brands.push(fourCc(bytes, offset));\n }\n return brands;\n}\n\nfunction readMp4Boxes(bytes, start, end)\n{\n const boxes = [];\n let offset = start;\n while (offset + 8 <= end)\n {\n let size = readU32BE(bytes, offset);\n const type = fourCc(bytes, offset + 4);\n let headerSize = 8;\n if (size === 1 && offset + 16 <= end)\n {\n size = readU64BE(bytes, offset + 8);\n headerSize = 16;\n }\n if (size === 0) size = end - offset;\n if (size < headerSize || offset + size > end) break;\n boxes.push({ type, start: offset, dataStart: offset + headerSize, dataLength: size - headerSize, end: offset + size });\n offset += size;\n }\n return boxes;\n}\n\nfunction findMp4Child(bytes, parent, type)\n{\n return readMp4Boxes(bytes, parent.dataStart, parent.end).find((box) => box.type === type) || null;\n}\n\nfunction findMp4Children(bytes, parent, type)\n{\n return readMp4Boxes(bytes, parent.dataStart, parent.end).filter((box) => box.type === type);\n}\n\nfunction inspectWebM()\n{\n return {\n sourceFormat: \"webm\",\n container: \"ebml\"\n };\n}\n\nfunction fourCc(bytes, offset)\n{\n return String.fromCharCode(bytes[offset] || 0, bytes[offset + 1] || 0, bytes[offset + 2] || 0, bytes[offset + 3] || 0);\n}\n\nfunction readU16BE(bytes, offset)\n{\n return ((bytes[offset] || 0) << 8) | (bytes[offset + 1] || 0);\n}\n\nfunction readU32BE(bytes, offset)\n{\n return (((bytes[offset] || 0) * 0x1000000) + ((bytes[offset + 1] || 0) << 16) + ((bytes[offset + 2] || 0) << 8) + (bytes[offset + 3] || 0)) >>> 0;\n}\n\nfunction readI32BE(bytes, offset)\n{\n return readU32BE(bytes, offset) | 0;\n}\n\nfunction readU64BE(bytes, offset)\n{\n return readU32BE(bytes, offset) * 0x100000000 + readU32BE(bytes, offset + 4);\n}\n"],"names":["OUTPUT_VIDEO","OUTPUT_RAW","OUTPUT_JSON","DEFAULT_VALUES","Object","freeze","emit","inputType","source","DEBUG_OUTPUTS","mp4","m4a","webm","normalizeValues","base","options","readerName","values","String","replace","toLowerCase","normalizeEmit","undefined","includes","TypeError","JSON","stringify","toBytes","input","Uint8Array","ArrayBuffer","isView","buffer","byteOffset","byteLength","inspectWithValues","expectedType","bytes","metadata","inspectBytes","sourceFormat","payloadType","mediaTypes","isSupportedWithValues","codecs","getTrackCodecSummary","mimeType","getMediaMimeType","format","supported","confidence","preferred","reason","variants","kind","codec","containerOnly","isDecoded","frameDecodeSupported","videoCodecs","audioCodecs","warnings","errors","error","message","readWithValues","container","duration","durationTimescale","tracks","sourceBytes","Error","code","Array","isArray","uniqueTrackCodecs","filter","track","type","Set","map","Boolean","some","isMP4","inspectMP4","isWebM","inspectWebM","fourCc","toJsonValue","value","output","key","entry","entries","boxes","readMp4Boxes","ftyp","find","box","moov","movie","inspectMp4Movie","brand","dataStart","compatibleBrands","readMp4Brands","mvhd","findMp4Child","movieTiming","readMp4Timing","findMp4Children","trak","inspectMp4Track","tkhd","mdia","mdhd","hdlr","minf","stbl","stsd","sampleTable","readMp4SampleTable","timing","handler","dataLength","sample","readMp4SampleEntry","id","readMp4TrackId","language","readMp4Language","width","height","channels","sampleRate","stts","stsc","stsz","stco","co64","stss","ctts","readMp4TimeToSample","entryCount","sampleCount","composition","readMp4CompositionOffsets","minOffset","maxOffset","sizes","readMp4SampleSizes","fixedSize","sampleBytes","fixedSampleBytes","decodeTimeEntries","decodeDuration","compositionTimeEntries","compositionSampleCount","compositionOffsetMin","compositionOffsetMax","chunkCount","readMp4Count","chunkOffsetType","sampleToChunkEntries","keyframeCount","index","offset","end","count","readU32BE","delta","version","compositionOffset","readI32BE","Math","min","max","total","durationOffset","readU64BE","readU16BE","fromCharCode","result","start","brands","push","size","headerSize","parent"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export { CjsMp4Format, CjsMp4Format as default } from './CjsMp4Format.js';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}