@carbonenginejs/runtime 0.1.0-alpha.0 → 0.1.0-alpha.1
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.
- package/README.md +58 -125
- package/dist/audio/index.js +8 -1
- package/dist/audio/index.js.map +1 -1
- package/dist/audio/trinity/audio/AudActionLog/AudActionLogCB.js +84 -0
- package/dist/audio/trinity/audio/AudActionLog/AudActionLogCB.js.map +1 -0
- package/dist/audio/trinity/audio/AudActionLog/AudActionRecord.js +14 -0
- package/dist/audio/trinity/audio/AudActionLog/AudActionRecord.js.map +1 -0
- package/dist/audio/trinity/audio/AudActionLog/AudActionRecordExecuteActionOnPlayingID.js +26 -0
- package/dist/audio/trinity/audio/AudActionLog/AudActionRecordExecuteActionOnPlayingID.js.map +1 -0
- package/dist/audio/trinity/audio/AudActionLog/AudActionRecordPostEvent.js +27 -0
- package/dist/audio/trinity/audio/AudActionLog/AudActionRecordPostEvent.js.map +1 -0
- package/dist/audio/trinity/audio/AudActionLog/AudActionRecordSetRTPC.js +27 -0
- package/dist/audio/trinity/audio/AudActionLog/AudActionRecordSetRTPC.js.map +1 -0
- package/dist/audio/trinity/audio/AudActionLog/AudActionRecordSetState.js +25 -0
- package/dist/audio/trinity/audio/AudActionLog/AudActionRecordSetState.js.map +1 -0
- package/dist/audio/trinity/audio/AudActionLog/AudActionRecordSetSwitch.js +26 -0
- package/dist/audio/trinity/audio/AudActionLog/AudActionRecordSetSwitch.js.map +1 -0
- package/dist/audio/trinity/audio/AudActionLog/IAudActionLog.js +58 -0
- package/dist/audio/trinity/audio/AudActionLog/IAudActionLog.js.map +1 -0
- package/dist/audio/trinity/audio/AudManager.js +1 -1
- package/dist/audio/trinity/audio/AudManager.js.map +1 -1
- package/dist/audio/trinity/audio/{AudObstructionOcclusion.js → AudObstructionOcclusion/AudObstructionOcclusion.js} +8 -52
- package/dist/audio/trinity/audio/AudObstructionOcclusion/AudObstructionOcclusion.js.map +1 -0
- package/dist/audio/trinity/audio/AudObstructionOcclusion/EmitterState.js +17 -0
- package/dist/audio/trinity/audio/AudObstructionOcclusion/EmitterState.js.map +1 -0
- package/dist/audio/trinity/audio/AudObstructionOcclusion/FadingValue.js +46 -0
- package/dist/audio/trinity/audio/AudObstructionOcclusion/FadingValue.js.map +1 -0
- package/dist/audio/trinity/index.js +8 -1
- package/dist/audio/trinity/index.js.map +1 -1
- package/dist/character/CjsCharacterAppearanceConstruction.js +5 -0
- package/dist/character/CjsCharacterAppearanceConstruction.js.map +1 -1
- package/dist/character/CjsCharacterAppearanceManager.js +14 -0
- package/dist/character/CjsCharacterAppearanceManager.js.map +1 -1
- package/dist/character/CjsCharacterFoundationConstruction.js +5 -0
- package/dist/character/CjsCharacterFoundationConstruction.js.map +1 -1
- package/dist/character/CjsCharacterTexturePolicy.js +5 -0
- package/dist/character/CjsCharacterTexturePolicy.js.map +1 -1
- package/dist/character/gles/CjsCharacterGlesAppearanceAL.js +17 -0
- package/dist/character/gles/CjsCharacterGlesAppearanceAL.js.map +1 -1
- package/dist/character/gles/CjsCharacterGlesAtlasRenderer.js +2 -0
- package/dist/character/gles/CjsCharacterGlesAtlasRenderer.js.map +1 -1
- package/dist/character/gles/CjsCharacterGlesFoundationTranslator.js +5 -0
- package/dist/character/gles/CjsCharacterGlesFoundationTranslator.js.map +1 -1
- package/dist/character/gles/CjsCharacterGlesLegacyConstructionTranslator.js +5 -0
- package/dist/character/gles/CjsCharacterGlesLegacyConstructionTranslator.js.map +1 -1
- package/dist/character/gles/CjsCharacterGlesMorphDeformation.js +2 -0
- package/dist/character/gles/CjsCharacterGlesMorphDeformation.js.map +1 -1
- package/dist/character/gles/CjsCharacterGlesPaletteCompatibility.js +5 -0
- package/dist/character/gles/CjsCharacterGlesPaletteCompatibility.js.map +1 -1
- package/dist/character/gles/CjsCharacterGlesTriangleCoverage.js +5 -0
- package/dist/character/gles/CjsCharacterGlesTriangleCoverage.js.map +1 -1
- package/dist/character/webgl2/CjsCharacterWebgl2EffectRouter.js +9 -0
- package/dist/character/webgl2/CjsCharacterWebgl2EffectRouter.js.map +1 -1
- package/dist/global/blue/CjsScriptCallback.js +142 -0
- package/dist/global/blue/CjsScriptCallback.js.map +1 -0
- package/dist/global/blue/index.js +2 -0
- package/dist/global/blue/index.js.map +1 -0
- package/dist/global/consts/renderContext/formats.js +51 -1
- package/dist/global/consts/renderContext/formats.js.map +1 -1
- package/dist/global/consts/renderContext/index.js +2 -2
- package/dist/global/consts/renderContext/renderStates.js +16 -1
- package/dist/global/consts/renderContext/renderStates.js.map +1 -1
- package/dist/global/contracts/index.js +0 -1
- package/dist/global/contracts/index.js.map +1 -1
- package/dist/global/index.js +4 -3
- package/dist/global/index.js.map +1 -1
- package/dist/global/math/index.js +2 -0
- package/dist/global/math/index.js.map +1 -1
- package/dist/global/math/mesh.js +70 -16
- package/dist/global/math/mesh.js.map +1 -1
- package/dist/global/math/noise.js +47 -68
- package/dist/global/math/noise.js.map +1 -1
- package/dist/global/math/pool.js +18 -3
- package/dist/global/math/pool.js.map +1 -1
- package/dist/global/math/random.js +52 -0
- package/dist/global/math/random.js.map +1 -0
- package/dist/global/math/tri3.js +18 -4
- package/dist/global/math/tri3.js.map +1 -1
- package/dist/global/utils/bytes.js +22 -4
- package/dist/global/utils/bytes.js.map +1 -1
- package/dist/global/utils/checksum.js +80 -0
- package/dist/global/utils/checksum.js.map +1 -0
- package/dist/global/utils/errors/CjsCancellationError.js +36 -0
- package/dist/global/utils/errors/CjsCancellationError.js.map +1 -0
- package/dist/global/utils/errors/CjsError.js +21 -52
- package/dist/global/utils/errors/CjsError.js.map +1 -1
- package/dist/global/utils/errors/abort.js +1 -1
- package/dist/global/utils/errors/abort.js.map +1 -1
- package/dist/global/utils/errors/index.js +2 -1
- package/dist/global/utils/errors/index.js.map +1 -1
- package/dist/global/utils/index.js +4 -2
- package/dist/global/utils/index.js.map +1 -1
- package/dist/index.js +95 -35
- package/dist/index.js.map +1 -1
- package/dist/input/Tr2MainWindow.js +7 -9
- package/dist/input/Tr2MainWindow.js.map +1 -1
- package/dist/resource/CjsResMan.js +33 -39
- package/dist/resource/CjsResMan.js.map +1 -1
- package/dist/resource/CjsResource.js +19 -5
- package/dist/resource/CjsResource.js.map +1 -1
- package/dist/resource/audio/AudioGeometryResData.js +22 -27
- package/dist/resource/audio/AudioGeometryResData.js.map +1 -1
- package/dist/resource/audio/CjsAudioRes.js +4 -5
- package/dist/resource/audio/CjsAudioRes.js.map +1 -1
- package/dist/resource/format/CjsBitReader.js +263 -0
- package/dist/resource/format/CjsBitReader.js.map +1 -0
- package/dist/resource/format/CjsByteReader.js +130 -125
- package/dist/resource/format/CjsByteReader.js.map +1 -1
- package/dist/resource/format/CjsFormat.js +11 -4
- package/dist/resource/format/CjsFormat.js.map +1 -1
- package/dist/resource/format/CjsFormatError.js +37 -1
- package/dist/resource/format/CjsFormatError.js.map +1 -1
- package/dist/resource/format/CjsResourceProbe.js +41 -37
- package/dist/resource/format/CjsResourceProbe.js.map +1 -1
- package/dist/resource/format/carbonRecordGuard.js +33 -0
- package/dist/resource/format/carbonRecordGuard.js.map +1 -0
- package/dist/resource/format/imageSignatures.js +202 -0
- package/dist/resource/format/imageSignatures.js.map +1 -0
- package/dist/resource/format/index.js +2 -1
- package/dist/resource/format/index.js.map +1 -1
- package/dist/resource/format/jsonPolicies.js +180 -0
- package/dist/resource/format/jsonPolicies.js.map +1 -0
- package/dist/resource/formats/black/core/helpers.js +18 -29
- package/dist/resource/formats/black/core/helpers.js.map +1 -1
- package/dist/resource/formats/bnk/CjsBnkFormat.js +4 -3
- package/dist/resource/formats/bnk/CjsBnkFormat.js.map +1 -1
- package/dist/resource/formats/bnk/core/WwiseCursor.js +218 -0
- package/dist/resource/formats/bnk/core/WwiseCursor.js.map +1 -0
- package/dist/resource/formats/bnk/core/busNodes.js +2 -1
- package/dist/resource/formats/bnk/core/busNodes.js.map +1 -1
- package/dist/resource/formats/bnk/core/effectNodes.js +2 -1
- package/dist/resource/formats/bnk/core/effectNodes.js.map +1 -1
- package/dist/resource/formats/bnk/core/eventAction.js +15 -93
- package/dist/resource/formats/bnk/core/eventAction.js.map +1 -1
- package/dist/resource/formats/bnk/core/globalSettings.js +19 -94
- package/dist/resource/formats/bnk/core/globalSettings.js.map +1 -1
- package/dist/resource/formats/bnk/core/helpers.js +2 -48
- package/dist/resource/formats/bnk/core/helpers.js.map +1 -1
- package/dist/resource/formats/bnk/core/musicNodes.js +42 -134
- package/dist/resource/formats/bnk/core/musicNodes.js.map +1 -1
- package/dist/resource/formats/bnk/core/nodeBase.js +20 -111
- package/dist/resource/formats/bnk/core/nodeBase.js.map +1 -1
- package/dist/resource/formats/bnk/core/sfxNodes.js +2 -1
- package/dist/resource/formats/bnk/core/sfxNodes.js.map +1 -1
- package/dist/resource/formats/cmf/CjsCmfFormat.js +242 -228
- package/dist/resource/formats/cmf/CjsCmfFormat.js.map +1 -1
- package/dist/resource/formats/cmf/core/binary.js +54 -60
- package/dist/resource/formats/cmf/core/binary.js.map +1 -1
- package/dist/resource/formats/dds/CjsDdsFormat.js +5 -3
- package/dist/resource/formats/dds/CjsDdsFormat.js.map +1 -1
- package/dist/resource/formats/dds/core/bc6h.js +16 -18
- package/dist/resource/formats/dds/core/bc6h.js.map +1 -1
- package/dist/resource/formats/dds/core/bc7.js +28 -24
- package/dist/resource/formats/dds/core/bc7.js.map +1 -1
- package/dist/resource/formats/dds/core/helpers.js +7 -133
- package/dist/resource/formats/dds/core/helpers.js.map +1 -1
- package/dist/resource/formats/dxbc/CjsDxbcFormat.js +3 -2
- package/dist/resource/formats/dxbc/CjsDxbcFormat.js.map +1 -1
- package/dist/resource/formats/dxbc/core/helpers.js +4 -32
- package/dist/resource/formats/dxbc/core/helpers.js.map +1 -1
- package/dist/resource/formats/fbx/CjsFbxFormat.js +11 -0
- package/dist/resource/formats/fbx/CjsFbxFormat.js.map +1 -1
- package/dist/resource/formats/fbx/core/helpers.js +18 -12
- package/dist/resource/formats/fbx/core/helpers.js.map +1 -1
- package/dist/resource/formats/flac/CjsFlacFormat.js +4 -9
- package/dist/resource/formats/flac/CjsFlacFormat.js.map +1 -1
- package/dist/resource/formats/flac/core/helpers.js +1 -62
- package/dist/resource/formats/flac/core/helpers.js.map +1 -1
- package/dist/resource/formats/gif/CjsGifFormat.js +4 -9
- package/dist/resource/formats/gif/CjsGifFormat.js.map +1 -1
- package/dist/resource/formats/gif/core/helpers.js +1 -63
- package/dist/resource/formats/gif/core/helpers.js.map +1 -1
- package/dist/resource/formats/gltf/CjsGltfFormat.js +4 -3
- package/dist/resource/formats/gltf/CjsGltfFormat.js.map +1 -1
- package/dist/resource/formats/gltf/core/helpers.js +3 -19
- package/dist/resource/formats/gltf/core/helpers.js.map +1 -1
- package/dist/resource/formats/gr2/CjsGr2Format.js +105 -92
- package/dist/resource/formats/gr2/CjsGr2Format.js.map +1 -1
- package/dist/resource/formats/gr2/core/container.js +1 -10
- package/dist/resource/formats/gr2/core/container.js.map +1 -1
- package/dist/resource/formats/gr2/core/helpers.js +24 -35
- package/dist/resource/formats/gr2/core/helpers.js.map +1 -1
- package/dist/resource/formats/gr2/core/shared.js +193 -189
- package/dist/resource/formats/gr2/core/shared.js.map +1 -1
- package/dist/resource/formats/hlsl/CjsHlslFormat.js +4 -3
- package/dist/resource/formats/hlsl/CjsHlslFormat.js.map +1 -1
- package/dist/resource/formats/hlsl/core/helpers.js +1 -30
- package/dist/resource/formats/hlsl/core/helpers.js.map +1 -1
- package/dist/resource/formats/jpeg/CjsJpegFormat.js +5 -3
- package/dist/resource/formats/jpeg/CjsJpegFormat.js.map +1 -1
- package/dist/resource/formats/jpeg/core/helpers.js +7 -134
- package/dist/resource/formats/jpeg/core/helpers.js.map +1 -1
- package/dist/resource/formats/mp3/CjsMp3Format.js +4 -9
- package/dist/resource/formats/mp3/CjsMp3Format.js.map +1 -1
- package/dist/resource/formats/mp3/core/helpers.js +1 -64
- package/dist/resource/formats/mp3/core/helpers.js.map +1 -1
- package/dist/resource/formats/mp4/CjsMp4Format.js +4 -9
- package/dist/resource/formats/mp4/CjsMp4Format.js.map +1 -1
- package/dist/resource/formats/mp4/core/helpers.js +1 -73
- package/dist/resource/formats/mp4/core/helpers.js.map +1 -1
- package/dist/resource/formats/obj/CjsObjFormat.js +4 -3
- package/dist/resource/formats/obj/CjsObjFormat.js.map +1 -1
- package/dist/resource/formats/obj/core/helpers.js +93 -115
- package/dist/resource/formats/obj/core/helpers.js.map +1 -1
- package/dist/resource/formats/ogg/CjsOggFormat.js +4 -3
- package/dist/resource/formats/ogg/CjsOggFormat.js.map +1 -1
- package/dist/resource/formats/ogg/core/helpers.js +1 -15
- package/dist/resource/formats/ogg/core/helpers.js.map +1 -1
- package/dist/resource/formats/ogg/core/vorbis.js +138 -144
- package/dist/resource/formats/ogg/core/vorbis.js.map +1 -1
- package/dist/resource/formats/pickle/CjsPickleFormat.js +83 -114
- package/dist/resource/formats/pickle/CjsPickleFormat.js.map +1 -1
- package/dist/resource/formats/png/CjsPngFormat.js +5 -3
- package/dist/resource/formats/png/CjsPngFormat.js.map +1 -1
- package/dist/resource/formats/png/core/helpers.js +13 -152
- package/dist/resource/formats/png/core/helpers.js.map +1 -1
- package/dist/resource/formats/png/core/writer.js +3 -27
- package/dist/resource/formats/png/core/writer.js.map +1 -1
- package/dist/resource/formats/red/core/helpers.js +19 -29
- package/dist/resource/formats/red/core/helpers.js.map +1 -1
- package/dist/resource/formats/stl/CjsStlFormat.js +158 -147
- package/dist/resource/formats/stl/CjsStlFormat.js.map +1 -1
- package/dist/resource/formats/stl/core/helpers.js +44 -66
- package/dist/resource/formats/stl/core/helpers.js.map +1 -1
- package/dist/resource/formats/tga/CjsTgaFormat.js +5 -3
- package/dist/resource/formats/tga/CjsTgaFormat.js.map +1 -1
- package/dist/resource/formats/tga/core/helpers.js +7 -153
- package/dist/resource/formats/tga/core/helpers.js.map +1 -1
- package/dist/resource/formats/vta/CjsVtaFormat.js +4 -3
- package/dist/resource/formats/vta/CjsVtaFormat.js.map +1 -1
- package/dist/resource/formats/vta/core/helpers.js +1 -17
- package/dist/resource/formats/vta/core/helpers.js.map +1 -1
- package/dist/resource/formats/wav/CjsWavFormat.js +4 -3
- package/dist/resource/formats/wav/CjsWavFormat.js.map +1 -1
- package/dist/resource/formats/wav/core/helpers.js +1 -15
- package/dist/resource/formats/wav/core/helpers.js.map +1 -1
- package/dist/resource/formats/webgl/CjsWebglFormat.js +4 -3
- package/dist/resource/formats/webgl/CjsWebglFormat.js.map +1 -1
- package/dist/resource/formats/webgl/core/glsl/DxbcGlslEmitter.js +52 -4
- package/dist/resource/formats/webgl/core/glsl/DxbcGlslEmitter.js.map +1 -1
- package/dist/resource/formats/webgl/core/helpers.js +39 -68
- package/dist/resource/formats/webgl/core/helpers.js.map +1 -1
- package/dist/resource/formats/webgpu/CjsWebgpuFormat.js +4 -3
- package/dist/resource/formats/webgpu/CjsWebgpuFormat.js.map +1 -1
- package/dist/resource/formats/webgpu/core/helpers.js +4 -30
- package/dist/resource/formats/webgpu/core/helpers.js.map +1 -1
- package/dist/resource/formats/webm/CjsWebmFormat.js +4 -9
- package/dist/resource/formats/webm/CjsWebmFormat.js.map +1 -1
- package/dist/resource/formats/webm/core/helpers.js +1 -73
- package/dist/resource/formats/webm/core/helpers.js.map +1 -1
- package/dist/resource/formats/webp/CjsWebpFormat.js +4 -9
- package/dist/resource/formats/webp/CjsWebpFormat.js.map +1 -1
- package/dist/resource/formats/webp/core/helpers.js +1 -62
- package/dist/resource/formats/webp/core/helpers.js.map +1 -1
- package/dist/resource/formats/wem/CjsWemFormat.js +4 -3
- package/dist/resource/formats/wem/CjsWemFormat.js.map +1 -1
- package/dist/resource/formats/wem/core/bitStream.js +83 -106
- package/dist/resource/formats/wem/core/bitStream.js.map +1 -1
- package/dist/resource/formats/wem/core/codebookLibrary.js +52 -52
- package/dist/resource/formats/wem/core/codebookLibrary.js.map +1 -1
- package/dist/resource/formats/wem/core/helpers.js +1 -15
- package/dist/resource/formats/wem/core/helpers.js.map +1 -1
- package/dist/resource/formats/wem/core/wemToOgg.js +67 -67
- package/dist/resource/formats/wem/core/wemToOgg.js.map +1 -1
- package/dist/resource/geometry/MeshDecalData.js +23 -25
- package/dist/resource/geometry/MeshDecalData.js.map +1 -1
- package/dist/resource/geometry/MeshDecalLodData.js +14 -23
- package/dist/resource/geometry/MeshDecalLodData.js.map +1 -1
- package/dist/resource/geometry/TriGeometryRes.js +299 -284
- package/dist/resource/geometry/TriGeometryRes.js.map +1 -1
- package/dist/resource/geometry/TriGeometryResAreaData.js +30 -31
- package/dist/resource/geometry/TriGeometryResAreaData.js.map +1 -1
- package/dist/resource/geometry/TriGeometryResJointData.js +16 -24
- package/dist/resource/geometry/TriGeometryResJointData.js.map +1 -1
- package/dist/resource/geometry/TriGeometryResLodData.js +50 -41
- package/dist/resource/geometry/TriGeometryResLodData.js.map +1 -1
- package/dist/resource/geometry/TriGeometryResMeshData.js +32 -32
- package/dist/resource/geometry/TriGeometryResMeshData.js.map +1 -1
- package/dist/resource/geometry/TriGeometryResSkeletonData.js +14 -23
- package/dist/resource/geometry/TriGeometryResSkeletonData.js.map +1 -1
- package/dist/resource/geometry/TriJointBinding.js +16 -24
- package/dist/resource/geometry/TriJointBinding.js.map +1 -1
- package/dist/resource/geometry/TriMorphTargetGeometryConstants.js +22 -27
- package/dist/resource/geometry/TriMorphTargetGeometryConstants.js.map +1 -1
- package/dist/resource/geometry/TriRtGeometryConstants.js +50 -41
- package/dist/resource/geometry/TriRtGeometryConstants.js.map +1 -1
- package/dist/resource/geometry/granny/GStateBindingCallbackData.js +12 -22
- package/dist/resource/geometry/granny/GStateBindingCallbackData.js.map +1 -1
- package/dist/resource/geometry/granny/Tr2GrannyIntersectionResult.js +30 -31
- package/dist/resource/geometry/granny/Tr2GrannyIntersectionResult.js.map +1 -1
- package/dist/resource/index.js +1 -1
- package/dist/resource/shader/reflection/Tr2EffectConstant.js +16 -17
- package/dist/resource/shader/reflection/Tr2EffectConstant.js.map +1 -1
- package/dist/resource/shader/reflection/Tr2EffectDescription.js +26 -28
- package/dist/resource/shader/reflection/Tr2EffectDescription.js.map +1 -1
- package/dist/resource/shader/reflection/Tr2EffectLibrary.js +24 -25
- package/dist/resource/shader/reflection/Tr2EffectLibrary.js.map +1 -1
- package/dist/resource/shader/reflection/Tr2EffectParameterAnnotation.js +21 -22
- package/dist/resource/shader/reflection/Tr2EffectParameterAnnotation.js.map +1 -1
- package/dist/resource/shader/reflection/Tr2EffectResource.js +25 -26
- package/dist/resource/shader/reflection/Tr2EffectResource.js.map +1 -1
- package/dist/resource/shader/reflection/Tr2EffectStageInput.js +69 -72
- package/dist/resource/shader/reflection/Tr2EffectStageInput.js.map +1 -1
- package/dist/resource/shader/reflection/Tr2EffectTechnique.js +17 -18
- package/dist/resource/shader/reflection/Tr2EffectTechnique.js.map +1 -1
- package/dist/resource/shader/reflection/Tr2Pass.js +42 -43
- package/dist/resource/shader/reflection/Tr2Pass.js.map +1 -1
- package/dist/resource/shader/reflection/Tr2RenderStateSetup.js +26 -5
- package/dist/resource/shader/reflection/Tr2RenderStateSetup.js.map +1 -1
- package/dist/resource/shader/reflection/carbonRecordFields.js +87 -90
- package/dist/resource/shader/reflection/carbonRecordFields.js.map +1 -1
- package/dist/resource/shader/sampler/Tr2SamplerSetup.js +32 -34
- package/dist/resource/shader/sampler/Tr2SamplerSetup.js.map +1 -1
- package/dist/resource/texture/CjsTextureArrayRes.js +1 -6
- package/dist/resource/texture/CjsTextureArrayRes.js.map +1 -1
- package/dist/resource/texture/Tr2TextureLodManager.js +35 -27
- package/dist/resource/texture/Tr2TextureLodManager.js.map +1 -1
- package/dist/resource/texture/Tr2TextureLodUpdateRequest.js +16 -24
- package/dist/resource/texture/Tr2TextureLodUpdateRequest.js.map +1 -1
- package/dist/resource/texture/Tr2TexturePackChannel.js +16 -24
- package/dist/resource/texture/Tr2TexturePackChannel.js.map +1 -1
- package/dist/resource/texture/Tr2TexturePipeline.js +24 -20
- package/dist/resource/texture/Tr2TexturePipeline.js.map +1 -1
- package/dist/resource/texture/Tr2TexturePipelineParams.js +14 -23
- package/dist/resource/texture/Tr2TexturePipelineParams.js.map +1 -1
- package/dist/resource/texture/Tr2TexturePipelineStepCompress.js +18 -25
- package/dist/resource/texture/Tr2TexturePipelineStepCompress.js.map +1 -1
- package/dist/resource/texture/Tr2TexturePipelineStepGenerateMips.js +11 -16
- package/dist/resource/texture/Tr2TexturePipelineStepGenerateMips.js.map +1 -1
- package/dist/resource/texture/Tr2TexturePipelineStepLimitSize.js +14 -23
- package/dist/resource/texture/Tr2TexturePipelineStepLimitSize.js.map +1 -1
- package/dist/resource/texture/Tr2TexturePipelineStepLoad.js +12 -22
- package/dist/resource/texture/Tr2TexturePipelineStepLoad.js.map +1 -1
- package/dist/resource/texture/Tr2TexturePipelineStepPack.js +38 -26
- package/dist/resource/texture/Tr2TexturePipelineStepPack.js.map +1 -1
- package/dist/resource/worker/CjsResManMainThreadLoader.js +2 -5
- package/dist/resource/worker/CjsResManMainThreadLoader.js.map +1 -1
- package/dist/resource/worker/CjsResManWorkerLoader.js +6 -7
- package/dist/resource/worker/CjsResManWorkerLoader.js.map +1 -1
- package/dist/resource/worker/protocol.js +18 -1
- package/dist/resource/worker/protocol.js.map +1 -1
- package/dist/sof/EveSOF.js +2 -222
- package/dist/sof/EveSOF.js.map +1 -1
- package/dist/sof/SofDocumentBuilder.js +205 -0
- package/dist/sof/SofDocumentBuilder.js.map +1 -0
- package/dist/sof/faction/ErrSOFFactionColorSetTypeNotFound.js +16 -0
- package/dist/sof/faction/ErrSOFFactionColorSetTypeNotFound.js.map +1 -0
- package/dist/sof/faction/ErrSOFFactionColorSetTypeUnknown.js +16 -0
- package/dist/sof/faction/ErrSOFFactionColorSetTypeUnknown.js.map +1 -0
- package/dist/sof/faction/EveSOFDataFactionColorSet.js +3 -27
- package/dist/sof/faction/EveSOFDataFactionColorSet.js.map +1 -1
- package/dist/sof/faction/index.js +3 -1
- package/dist/sof/faction/index.js.map +1 -1
- package/dist/sof/generic/ErrSOFAreaShaderNotFound.js +18 -0
- package/dist/sof/generic/ErrSOFAreaShaderNotFound.js.map +1 -0
- package/dist/sof/generic/ErrSOFDecalShaderNotFound.js +18 -0
- package/dist/sof/generic/ErrSOFDecalShaderNotFound.js.map +1 -0
- package/dist/sof/generic/ErrSOFMaterialPrefixNotFound.js +21 -0
- package/dist/sof/generic/ErrSOFMaterialPrefixNotFound.js.map +1 -0
- package/dist/sof/generic/ErrSOFPatternMaterialPrefixNotFound.js +21 -0
- package/dist/sof/generic/ErrSOFPatternMaterialPrefixNotFound.js.map +1 -0
- package/dist/sof/generic/EveSOFDataGeneric.js +5 -69
- package/dist/sof/generic/EveSOFDataGeneric.js.map +1 -1
- package/dist/sof/generic/index.js +5 -1
- package/dist/sof/generic/index.js.map +1 -1
- package/dist/sof/index.js +23 -7
- package/dist/sof/index.js.map +1 -1
- package/dist/sof/pattern/ErrSOFProjectionNotFound.js +20 -0
- package/dist/sof/pattern/ErrSOFProjectionNotFound.js.map +1 -0
- package/dist/sof/pattern/EveSOFDataPattern.js +2 -17
- package/dist/sof/pattern/EveSOFDataPattern.js.map +1 -1
- package/dist/sof/pattern/index.js +2 -1
- package/dist/sof/pattern/index.js.map +1 -1
- package/dist/sof/shared/ErrSOFAreaTypeNotFound.js +16 -0
- package/dist/sof/shared/ErrSOFAreaTypeNotFound.js.map +1 -0
- package/dist/sof/shared/ErrSOFLogoSetTypeNotFound.js +16 -0
- package/dist/sof/shared/ErrSOFLogoSetTypeNotFound.js.map +1 -0
- package/dist/sof/shared/ErrSOFLogoSetTypeUnknown.js +16 -0
- package/dist/sof/shared/ErrSOFLogoSetTypeUnknown.js.map +1 -0
- package/dist/sof/shared/EveSOFDataArea.js +2 -13
- package/dist/sof/shared/EveSOFDataArea.js.map +1 -1
- package/dist/sof/shared/EveSOFDataLogoSet.js +3 -27
- package/dist/sof/shared/EveSOFDataLogoSet.js.map +1 -1
- package/dist/sof/shared/EveSOFDataParameter.js +2 -146
- package/dist/sof/shared/EveSOFDataParameter.js.map +1 -1
- package/dist/sof/shared/EveSOFDataParameterBool.js +40 -0
- package/dist/sof/shared/EveSOFDataParameterBool.js.map +1 -0
- package/dist/sof/shared/EveSOFDataParameterColor.js +36 -0
- package/dist/sof/shared/EveSOFDataParameterColor.js.map +1 -0
- package/dist/sof/shared/EveSOFDataParameterFloat.js +37 -0
- package/dist/sof/shared/EveSOFDataParameterFloat.js.map +1 -0
- package/dist/sof/shared/EveSOFDataParameterInt.js +37 -0
- package/dist/sof/shared/EveSOFDataParameterInt.js.map +1 -0
- package/dist/sof/shared/EveSOFDataParameterVector2.js +37 -0
- package/dist/sof/shared/EveSOFDataParameterVector2.js.map +1 -0
- package/dist/sof/shared/EveSOFDataParameterVector3.js +37 -0
- package/dist/sof/shared/EveSOFDataParameterVector3.js.map +1 -0
- package/dist/sof/shared/{EveSOFDataSpotlightAttachment.js → EveSOFDataSpotLightAttachment.js} +1 -1
- package/dist/sof/shared/{EveSOFDataSpotlightAttachment.js.map → EveSOFDataSpotLightAttachment.js.map} +1 -1
- package/dist/sof/shared/index.js +13 -4
- package/dist/sof/shared/index.js.map +1 -1
- package/dist/sof/sofDocumentValues.js +33 -0
- package/dist/sof/sofDocumentValues.js.map +1 -0
- package/dist/trinity/controllers/ITr2Controller/ITr2ActionController.js +168 -0
- package/dist/trinity/controllers/ITr2Controller/ITr2ActionController.js.map +1 -0
- package/dist/trinity/controllers/{ITr2Controller.js → ITr2Controller/ITr2Controller.js} +2 -134
- package/dist/trinity/controllers/ITr2Controller/ITr2Controller.js.map +1 -0
- package/dist/trinity/controllers/Tr2Controller.js +2 -1
- package/dist/trinity/controllers/Tr2Controller.js.map +1 -1
- package/dist/trinity/controllers/Tr2ControllerReference.js +2 -1
- package/dist/trinity/controllers/Tr2ControllerReference.js.map +1 -1
- package/dist/trinity/controllers/action/ITr2ControllerAction.js +2 -1
- package/dist/trinity/controllers/action/ITr2ControllerAction.js.map +1 -1
- package/dist/trinity/controllers/action/Tr2ActionSpawnParticles.js +10 -9
- package/dist/trinity/controllers/action/Tr2ActionSpawnParticles.js.map +1 -1
- package/dist/trinity/controllers/expression/CjsControllerExpressionCompileError.js +26 -0
- package/dist/trinity/controllers/expression/CjsControllerExpressionCompileError.js.map +1 -0
- package/dist/trinity/controllers/expression/CjsControllerExpressionEvaluateError.js +24 -0
- package/dist/trinity/controllers/expression/CjsControllerExpressionEvaluateError.js.map +1 -0
- package/dist/trinity/controllers/expression/CjsControllerExpressionParser.js +387 -0
- package/dist/trinity/controllers/expression/CjsControllerExpressionParser.js.map +1 -0
- package/dist/trinity/controllers/expression/CjsControllerExpressionProgram.js +4 -1011
- package/dist/trinity/controllers/expression/CjsControllerExpressionProgram.js.map +1 -1
- package/dist/trinity/controllers/expression/expressionRuntime.js +605 -0
- package/dist/trinity/controllers/expression/expressionRuntime.js.map +1 -0
- package/dist/trinity/controllers/index.js +5 -2
- package/dist/trinity/controllers/index.js.map +1 -1
- package/dist/trinity/controllers/state/ITr2StateMachineStateFinalizer.js +2 -1
- package/dist/trinity/controllers/state/ITr2StateMachineStateFinalizer.js.map +1 -1
- package/dist/trinity/controllers/timeline/Tr2TimelineController.js +2 -1
- package/dist/trinity/controllers/timeline/Tr2TimelineController.js.map +1 -1
- package/dist/trinity/core/ITr2Updateable.js +2 -1
- package/dist/trinity/core/ITr2Updateable.js.map +1 -1
- package/dist/trinity/core/Tr2Blitter.js +6 -3
- package/dist/trinity/core/Tr2Blitter.js.map +1 -1
- package/dist/trinity/core/Tr2Denoiser.js +256 -0
- package/dist/trinity/core/Tr2Denoiser.js.map +1 -0
- package/dist/trinity/core/Tr2GpuResourcePool/GpuResourceHandle.js +115 -0
- package/dist/trinity/core/Tr2GpuResourcePool/GpuResourceHandle.js.map +1 -0
- package/dist/trinity/core/Tr2GpuResourcePool/TextureSize2D.js +79 -0
- package/dist/trinity/core/Tr2GpuResourcePool/TextureSize2D.js.map +1 -0
- package/dist/trinity/core/{Tr2GpuResourcePool.js → Tr2GpuResourcePool/Tr2GpuResourcePool.js} +63 -151
- package/dist/trinity/core/Tr2GpuResourcePool/Tr2GpuResourcePool.js.map +1 -0
- package/dist/trinity/core/{Tr2QuadRenderer.js → Tr2QuadRenderer/Tr2QuadRenderer.js} +8 -30
- package/dist/trinity/core/Tr2QuadRenderer/Tr2QuadRenderer.js.map +1 -0
- package/dist/trinity/core/Tr2QuadRenderer/Tr2QuadRendererEffectRecord.js +38 -0
- package/dist/trinity/core/Tr2QuadRenderer/Tr2QuadRendererEffectRecord.js.map +1 -0
- package/dist/trinity/core/Tr2RenderUtils.js +20 -3
- package/dist/trinity/core/Tr2RenderUtils.js.map +1 -1
- package/dist/trinity/core/Tr2Renderer.js +146 -1
- package/dist/trinity/core/Tr2Renderer.js.map +1 -1
- package/dist/trinity/core/Tr2ShadowMap.js +135 -14
- package/dist/trinity/core/Tr2ShadowMap.js.map +1 -1
- package/dist/trinity/core/{Tr2TextureArray.js → Tr2TextureArray/Tr2TextureArray.js} +3 -58
- package/dist/trinity/core/Tr2TextureArray/Tr2TextureArray.js.map +1 -0
- package/dist/trinity/core/Tr2TextureArray/Tr2TextureArrayElement.js +61 -0
- package/dist/trinity/core/Tr2TextureArray/Tr2TextureArrayElement.js.map +1 -0
- package/dist/trinity/core/batch/TriRenderBatch/DefaultKeyGenerator.js +26 -0
- package/dist/trinity/core/batch/TriRenderBatch/DefaultKeyGenerator.js.map +1 -0
- package/dist/trinity/core/batch/TriRenderBatch/EffectKeyGenerator.js +29 -0
- package/dist/trinity/core/batch/TriRenderBatch/EffectKeyGenerator.js.map +1 -0
- package/dist/trinity/core/batch/{ITriRenderBatchAccumulator.js → TriRenderBatch/ITriRenderBatchAccumulator.js} +30 -30
- package/dist/trinity/core/batch/TriRenderBatch/ITriRenderBatchAccumulator.js.map +1 -0
- package/dist/trinity/core/batch/{Tr2RenderBatch.js → TriRenderBatch/Tr2RenderBatch.js} +81 -154
- package/dist/trinity/core/batch/TriRenderBatch/Tr2RenderBatch.js.map +1 -0
- package/dist/trinity/core/batch/{TriRenderBatchAccumulator.js → TriRenderBatch/TriRenderBatchAccumulator.js} +7 -38
- package/dist/trinity/core/batch/TriRenderBatch/TriRenderBatchAccumulator.js.map +1 -0
- package/dist/trinity/core/batch/TriRenderBatch/TriRenderBatchAreaBlock.js +61 -0
- package/dist/trinity/core/batch/TriRenderBatch/TriRenderBatchAreaBlock.js.map +1 -0
- package/dist/trinity/core/batch/TriRenderBatch/TriRenderBatchAreaBlocksWithSharedMaterial.js +40 -0
- package/dist/trinity/core/batch/TriRenderBatch/TriRenderBatchAreaBlocksWithSharedMaterial.js.map +1 -0
- package/dist/trinity/core/batch/TriRenderBatchMap.js +6 -1
- package/dist/trinity/core/batch/TriRenderBatchMap.js.map +1 -1
- package/dist/trinity/core/context/Tr2RenderContext.js +75 -57
- package/dist/trinity/core/context/Tr2RenderContext.js.map +1 -1
- package/dist/trinity/core/context/Tr2VisibilityResults/Tr2VisibilityEvent.js +67 -0
- package/dist/trinity/core/context/Tr2VisibilityResults/Tr2VisibilityEvent.js.map +1 -0
- package/dist/trinity/core/context/Tr2VisibilityResults/Tr2VisibilityResults.js +50 -0
- package/dist/trinity/core/context/Tr2VisibilityResults/Tr2VisibilityResults.js.map +1 -0
- package/dist/trinity/core/device/Tr2DepthStencil.js +186 -13
- package/dist/trinity/core/device/Tr2DepthStencil.js.map +1 -1
- package/dist/trinity/core/device/{Tr2RingBuffer.js → Tr2RingBuffer/Tr2RingBuffer.js} +27 -79
- package/dist/trinity/core/device/Tr2RingBuffer/Tr2RingBuffer.js.map +1 -0
- package/dist/trinity/core/device/Tr2RingBuffer/Tr2RingBufferOffsets.js +114 -0
- package/dist/trinity/core/device/Tr2RingBuffer/Tr2RingBufferOffsets.js.map +1 -0
- package/dist/trinity/core/device/{Tr2SuballocatedBuffer.js → Tr2SuballocatedBuffer/Tr2SuballocatedBuffer.js} +5 -59
- package/dist/trinity/core/device/Tr2SuballocatedBuffer/Tr2SuballocatedBuffer.js.map +1 -0
- package/dist/trinity/core/device/Tr2SuballocatedBuffer/Tr2SuballocatedBufferAllocation.js +80 -0
- package/dist/trinity/core/device/Tr2SuballocatedBuffer/Tr2SuballocatedBufferAllocation.js.map +1 -0
- package/dist/trinity/core/index.js +42 -15
- package/dist/trinity/core/index.js.map +1 -1
- package/dist/trinity/core/lighting/Tr2LightManager.js +6 -1
- package/dist/trinity/core/lighting/Tr2LightManager.js.map +1 -1
- package/dist/trinity/core/mesh/{ITr2ImpostorSource.js → ITr2ImpostorSource/ITr2ImpostorSource.js} +6 -28
- package/dist/trinity/core/mesh/ITr2ImpostorSource/ITr2ImpostorSource.js.map +1 -0
- package/dist/trinity/core/mesh/ITr2ImpostorSource/ITr2ImpostorSourceImpostorHash.js +32 -0
- package/dist/trinity/core/mesh/ITr2ImpostorSource/ITr2ImpostorSourceImpostorHash.js.map +1 -0
- package/dist/trinity/core/mesh/{ITr2InstanceData.js → ITr2InstanceData/ITr2InstanceData.js} +5 -29
- package/dist/trinity/core/mesh/ITr2InstanceData/ITr2InstanceData.js.map +1 -0
- package/dist/trinity/core/mesh/ITr2InstanceData/ITr2InstanceDataInstanceData.js +33 -0
- package/dist/trinity/core/mesh/ITr2InstanceData/ITr2InstanceDataInstanceData.js.map +1 -0
- package/dist/trinity/core/mesh/Tr2DirectInstanceData.js +2 -1
- package/dist/trinity/core/mesh/Tr2DirectInstanceData.js.map +1 -1
- package/dist/trinity/core/mesh/Tr2MeshBase.js +7 -1
- package/dist/trinity/core/mesh/Tr2MeshBase.js.map +1 -1
- package/dist/trinity/core/mesh/Tr2RuntimeInstanceData.js +2 -1
- package/dist/trinity/core/mesh/Tr2RuntimeInstanceData.js.map +1 -1
- package/dist/trinity/core/mesh/TriGeometryResAllocations.js +6 -2
- package/dist/trinity/core/mesh/TriGeometryResAllocations.js.map +1 -1
- package/dist/trinity/core/rawData/CjsConstantLayout.js +196 -0
- package/dist/trinity/core/rawData/CjsConstantLayout.js.map +1 -0
- package/dist/trinity/core/rawData/CjsPerFrameLayouts.js +8 -3
- package/dist/trinity/core/rawData/CjsPerFrameLayouts.js.map +1 -1
- package/dist/trinity/core/rawData/CjsPerObjectLayouts.js +40 -732
- package/dist/trinity/core/rawData/CjsPerObjectLayouts.js.map +1 -1
- package/dist/trinity/core/rawData/layouts/CjsEveBasicLayout.js +34 -0
- package/dist/trinity/core/rawData/layouts/CjsEveBasicLayout.js.map +1 -0
- package/dist/trinity/core/rawData/layouts/CjsEveBoosterSetLayout.js +69 -0
- package/dist/trinity/core/rawData/layouts/CjsEveBoosterSetLayout.js.map +1 -0
- package/dist/trinity/core/rawData/layouts/CjsEveChildBoosterSetLayout.js +59 -0
- package/dist/trinity/core/rawData/layouts/CjsEveChildBoosterSetLayout.js.map +1 -0
- package/dist/trinity/core/rawData/layouts/CjsEveChildBulletStormLayout.js +37 -0
- package/dist/trinity/core/rawData/layouts/CjsEveChildBulletStormLayout.js.map +1 -0
- package/dist/trinity/core/rawData/layouts/CjsEveChildSpherePinLayout.js +44 -0
- package/dist/trinity/core/rawData/layouts/CjsEveChildSpherePinLayout.js.map +1 -0
- package/dist/trinity/core/rawData/layouts/CjsEveLensflareLayout.js +31 -0
- package/dist/trinity/core/rawData/layouts/CjsEveLensflareLayout.js.map +1 -0
- package/dist/trinity/core/rawData/layouts/CjsEveMissileWarheadLayout.js +29 -0
- package/dist/trinity/core/rawData/layouts/CjsEveMissileWarheadLayout.js.map +1 -0
- package/dist/trinity/core/rawData/layouts/CjsEvePerObjectLayout.js +39 -0
- package/dist/trinity/core/rawData/layouts/CjsEvePerObjectLayout.js.map +1 -0
- package/dist/trinity/core/rawData/layouts/CjsEveSceneStaticParticlesLayout.js +30 -0
- package/dist/trinity/core/rawData/layouts/CjsEveSceneStaticParticlesLayout.js.map +1 -0
- package/dist/trinity/core/rawData/layouts/CjsEveSpaceObjectDecalLayout.js +78 -0
- package/dist/trinity/core/rawData/layouts/CjsEveSpaceObjectDecalLayout.js.map +1 -0
- package/dist/trinity/core/rawData/layouts/CjsEveSpaceObjectLayout.js +169 -0
- package/dist/trinity/core/rawData/layouts/CjsEveSpaceObjectLayout.js.map +1 -0
- package/dist/trinity/core/rawData/layouts/CjsEveSpacePerObjectLayout.js +107 -0
- package/dist/trinity/core/rawData/layouts/CjsEveSpacePerObjectLayout.js.map +1 -0
- package/dist/trinity/core/rawData/layouts/CjsEveSpherePinLayout.js +44 -0
- package/dist/trinity/core/rawData/layouts/CjsEveSpherePinLayout.js.map +1 -0
- package/dist/trinity/core/rawData/layouts/CjsEveStretch2Layout.js +34 -0
- package/dist/trinity/core/rawData/layouts/CjsEveStretch2Layout.js.map +1 -0
- package/dist/trinity/core/rawData/layouts/CjsEveTurretSetLayout.js +82 -0
- package/dist/trinity/core/rawData/layouts/CjsEveTurretSetLayout.js.map +1 -0
- package/dist/trinity/core/rawData/layouts/CjsTr2PerObjectLayout.js +42 -0
- package/dist/trinity/core/rawData/layouts/CjsTr2PerObjectLayout.js.map +1 -0
- package/dist/trinity/core/rawData/perObjectData/EveBasicPerObjectData.js +55 -0
- package/dist/trinity/core/rawData/perObjectData/EveBasicPerObjectData.js.map +1 -0
- package/dist/trinity/core/rawData/perObjectData/EveBoosterSetPerObjectData.js +59 -0
- package/dist/trinity/core/rawData/perObjectData/EveBoosterSetPerObjectData.js.map +1 -0
- package/dist/trinity/core/rawData/perObjectData/EveChildBoosterSetPerObjectData.js +59 -0
- package/dist/trinity/core/rawData/perObjectData/EveChildBoosterSetPerObjectData.js.map +1 -0
- package/dist/trinity/core/rawData/perObjectData/EveChildBulletStormPerObjectData.js +55 -0
- package/dist/trinity/core/rawData/perObjectData/EveChildBulletStormPerObjectData.js.map +1 -0
- package/dist/trinity/core/rawData/perObjectData/EveChildSpherePinPerObjectData.js +55 -0
- package/dist/trinity/core/rawData/perObjectData/EveChildSpherePinPerObjectData.js.map +1 -0
- package/dist/trinity/core/rawData/perObjectData/EveDecalPerObjectData.js +59 -0
- package/dist/trinity/core/rawData/perObjectData/EveDecalPerObjectData.js.map +1 -0
- package/dist/trinity/core/rawData/perObjectData/EveLensflarePerObjectData.js +55 -0
- package/dist/trinity/core/rawData/perObjectData/EveLensflarePerObjectData.js.map +1 -0
- package/dist/trinity/core/rawData/perObjectData/EveMissileWarheadPerObjectData.js +55 -0
- package/dist/trinity/core/rawData/perObjectData/EveMissileWarheadPerObjectData.js.map +1 -0
- package/dist/trinity/core/rawData/perObjectData/EveSceneStaticParticlesPerObjectData.js +55 -0
- package/dist/trinity/core/rawData/perObjectData/EveSceneStaticParticlesPerObjectData.js.map +1 -0
- package/dist/trinity/core/rawData/perObjectData/EveSpherePinPerObjectData.js +55 -0
- package/dist/trinity/core/rawData/perObjectData/EveSpherePinPerObjectData.js.map +1 -0
- package/dist/trinity/core/rawData/perObjectData/EveTurretSetPerObjectData.js +59 -0
- package/dist/trinity/core/rawData/perObjectData/EveTurretSetPerObjectData.js.map +1 -0
- package/dist/trinity/core/rawData/perObjectData/StretchPerObjectData.js +55 -0
- package/dist/trinity/core/rawData/perObjectData/StretchPerObjectData.js.map +1 -0
- package/dist/trinity/core/rawData/{Tr2PerObjectData.js → perObjectData/Tr2PerObjectData.js} +110 -62
- package/dist/trinity/core/rawData/perObjectData/Tr2PerObjectData.js.map +1 -0
- package/dist/trinity/core/rawData/perObjectData/Tr2PerObjectDataPSBuffer.js +104 -0
- package/dist/trinity/core/rawData/perObjectData/Tr2PerObjectDataPSBuffer.js.map +1 -0
- package/dist/trinity/core/rawData/perObjectData/Tr2PerObjectDataStandard.js +87 -0
- package/dist/trinity/core/rawData/perObjectData/Tr2PerObjectDataStandard.js.map +1 -0
- package/dist/trinity/core/variable/TriVariable.js +83 -83
- package/dist/trinity/core/variable/TriVariable.js.map +1 -1
- package/dist/trinity/core/vertex/{Tr2VertexDefinition.js → Tr2VertexDefinition/Tr2VertexDefinition.js} +4 -20
- package/dist/trinity/core/vertex/Tr2VertexDefinition/Tr2VertexDefinition.js.map +1 -0
- package/dist/trinity/core/vertex/Tr2VertexDefinition/Tr2VertexDefinitionItem.js +29 -0
- package/dist/trinity/core/vertex/Tr2VertexDefinition/Tr2VertexDefinitionItem.js.map +1 -0
- package/dist/trinity/core/volumetrics/Tr2VolumetricsRenderer.js +116 -36
- package/dist/trinity/core/volumetrics/Tr2VolumetricsRenderer.js.map +1 -1
- package/dist/trinity/curves/curve/Tr2CurveRandomAxisRotation.js +50 -92
- package/dist/trinity/curves/curve/Tr2CurveRandomAxisRotation.js.map +1 -1
- package/dist/trinity/eve/EveModularObjectModifier.js +9 -5
- package/dist/trinity/eve/EveModularObjectModifier.js.map +1 -1
- package/dist/trinity/eve/IEveInheritPropertiesOwner.js +2 -1
- package/dist/trinity/eve/IEveInheritPropertiesOwner.js.map +1 -1
- package/dist/trinity/eve/IEveSpaceObject2.js +2 -1
- package/dist/trinity/eve/IEveSpaceObject2.js.map +1 -1
- package/dist/trinity/eve/IEveTransform.js +2 -1
- package/dist/trinity/eve/IEveTransform.js.map +1 -1
- package/dist/trinity/eve/attachment/banner/EveBannerSet.js +2 -2
- package/dist/trinity/eve/attachment/banner/EveBannerSet.js.map +1 -1
- package/dist/trinity/eve/attachment/booster/EveBoosterSet2.js +109 -133
- package/dist/trinity/eve/attachment/booster/EveBoosterSet2.js.map +1 -1
- package/dist/trinity/eve/attachment/booster/EveBoosterSet2Item.js +40 -0
- package/dist/trinity/eve/attachment/booster/EveBoosterSet2Item.js.map +1 -0
- package/dist/trinity/eve/attachment/booster/EveBoosterSet2Renderable.js +1 -1
- package/dist/trinity/eve/attachment/booster/EveBoosterSet2Renderable.js.map +1 -1
- package/dist/trinity/eve/attachment/decal/DecalMeshCache.js +2 -14
- package/dist/trinity/eve/attachment/decal/DecalMeshCache.js.map +1 -1
- package/dist/trinity/eve/attachment/decal/DecalMeshCacheMeshBuffers.js +18 -0
- package/dist/trinity/eve/attachment/decal/DecalMeshCacheMeshBuffers.js.map +1 -0
- package/dist/trinity/eve/attachment/decal/EveSpaceObjectDecal.js +1 -1
- package/dist/trinity/eve/attachment/decal/EveSpaceObjectDecal.js.map +1 -1
- package/dist/trinity/eve/attachment/haze/EveHazeSet.js +1 -1
- package/dist/trinity/eve/attachment/haze/EveHazeSet.js.map +1 -1
- package/dist/trinity/eve/attachment/plane/EvePlaneSet.js +1 -1
- package/dist/trinity/eve/attachment/plane/EvePlaneSet.js.map +1 -1
- package/dist/trinity/eve/attachment/spotlight/EveSpotlightSet.js +2 -2
- package/dist/trinity/eve/attachment/spotlight/EveSpotlightSet.js.map +1 -1
- package/dist/trinity/eve/attachment/sprite/EveSpriteLineSet.js +1 -1
- package/dist/trinity/eve/attachment/sprite/EveSpriteLineSet.js.map +1 -1
- package/dist/trinity/eve/attachment/sprite/EveSpriteSet.js +4 -2
- package/dist/trinity/eve/attachment/sprite/EveSpriteSet.js.map +1 -1
- package/dist/trinity/eve/attachment/turrets/EveTurretSet.js +143 -139
- package/dist/trinity/eve/attachment/turrets/EveTurretSet.js.map +1 -1
- package/dist/trinity/eve/camera/EveCamera.js +1 -1
- package/dist/trinity/eve/camera/EveCamera.js.map +1 -1
- package/dist/trinity/eve/child/EveChildBoosterSet.js +12 -1
- package/dist/trinity/eve/child/EveChildBoosterSet.js.map +1 -1
- package/dist/trinity/eve/child/EveChildCloud2.js +178 -151
- package/dist/trinity/eve/child/EveChildCloud2.js.map +1 -1
- package/dist/trinity/eve/child/EveChildContainer.js +141 -141
- package/dist/trinity/eve/child/EveChildContainer.js.map +1 -1
- package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMesh.js +87 -0
- package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMesh.js.map +1 -0
- package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshArea.js +46 -0
- package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshArea.js.map +1 -0
- package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshInstance.js +35 -0
- package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshInstance.js.map +1 -0
- package/dist/trinity/eve/child/{EveChildInstancedMeshes.js → EveChildInstancedMeshes/EveChildInstancedMeshes.js} +42 -163
- package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshes.js.map +1 -0
- package/dist/trinity/eve/child/EveChildMesh.js +218 -218
- package/dist/trinity/eve/child/EveChildMesh.js.map +1 -1
- package/dist/trinity/eve/child/EveChildPartData/EveChildPartData.js +53 -0
- package/dist/trinity/eve/child/EveChildPartData/EveChildPartData.js.map +1 -0
- package/dist/trinity/eve/child/{EveChildPartData.js → EveChildPartData/EveChildPartDataPartData.js} +9 -45
- package/dist/trinity/eve/child/EveChildPartData/EveChildPartDataPartData.js.map +1 -0
- package/dist/trinity/eve/child/EveChildParticleSystem.js +30 -29
- package/dist/trinity/eve/child/EveChildParticleSystem.js.map +1 -1
- package/dist/trinity/eve/child/EveChildTransform.js +5 -0
- package/dist/trinity/eve/child/EveChildTransform.js.map +1 -1
- package/dist/trinity/eve/child/EveChildTurret.js +7 -0
- package/dist/trinity/eve/child/EveChildTurret.js.map +1 -1
- package/dist/trinity/eve/index.js +10 -4
- package/dist/trinity/eve/index.js.map +1 -1
- package/dist/trinity/eve/lights/Tr2Light.js +5 -0
- package/dist/trinity/eve/lights/Tr2Light.js.map +1 -1
- package/dist/trinity/eve/overlays/overlayBatches.js +6 -1
- package/dist/trinity/eve/overlays/overlayBatches.js.map +1 -1
- package/dist/trinity/eve/particles/static/EveSceneStaticParticles.js +4 -4
- package/dist/trinity/eve/particles/static/EveSceneStaticParticles.js.map +1 -1
- package/dist/trinity/eve/renderable/stretch/EveStretch2.js +76 -71
- package/dist/trinity/eve/renderable/stretch/EveStretch2.js.map +1 -1
- package/dist/trinity/eve/renderable/stretch/EveStretch3.js +1 -1
- package/dist/trinity/eve/renderable/stretch/EveStretch3.js.map +1 -1
- package/dist/trinity/eve/spaceObject/EveShip2.js +3 -3
- package/dist/trinity/eve/spaceObject/EveShip2.js.map +1 -1
- package/dist/trinity/eve/spaceObject/EveSpaceObject2.js +408 -407
- package/dist/trinity/eve/spaceObject/EveSpaceObject2.js.map +1 -1
- package/dist/trinity/eve/ui/EveTacticalOverlay.js +1 -1
- package/dist/trinity/eve/ui/EveTacticalOverlay.js.map +1 -1
- package/dist/trinity/eve/ui/lines/EveCurveLineSet.js +9 -9
- package/dist/trinity/eve/ui/lines/EveCurveLineSet.js.map +1 -1
- package/dist/trinity/eve/ui/lines/EveLineSet.js +27 -25
- package/dist/trinity/eve/ui/lines/EveLineSet.js.map +1 -1
- package/dist/trinity/eve/ui/tacticalOverlay/EveTacticalTrails.js +3 -2
- package/dist/trinity/eve/ui/tacticalOverlay/EveTacticalTrails.js.map +1 -1
- package/dist/trinity/generated/index.js +0 -1
- package/dist/trinity/generated/index.js.map +1 -1
- package/dist/trinity/generated/trinityCore/index.js +0 -1
- package/dist/trinity/generated/trinityCore/index.js.map +1 -1
- package/dist/trinity/index.js +59 -23
- package/dist/trinity/index.js.map +1 -1
- package/dist/trinity/particle/{ITr2GenericEmitter.js → ITr2GenericEmitter/ITr2GenericEmitter.js} +4 -32
- package/dist/trinity/particle/ITr2GenericEmitter/ITr2GenericEmitter.js.map +1 -0
- package/dist/trinity/particle/ITr2GenericEmitter/ITr2GenericEmitterUpdateArguments.js +36 -0
- package/dist/trinity/particle/ITr2GenericEmitter/ITr2GenericEmitterUpdateArguments.js.map +1 -0
- package/dist/trinity/particle/Tr2ParticleSystem.js +4 -2
- package/dist/trinity/particle/Tr2ParticleSystem.js.map +1 -1
- package/dist/trinity/particle/element/Tr2ParticleElementData.js +15 -4
- package/dist/trinity/particle/element/Tr2ParticleElementData.js.map +1 -1
- package/dist/trinity/particle/emitter/Tr2DynamicEmitter.js +21 -20
- package/dist/trinity/particle/emitter/Tr2DynamicEmitter.js.map +1 -1
- package/dist/trinity/particle/emitter/Tr2GpuSharedEmitter.js +23 -22
- package/dist/trinity/particle/emitter/Tr2GpuSharedEmitter.js.map +1 -1
- package/dist/trinity/particle/emitter/Tr2StaticEmitter.js +14 -13
- package/dist/trinity/particle/emitter/Tr2StaticEmitter.js.map +1 -1
- package/dist/trinity/particle/index.js +2 -1
- package/dist/trinity/particle/index.js.map +1 -1
- package/dist/trinity/renderJob/step/TriStepPushRenderTarget.js +7 -1
- package/dist/trinity/renderJob/step/TriStepPushRenderTarget.js.map +1 -1
- package/dist/trinity/shader/Tr2Effect.js +131 -58
- package/dist/trinity/shader/Tr2Effect.js.map +1 -1
- package/dist/trinity/shader/Tr2EffectStateManager.js +17 -5
- package/dist/trinity/shader/Tr2EffectStateManager.js.map +1 -1
- package/dist/trinity/shader/Tr2Material.js +21 -4
- package/dist/trinity/shader/Tr2Material.js.map +1 -1
- package/dist/trinity/shader/material/Tr2EffectPassParameters.js +4 -1
- package/dist/trinity/shader/material/Tr2EffectPassParameters.js.map +1 -1
- package/dist/trinity/shader/parameter/Tr2GeometryBufferParameter.js +2 -2
- package/dist/trinity/shader/parameter/Tr2GeometryBufferParameter.js.map +1 -1
- package/dist/trinityal/Tr2BufferAL/Tr2BufferDescriptionAL.js +79 -0
- package/dist/trinityal/Tr2BufferAL/Tr2BufferDescriptionAL.js.map +1 -0
- package/dist/trinityal/{Tr2DeviceResourceAL.js → Tr2DeviceResourceAL/Tr2BaseDeviceResourceAL.js} +77 -79
- package/dist/trinityal/Tr2DeviceResourceAL/Tr2BaseDeviceResourceAL.js.map +1 -0
- package/dist/trinityal/Tr2DeviceResourceAL/Tr2DeviceResourceAL.js +24 -0
- package/dist/trinityal/Tr2DeviceResourceAL/Tr2DeviceResourceAL.js.map +1 -0
- package/dist/trinityal/Tr2DrawUPHelper.js +2 -1
- package/dist/trinityal/Tr2DrawUPHelper.js.map +1 -1
- package/dist/trinityal/Tr2HalHelperStructures/Tr2MsaaDesc.js +45 -0
- package/dist/trinityal/Tr2HalHelperStructures/Tr2MsaaDesc.js.map +1 -0
- package/dist/trinityal/Tr2HalHelperStructures/Tr2SamplerDescription.js +154 -0
- package/dist/trinityal/Tr2HalHelperStructures/Tr2SamplerDescription.js.map +1 -0
- package/dist/trinityal/Tr2HalHelperStructures/Tr2SubresourceData.js +48 -0
- package/dist/trinityal/Tr2HalHelperStructures/Tr2SubresourceData.js.map +1 -0
- package/dist/trinityal/Tr2HalHelperStructures/Tr2TextureCoordBox.js +75 -0
- package/dist/trinityal/Tr2HalHelperStructures/Tr2TextureCoordBox.js.map +1 -0
- package/dist/trinityal/{Tr2HalHelperStructures.js → Tr2HalHelperStructures/Tr2TextureSubresource.js} +11 -115
- package/dist/trinityal/Tr2HalHelperStructures/Tr2TextureSubresource.js.map +1 -0
- package/dist/trinityal/Tr2HalHelperStructures/Tr2Viewport.js +51 -0
- package/dist/trinityal/Tr2HalHelperStructures/Tr2Viewport.js.map +1 -0
- package/dist/trinityal/{Tr2RenderPassAL.js → Tr2RenderPassAL/Tr2ColorAttachment.js} +5 -28
- package/dist/trinityal/Tr2RenderPassAL/Tr2ColorAttachment.js.map +1 -0
- package/dist/trinityal/Tr2RenderPassAL/Tr2DepthAttachment.js +38 -0
- package/dist/trinityal/Tr2RenderPassAL/Tr2DepthAttachment.js.map +1 -0
- package/dist/trinityal/Tr2ResourceSetAL/Tr2RegisterMapAL.js +80 -0
- package/dist/trinityal/Tr2ResourceSetAL/Tr2RegisterMapAL.js.map +1 -0
- package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetAL.js +76 -0
- package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetAL.js.map +1 -0
- package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetALStub.js +96 -0
- package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetALStub.js.map +1 -0
- package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetDescriptionAL.js +196 -0
- package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetDescriptionAL.js.map +1 -0
- package/dist/trinityal/index.js +22 -9
- package/dist/trinityal/index.js.map +1 -1
- package/dist/trinityal/stub/Tr2BufferALStub.js +86 -141
- package/dist/trinityal/stub/Tr2BufferALStub.js.map +1 -1
- package/dist/trinityal/stub/Tr2CapsALStub.js +17 -0
- package/dist/trinityal/stub/Tr2CapsALStub.js.map +1 -1
- package/dist/trinityal/stub/Tr2ConstantBufferALStub.js +57 -41
- package/dist/trinityal/stub/Tr2ConstantBufferALStub.js.map +1 -1
- package/dist/trinityal/stub/Tr2FenceALStub.js +18 -2
- package/dist/trinityal/stub/Tr2FenceALStub.js.map +1 -1
- package/dist/trinityal/stub/Tr2GpuTimerALStub.js +97 -0
- package/dist/trinityal/stub/Tr2GpuTimerALStub.js.map +1 -0
- package/dist/trinityal/stub/Tr2OcclusionQueryALStub.js +124 -0
- package/dist/trinityal/stub/Tr2OcclusionQueryALStub.js.map +1 -0
- package/dist/trinityal/stub/Tr2PipelineStatsQueryALStub/Tr2PipelineStatsQueryALStub.js +146 -0
- package/dist/trinityal/stub/Tr2PipelineStatsQueryALStub/Tr2PipelineStatsQueryALStub.js.map +1 -0
- package/dist/trinityal/stub/Tr2RenderContextALStub/Tr2BindlessResourcesAL.js +28 -0
- package/dist/trinityal/stub/Tr2RenderContextALStub/Tr2BindlessResourcesAL.js.map +1 -0
- package/dist/trinityal/stub/{Tr2RenderContextALStub.js → Tr2RenderContextALStub/Tr2RenderContextALStub.js} +70 -75
- package/dist/trinityal/stub/Tr2RenderContextALStub/Tr2RenderContextALStub.js.map +1 -0
- package/dist/trinityal/stub/Tr2SamplerStateALStub.js +47 -31
- package/dist/trinityal/stub/Tr2SamplerStateALStub.js.map +1 -1
- package/dist/trinityal/stub/Tr2ShaderALStub.js +61 -45
- package/dist/trinityal/stub/Tr2ShaderALStub.js.map +1 -1
- package/dist/trinityal/stub/Tr2ShaderProgramALStub.js +51 -33
- package/dist/trinityal/stub/Tr2ShaderProgramALStub.js.map +1 -1
- package/dist/trinityal/stub/Tr2SwapChainALStub.js +61 -45
- package/dist/trinityal/stub/Tr2SwapChainALStub.js.map +1 -1
- package/dist/trinityal/stub/Tr2TextureALStub.js +188 -171
- package/dist/trinityal/stub/Tr2TextureALStub.js.map +1 -1
- package/dist/trinityal/stub/Tr2VertexLayoutALStub.js +43 -27
- package/dist/trinityal/stub/Tr2VertexLayoutALStub.js.map +1 -1
- package/dist/trinityal/stub/{Tr2VideoAdapterInfoALStub.js → Tr2VideoAdapterInfoStub.js} +16 -1
- package/dist/trinityal/stub/Tr2VideoAdapterInfoStub.js.map +1 -0
- package/dist/trinityal/stub/index.js +8 -4
- package/dist/trinityal/stub/index.js.map +1 -1
- package/dist/trinityal/vertexLayoutMatch.js +2 -2
- package/dist/trinityal/vertexLayoutMatch.js.map +1 -1
- package/dist/trinityal/webgpu/CjsWebgpuBufferAL.js +105 -90
- package/dist/trinityal/webgpu/CjsWebgpuBufferAL.js.map +1 -1
- package/dist/trinityal/webgpu/CjsWebgpuCapsAL.js +17 -0
- package/dist/trinityal/webgpu/CjsWebgpuCapsAL.js.map +1 -1
- package/dist/trinityal/webgpu/CjsWebgpuConstantBufferAL.js +15 -0
- package/dist/trinityal/webgpu/CjsWebgpuConstantBufferAL.js.map +1 -1
- package/dist/trinityal/webgpu/CjsWebgpuDevice.js +2 -2
- package/dist/trinityal/webgpu/CjsWebgpuDevice.js.map +1 -1
- package/dist/trinityal/webgpu/CjsWebgpuRenderContextAL.js +900 -938
- package/dist/trinityal/webgpu/CjsWebgpuRenderContextAL.js.map +1 -1
- package/dist/trinityal/webgpu/CjsWebgpuResourceSetAL.js +56 -60
- package/dist/trinityal/webgpu/CjsWebgpuResourceSetAL.js.map +1 -1
- package/dist/trinityal/webgpu/CjsWebgpuSamplerStateAL.js +16 -1
- package/dist/trinityal/webgpu/CjsWebgpuSamplerStateAL.js.map +1 -1
- package/dist/trinityal/webgpu/CjsWebgpuShaderAL.js +100 -379
- package/dist/trinityal/webgpu/CjsWebgpuShaderAL.js.map +1 -1
- package/dist/trinityal/webgpu/CjsWebgpuShaderProgramAL.js +330 -0
- package/dist/trinityal/webgpu/CjsWebgpuShaderProgramAL.js.map +1 -0
- package/dist/trinityal/webgpu/CjsWebgpuTextureAL.js +15 -0
- package/dist/trinityal/webgpu/CjsWebgpuTextureAL.js.map +1 -1
- package/dist/trinityal/webgpu/core/{constantArena.js → CjsWebgpuConstantArena.js} +1 -1
- package/dist/trinityal/webgpu/core/CjsWebgpuConstantArena.js.map +1 -0
- package/dist/trinityal/webgpu/core/{batchGroups.js → CjsWebgpuEncodeState.js} +1 -1
- package/dist/trinityal/webgpu/core/CjsWebgpuEncodeState.js.map +1 -0
- package/dist/trinityal/webgpu/core/{perFrameSource.js → CjsWebgpuPerFrameSource.js} +1 -1
- package/dist/trinityal/webgpu/core/CjsWebgpuPerFrameSource.js.map +1 -0
- package/dist/trinityal/webgpu/core/{pipelineCache.js → CjsWebgpuPipelineCache.js} +1 -1
- package/dist/trinityal/webgpu/core/CjsWebgpuPipelineCache.js.map +1 -0
- package/dist/trinityal/webgpu/core/{psoDescription.js → CjsWebgpuPsoDescription.js} +2 -2
- package/dist/trinityal/webgpu/core/CjsWebgpuPsoDescription.js.map +1 -0
- package/dist/trinityal/webgpu/core/{renderTarget.js → CjsWebgpuRenderTarget.js} +1 -1
- package/dist/trinityal/webgpu/core/CjsWebgpuRenderTarget.js.map +1 -0
- package/dist/trinityal/webgpu/core/{samplerSource.js → CjsWebgpuSamplerSource.js} +1 -1
- package/dist/trinityal/webgpu/core/CjsWebgpuSamplerSource.js.map +1 -0
- package/dist/trinityal/webgpu/core/{textureSource.js → CjsWebgpuTextureSource.js} +1 -1
- package/dist/trinityal/webgpu/core/CjsWebgpuTextureSource.js.map +1 -0
- package/dist/trinityal/webgpu/core/{trinityBatchDispatcher.js → CjsWebgpuTrinityBatchDispatcher.js} +4 -4
- package/dist/trinityal/webgpu/core/CjsWebgpuTrinityBatchDispatcher.js.map +1 -0
- package/dist/trinityal/webgpu/core/{trinityBatchResolver.js → CjsWebgpuTrinityBatchResolver.js} +81 -81
- package/dist/trinityal/webgpu/core/CjsWebgpuTrinityBatchResolver.js.map +1 -0
- package/dist/trinityal/webgpu/core/{trinityPassEncoder.js → CjsWebgpuTrinityPassEncoder.js} +2 -2
- package/dist/trinityal/webgpu/core/CjsWebgpuTrinityPassEncoder.js.map +1 -0
- package/dist/trinityal/webgpu/core/{workQueue.js → CjsWebgpuWorkQueue.js} +1 -1
- package/dist/trinityal/webgpu/core/CjsWebgpuWorkQueue.js.map +1 -0
- package/dist/trinityal/webgpu/internal.js +12 -11
- package/dist/trinityal/webgpu/internal.js.map +1 -1
- package/docs/audio/reference/classes/trinity.md +44 -34
- package/docs/character/architecture.md +276 -0
- package/docs/character/reference/character-appearance-plans.md +30 -66
- package/docs/character/reference/prepared-libraries.md +14 -30
- package/docs/global/reference/api.md +2 -1
- package/docs/global/reference/classes/README.md +53 -71
- package/docs/global/reference/classes/dropped.md +16 -0
- package/docs/resource/README.md +19 -15
- package/docs/resource/architecture.md +9 -2
- package/docs/resource/concepts/format-capabilities.md +124 -80
- package/docs/resource/concepts/shared-format-helpers.md +94 -0
- package/docs/resource/formats/README.md +230 -224
- package/docs/resource/formats/bitknit2.md +221 -0
- package/docs/resource/formats/carbon-effect-container.md +184 -269
- package/docs/resource/formats/gr2.md +6 -1
- package/docs/resource/formats/schemabound.md +28 -48
- package/docs/resource/formats/static.md +70 -97
- package/docs/resource/formats/webgl/carbon-constant-layouts.md +8 -8
- package/docs/resource/formats/webgl/decl-io.md +165 -256
- package/docs/resource/formats/webgl/memory-structured.md +64 -142
- package/docs/resource/formats/webgl/texture-sample.md +109 -138
- package/docs/resource/formats/webgpu/formats/carbon-webgpu.md +38 -69
- package/docs/resource/formats/webgpu/guides/effect-packaging.md +54 -116
- package/docs/resource/formats/webgpu/reference/api.md +64 -67
- package/docs/resource/formats/webgpu/reference/wgsl-compatibility.md +104 -260
- package/docs/resource/reference/classes/core.md +256 -236
- package/docs/resource/reference/classes/formats.md +1668 -1672
- package/docs/resource/reference/workers.md +4 -2
- package/docs/sof/reference/classes/core.md +1 -1
- package/docs/sof/reference/classes/faction.md +2 -2
- package/docs/sof/reference/classes/generic.md +4 -4
- package/docs/sof/reference/classes/pattern.md +1 -1
- package/docs/sof/reference/classes/shared.md +10 -10
- package/docs/trinity/architecture.md +55 -44
- package/docs/trinity/concepts/generated-class-lifecycle.md +10 -15
- package/docs/trinity/reference/classes/curves-and-utilities.md +496 -506
- package/docs/trinity/reference/classes/dropped.md +0 -189
- package/docs/trinity/reference/classes/eve-runtime.md +8 -8
- package/docs/trinity/reference/classes/generated.md +0 -10
- package/docs/trinity/reference/classes/particle.md +2 -2
- package/docs/trinity/reference/classes/trinity-core.md +1554 -1256
- package/docs/trinity/reference/implementation-status.md +50 -75
- package/docs/trinity/reference/main-semantic-extraction.md +13 -17
- package/docs/trinityal/reference/classes/README.md +77 -27
- package/docs/trinityal/reference/classes/dropped.md +82 -0
- package/docs/trinityal/webgpu/README.md +3 -1
- package/docs/trinityal/webgpu/architecture.md +121 -228
- package/docs/trinityal/webgpu/reference/api.md +5 -5
- package/docs/trinityal/webgpu/reference/classes/README.md +13 -13
- package/format-notices/gr2/NOTICE +18 -12
- package/format-notices/gr2/THIRD-PARTY-NOTICES.md +5 -5
- package/package.json +4 -1
- package/dist/audio/trinity/audio/AudActionLog.js +0 -173
- package/dist/audio/trinity/audio/AudActionLog.js.map +0 -1
- package/dist/audio/trinity/audio/AudObstructionOcclusion.js.map +0 -1
- package/dist/global/contracts/CjsScriptCallback.js +0 -94
- package/dist/global/contracts/CjsScriptCallback.js.map +0 -1
- package/dist/trinity/controllers/ITr2Controller.js.map +0 -1
- package/dist/trinity/core/Tr2GpuResourcePool.js.map +0 -1
- package/dist/trinity/core/Tr2QuadRenderer.js.map +0 -1
- package/dist/trinity/core/Tr2TextureArray.js.map +0 -1
- package/dist/trinity/core/batch/ITriRenderBatchAccumulator.js.map +0 -1
- package/dist/trinity/core/batch/Tr2RenderBatch.js.map +0 -1
- package/dist/trinity/core/batch/TriRenderBatchAccumulator.js.map +0 -1
- package/dist/trinity/core/context/CjsShadowMapExecutor.js +0 -43
- package/dist/trinity/core/context/CjsShadowMapExecutor.js.map +0 -1
- package/dist/trinity/core/context/CjsVolumetricsExecutor.js +0 -64
- package/dist/trinity/core/context/CjsVolumetricsExecutor.js.map +0 -1
- package/dist/trinity/core/context/Tr2VisibilityResults.js +0 -109
- package/dist/trinity/core/context/Tr2VisibilityResults.js.map +0 -1
- package/dist/trinity/core/device/Tr2RingBuffer.js.map +0 -1
- package/dist/trinity/core/device/Tr2SuballocatedBuffer.js.map +0 -1
- package/dist/trinity/core/mesh/ITr2ImpostorSource.js.map +0 -1
- package/dist/trinity/core/mesh/ITr2InstanceData.js.map +0 -1
- package/dist/trinity/core/rawData/Tr2PerObjectData.js.map +0 -1
- package/dist/trinity/core/rawData/constantLayout.js +0 -175
- package/dist/trinity/core/rawData/constantLayout.js.map +0 -1
- package/dist/trinity/core/vertex/Tr2VertexDefinition.js.map +0 -1
- package/dist/trinity/eve/child/EveChildInstancedMeshes.js.map +0 -1
- package/dist/trinity/eve/child/EveChildPartData.js.map +0 -1
- package/dist/trinity/generated/trinityCore/Tr2Denoiser.js +0 -47
- package/dist/trinity/generated/trinityCore/Tr2Denoiser.js.map +0 -1
- package/dist/trinity/particle/ITr2GenericEmitter.js.map +0 -1
- package/dist/trinityal/Tr2DeviceResourceAL.js.map +0 -1
- package/dist/trinityal/Tr2HalHelperStructures.js.map +0 -1
- package/dist/trinityal/Tr2RenderPassAL.js.map +0 -1
- package/dist/trinityal/Tr2ResourceSetAL.js +0 -419
- package/dist/trinityal/Tr2ResourceSetAL.js.map +0 -1
- package/dist/trinityal/Tr2SamplerDescription.js +0 -72
- package/dist/trinityal/Tr2SamplerDescription.js.map +0 -1
- package/dist/trinityal/stub/Tr2QueryALStub.js +0 -326
- package/dist/trinityal/stub/Tr2QueryALStub.js.map +0 -1
- package/dist/trinityal/stub/Tr2RenderContextALStub.js.map +0 -1
- package/dist/trinityal/stub/Tr2VideoAdapterInfoALStub.js.map +0 -1
- package/dist/trinityal/webgpu/core/batchGroups.js.map +0 -1
- package/dist/trinityal/webgpu/core/constantArena.js.map +0 -1
- package/dist/trinityal/webgpu/core/perFrameSource.js.map +0 -1
- package/dist/trinityal/webgpu/core/pipelineCache.js.map +0 -1
- package/dist/trinityal/webgpu/core/psoDescription.js.map +0 -1
- package/dist/trinityal/webgpu/core/renderTarget.js.map +0 -1
- package/dist/trinityal/webgpu/core/samplerSource.js.map +0 -1
- package/dist/trinityal/webgpu/core/textureSource.js.map +0 -1
- package/dist/trinityal/webgpu/core/trinityBatchDispatcher.js.map +0 -1
- package/dist/trinityal/webgpu/core/trinityBatchResolver.js.map +0 -1
- package/dist/trinityal/webgpu/core/trinityPassEncoder.js.map +0 -1
- package/dist/trinityal/webgpu/core/workQueue.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.js","sources":["../../../../../../src/resource/formats/mp3/core/helpers.js"],"sourcesContent":["import { asUint8Array, readFourCc, readU16LE, readU32BE, readU32LE } from \"#utils/bytes\";\nexport const OUTPUT_AUDIO = \"audio\";\nexport const OUTPUT_PCM = \"pcm\";\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 wav: \"wavJson\",\n mp3: \"mp3Json\"\n});\n\n/**\n * Normalizes reader options against their supported defaults for the MP3 format\n * reader.\n */\nexport function normalizeValues(base = DEFAULT_VALUES, options = {}, readerName = \"CjsAudioFormat\")\n{\n const values = { ...DEFAULT_VALUES, ...(base || {}), ...(options || {}) };\n values.inputType = normalizeInputType(values.inputType);\n values.emit = normalizeEmit(values.emit, values.inputType, readerName);\n return values;\n}\n\n/** Normalizes the requested input representation for the MP3 format reader. */\nexport function normalizeInputType(inputType)\n{\n return inputType ? String(inputType).replace(/^\\./u, \"\").toLowerCase() : \"\";\n}\n\n/** Normalizes the requested output representation for the MP3 format reader. */\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_AUDIO, OUTPUT_PCM, 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\n/** Returns a byte view over the supplied binary input for the MP3 format reader. */\r/** Inspects input using normalized format options for the MP3 format reader. */\nexport function inspectWithValues(input, values = DEFAULT_VALUES, expectedType = \"\")\n{\n const bytes = asUint8Array(input, \"Audio input\");\n const metadata = inspectBytes(bytes);\n if (expectedType && metadata.sourceFormat && metadata.sourceFormat !== expectedType)\n {\n throw new TypeError(`CjsAudioFormat: expected ${expectedType}, got ${metadata.sourceFormat}`);\n }\n return {\n payloadType: \"audio\",\n mediaTypes: [ \"audio\" ],\n byteLength: bytes.byteLength,\n sourceFormat: expectedType || values.inputType || metadata.sourceFormat,\n ...metadata\n };\n}\n\n/**\n * Reports whether input is supported under normalized format options for the MP3\n * format reader.\n */\nexport function probeSupportWithValues(input, values = DEFAULT_VALUES, expectedType = \"\")\n{\n try\n {\n const metadata = inspectWithValues(input, values, expectedType);\n const mimeType = getAudioMimeType(metadata);\n const variants = [\n {\n kind: \"raw\",\n payloadType: \"raw\",\n codec: metadata.audioFormat || metadata.sourceFormat,\n mimeType,\n supported: true,\n },\n { kind: \"pcm\", payloadType: \"pcm\", codec: \"pcm\", supported: false, reason: \"MP3 PCM decode/output is not implemented yet.\" }\n ];\n return {\n format: metadata.sourceFormat,\n source: values.source || \"buffer\",\n supported: metadata.sourceFormat ? \"partial\" : \"none\",\n confidence: metadata.sourceFormat ? 1 : 0,\n preferredOutput: variants.find((variant) => variant.supported)?.kind || \"\",\n reason: metadata.sourceFormat ? \"Container/header recognized.\" : \"Unrecognized audio format.\",\n metadata,\n variants,\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 preferredOutput: \"\",\n reason: error.message,\n metadata: null,\n variants: [],\n warnings: [],\n errors: [ error.message ]\n };\n }\n}\n\n/** Reads input using normalized format options for the MP3 format reader. */\nexport function readWithValues(input, values = DEFAULT_VALUES, expectedType = \"\")\n{\n const bytes = asUint8Array(input, \"Audio 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 mimeType: getAudioMimeType(metadata),\n metadata,\n bytes\n };\n }\n if (values.emit === OUTPUT_JSON || values.emit === DEBUG_OUTPUTS[metadata.sourceFormat]) return metadata;\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 getAudioMimeType(metadata)\n{\n if (metadata.sourceFormat === \"wav\") return \"audio/wav\";\n return \"audio/mpeg\";\n}\n\n/** Converts a parsed payload into a JSON-safe value for the MP3 format reader. */\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\n/**\n * Inspects the supplied bytes without decoding their payload for the MP3 format\n * reader.\n */\nexport function inspectBytes(bytes)\n{\n if (isWAV(bytes)) return inspectWAV(bytes);\n if (isMP3(bytes)) return inspectMP3(bytes);\n return { sourceFormat: \"\", audioFormat: \"\" };\n}\n\n/**\n * Reports whether the supplied bytes have a RIFF/WAVE header for the MP3 format\n * reader.\n */\nexport function isWAV(bytes)\n{\n return bytes.byteLength >= 12 && readFourCc(bytes, 0) === \"RIFF\" && readFourCc(bytes, 8) === \"WAVE\";\n}\n\n/**\n * Reports whether the supplied bytes have a supported MP3 header for the MP3\n * format reader.\n */\nexport function isMP3(bytes)\n{\n return bytes.byteLength >= 3 &&\n (readFourCc(bytes, 0, 3) === \"ID3\" || (bytes[0] === 0xff && (bytes[1] & 0xe0) === 0xe0));\n}\n\nfunction inspectWAV(bytes)\n{\n let offset = 12;\n const info = { sourceFormat: \"wav\", audioFormat: \"wav\", sampleRate: 0, channels: 0, bitsPerSample: 0, dataBytes: 0 };\n while (offset + 8 <= bytes.byteLength)\n {\n const id = readFourCc(bytes, offset), size = readU32LE(bytes, offset + 4), dataOffset = offset + 8;\n if (id === \"fmt \" && dataOffset + 16 <= bytes.byteLength)\n {\n info.formatTag = readU16LE(bytes, dataOffset);\n info.channels = readU16LE(bytes, dataOffset + 2);\n info.sampleRate = readU32LE(bytes, dataOffset + 4);\n info.bitsPerSample = readU16LE(bytes, dataOffset + 14);\n }\n if (id === \"data\") info.dataBytes = size;\n offset = dataOffset + size + (size & 1);\n }\n return info;\n}\n\nfunction inspectMP3(bytes)\n{\n const frame = readMp3FrameHeader(bytes, findMp3FrameOffset(bytes));\n const id3 = readId3Header(bytes);\n const info = {\n sourceFormat: \"mp3\",\n audioFormat: \"mp3\",\n hasId3: !!id3,\n id3Version: id3?.version || 0,\n id3Revision: id3?.revision || 0,\n id3Flags: id3?.flags || 0,\n id3Size: id3?.size || 0,\n firstFrameOffset: frame?.offset || 0,\n version: frame?.version || \"\",\n layer: frame?.layer || \"\",\n bitrateKbps: frame?.bitrateKbps || 0,\n sampleRate: frame?.sampleRate || 0,\n channels: frame?.channels || 0,\n samplesPerFrame: frame?.samplesPerFrame || 0,\n frameLength: frame?.frameLength || 0,\n frameCount: 0,\n durationSeconds: 0,\n declaredFrameCount: 0,\n declaredByteCount: 0,\n vbrHeader: \"\",\n encoderDelay: 0,\n encoderPadding: 0\n };\n\n if (frame)\n {\n const vbr = readVbrHeader(bytes, frame);\n if (vbr)\n {\n info.declaredFrameCount = vbr.frameCount;\n info.declaredByteCount = vbr.byteCount;\n info.vbrHeader = vbr.kind;\n info.encoderDelay = vbr.encoderDelay;\n info.encoderPadding = vbr.encoderPadding;\n }\n let offset = frame.offset;\n while (offset + 4 <= bytes.byteLength && info.frameCount < 1000000)\n {\n const next = readMp3FrameHeader(bytes, offset);\n if (!next || next.frameLength <= 0) break;\n info.frameCount++;\n offset += next.frameLength;\n }\n const frameCount = info.declaredFrameCount || info.frameCount;\n const trimmedSamples = Math.max(0, frameCount * info.samplesPerFrame - info.encoderDelay - info.encoderPadding);\n info.durationSeconds = info.sampleRate ? trimmedSamples / info.sampleRate : 0;\n }\n\n return info;\n}\n\nfunction readId3Header(bytes)\n{\n if (bytes.byteLength < 10 || readFourCc(bytes, 0, 3) !== \"ID3\") return null;\n return {\n version: bytes[3],\n revision: bytes[4],\n flags: bytes[5],\n size: (bytes[6] << 21) | (bytes[7] << 14) | (bytes[8] << 7) | bytes[9]\n };\n}\n\nfunction readVbrHeader(bytes, frame)\n{\n const sideInfoLength = frame.version === \"mpeg1\"\n ? frame.channels === 1 ? 17 : 32\n : frame.channels === 1 ? 9 : 17;\n const xingOffset = frame.offset + 4 + sideInfoLength;\n for (const kind of [ \"Xing\", \"Info\" ])\n {\n if (readFourCc(bytes, xingOffset, 4) !== kind) continue;\n const flags = readU32BE(bytes, xingOffset + 4);\n const frameCount = (flags & 1) !== 0 ? readU32BE(bytes, xingOffset + 8) : 0;\n const byteCount = (flags & 2) !== 0 ? readU32BE(bytes, xingOffset + 12) : 0;\n const gapless = readLameGapless(bytes, xingOffset + 8 + ((flags & 1) !== 0 ? 4 : 0) + ((flags & 2) !== 0 ? 4 : 0) + ((flags & 4) !== 0 ? 100 : 0));\n return { kind, frameCount, byteCount, ...gapless };\n }\n\n const vbriOffset = frame.offset + 36;\n if (readFourCc(bytes, vbriOffset, 4) === \"VBRI\")\n {\n return {\n kind: \"VBRI\",\n frameCount: readU32BE(bytes, vbriOffset + 14),\n byteCount: readU32BE(bytes, vbriOffset + 10),\n encoderDelay: 0,\n encoderPadding: 0\n };\n }\n\n return null;\n}\n\nfunction readLameGapless(bytes, searchStart)\n{\n const end = Math.min(bytes.byteLength - 3, searchStart + 160);\n for (let offset = searchStart; offset < end; offset++)\n {\n if (readFourCc(bytes, offset, 4) !== \"LAME\") continue;\n const value = (bytes[offset + 0x15] << 16) | (bytes[offset + 0x16] << 8) | bytes[offset + 0x17];\n return {\n encoderDelay: (value >>> 12) & 0xfff,\n encoderPadding: value & 0xfff\n };\n }\n return { encoderDelay: 0, encoderPadding: 0 };\n}\n\nfunction findMp3FrameOffset(bytes)\n{\n let offset = 0;\n if (readFourCc(bytes, 0, 3) === \"ID3\" && bytes.byteLength >= 10)\n {\n const size = (bytes[6] << 21) | (bytes[7] << 14) | (bytes[8] << 7) | bytes[9];\n offset = 10 + size + (bytes[5] & 0x10 ? 10 : 0);\n }\n for (; offset + 4 <= bytes.byteLength; offset++)\n {\n if (readMp3FrameHeader(bytes, offset)) return offset;\n }\n return -1;\n}\n\nfunction readMp3FrameHeader(bytes, offset)\n{\n if (offset < 0 || offset + 4 > bytes.byteLength) return null;\n const header = ((bytes[offset] << 24) | (bytes[offset + 1] << 16) | (bytes[offset + 2] << 8) | bytes[offset + 3]) >>> 0;\n if (((header & 0xffe00000) >>> 0) !== 0xffe00000) return null;\n\n const versionBits = (header >>> 19) & 3;\n const layerBits = (header >>> 17) & 3;\n const bitrateIndex = (header >>> 12) & 0xf;\n const sampleRateIndex = (header >>> 10) & 3;\n const padding = (header >>> 9) & 1;\n const channelMode = (header >>> 6) & 3;\n if (versionBits === 1 || layerBits !== 1 || bitrateIndex === 0 || bitrateIndex === 15 || sampleRateIndex === 3)\n {\n return null;\n }\n\n const version = versionBits === 3 ? \"mpeg1\" : versionBits === 2 ? \"mpeg2\" : \"mpeg2.5\";\n const bitrateTable = version === \"mpeg1\"\n ? [ 0, 32, 40, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256, 320 ]\n : [ 0, 8, 16, 24, 32, 40, 48, 56, 64, 80, 96, 112, 128, 144, 160 ];\n const sampleRateTable = version === \"mpeg1\"\n ? [ 44100, 48000, 32000 ]\n : version === \"mpeg2\" ? [ 22050, 24000, 16000 ] : [ 11025, 12000, 8000 ];\n const bitrateKbps = bitrateTable[bitrateIndex];\n const sampleRate = sampleRateTable[sampleRateIndex];\n const samplesPerFrame = version === \"mpeg1\" ? 1152 : 576;\n const frameLength = Math.floor((version === \"mpeg1\" ? 144000 : 72000) * bitrateKbps / sampleRate) + padding;\n if (offset + frameLength > bytes.byteLength) return null;\n\n return {\n offset,\n version,\n layer: \"layer3\",\n bitrateKbps,\n sampleRate,\n channels: channelMode === 3 ? 1 : 2,\n samplesPerFrame,\n frameLength\n };\n}\n\n\n\n"],"names":["OUTPUT_AUDIO","OUTPUT_PCM","OUTPUT_RAW","OUTPUT_JSON","DEFAULT_VALUES","Object","freeze","emit","inputType","source","DEBUG_OUTPUTS","wav","mp3","normalizeValues","base","options","readerName","values","normalizeInputType","normalizeEmit","String","replace","toLowerCase","undefined","includes","TypeError","JSON","stringify","inspectWithValues","input","expectedType","bytes","asUint8Array","metadata","inspectBytes","sourceFormat","payloadType","mediaTypes","byteLength","probeSupportWithValues","mimeType","getAudioMimeType","variants","kind","codec","audioFormat","supported","reason","format","confidence","preferredOutput","find","variant","warnings","errors","error","message","readWithValues","Error","code","toJsonValue","value","Uint8Array","Array","isArray","map","output","key","entry","entries","isWAV","inspectWAV","isMP3","inspectMP3","readFourCc","offset","info","sampleRate","channels","bitsPerSample","dataBytes","id","size","readU32LE","dataOffset","formatTag","readU16LE","frame","readMp3FrameHeader","findMp3FrameOffset","id3","readId3Header","hasId3","id3Version","version","id3Revision","revision","id3Flags","flags","id3Size","firstFrameOffset","layer","bitrateKbps","samplesPerFrame","frameLength","frameCount","durationSeconds","declaredFrameCount","declaredByteCount","vbrHeader","encoderDelay","encoderPadding","vbr","readVbrHeader","byteCount","next","trimmedSamples","Math","max","sideInfoLength","xingOffset","readU32BE","gapless","readLameGapless","vbriOffset","searchStart","end","min","header","versionBits","layerBits","bitrateIndex","sampleRateIndex","padding","channelMode","bitrateTable","sampleRateTable","floor"],"mappings":";;AACO,MAAMA,YAAY,GAAG;AACrB,MAAMC,UAAU,GAAG;AACnB,MAAMC,UAAU,GAAG;AACnB,MAAMC,WAAW,GAAG;MAEdC,cAAc,GAAGC,MAAM,CAACC,MAAM,CAAC;AACxCC,EAAAA,IAAI,EAAEL,UAAU;AAChBM,EAAAA,SAAS,EAAE,EAAE;AACbC,EAAAA,MAAM,EAAE;AACZ,CAAC;AAED,MAAMC,aAAa,GAAGL,MAAM,CAACC,MAAM,CAAC;AAChCK,EAAAA,GAAG,EAAE,SAAS;AACdC,EAAAA,GAAG,EAAE;AACT,CAAC,CAAC;;AAEF;AACA;AACA;AACA;AACO,SAASC,eAAeA,CAACC,IAAI,GAAGV,cAAc,EAAEW,OAAO,GAAG,EAAE,EAAEC,UAAU,GAAG,gBAAgB,EAClG;AACI,EAAA,MAAMC,MAAM,GAAG;AAAE,IAAA,GAAGb,cAAc;AAAE,IAAA,IAAIU,IAAI,IAAI,EAAE,CAAC;IAAE,IAAIC,OAAO,IAAI,EAAE;GAAG;EACzEE,MAAM,CAACT,SAAS,GAAGU,kBAAkB,CAACD,MAAM,CAACT,SAAS,CAAC;AACvDS,EAAAA,MAAM,CAACV,IAAI,GAAGY,aAAa,CAACF,MAAM,CAACV,IAAI,EAAEU,MAAM,CAACT,SAAS,EAAEQ,UAAU,CAAC;AACtE,EAAA,OAAOC,MAAM;AACjB;;AAEA;AACO,SAASC,kBAAkBA,CAACV,SAAS,EAC5C;AACI,EAAA,OAAOA,SAAS,GAAGY,MAAM,CAACZ,SAAS,CAAC,CAACa,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAACC,WAAW,EAAE,GAAG,EAAE;AAC/E;;AAEA;AACO,SAASH,aAAaA,CAACZ,IAAI,EAAEC,SAAS,EAAEQ,UAAU,EACzD;EACI,IAAIT,IAAI,KAAKgB,SAAS,IAAIhB,IAAI,KAAK,IAAI,EAAE,OAAOL,UAAU;AAC1D,EAAA,IAAIK,IAAI,KAAKJ,WAAW,IAAIK,SAAS,EAAE,OAAOE,aAAa,CAACF,SAAS,CAAC,IAAIL,WAAW;AACrF,EAAA,IAAI,CAAEH,YAAY,EAAEC,UAAU,EAAEC,UAAU,EAAEC,WAAW,CAAE,CAACqB,QAAQ,CAACjB,IAAI,CAAC,EAAE,OAAOA,IAAI;AACrF,EAAA,IAAIF,MAAM,CAACY,MAAM,CAACP,aAAa,CAAC,CAACc,QAAQ,CAACjB,IAAI,CAAC,EAAE,OAAOA,IAAI;AAC5D,EAAA,MAAM,IAAIkB,SAAS,CAAC,CAAA,EAAGT,UAAU,CAAA,qBAAA,EAAwBU,IAAI,CAACC,SAAS,CAACpB,IAAI,CAAC,EAAE,CAAC;AACpF;;AAEA;AACA;AACO,SAASqB,iBAAiBA,CAACC,KAAK,EAAEZ,MAAM,GAAGb,cAAc,EAAE0B,YAAY,GAAG,EAAE,EACnF;AACI,EAAA,MAAMC,KAAK,GAAGC,YAAY,CAACH,KAAK,EAAE,aAAa,CAAC;AAChD,EAAA,MAAMI,QAAQ,GAAGC,YAAY,CAACH,KAAK,CAAC;EACpC,IAAID,YAAY,IAAIG,QAAQ,CAACE,YAAY,IAAIF,QAAQ,CAACE,YAAY,KAAKL,YAAY,EACnF;IACI,MAAM,IAAIL,SAAS,CAAC,CAAA,yBAAA,EAA4BK,YAAY,SAASG,QAAQ,CAACE,YAAY,CAAA,CAAE,CAAC;AACjG,EAAA;EACA,OAAO;AACHC,IAAAA,WAAW,EAAE,OAAO;IACpBC,UAAU,EAAE,CAAE,OAAO,CAAE;IACvBC,UAAU,EAAEP,KAAK,CAACO,UAAU;IAC5BH,YAAY,EAAEL,YAAY,IAAIb,MAAM,CAACT,SAAS,IAAIyB,QAAQ,CAACE,YAAY;IACvE,GAAGF;GACN;AACL;;AAEA;AACA;AACA;AACA;AACO,SAASM,sBAAsBA,CAACV,KAAK,EAAEZ,MAAM,GAAGb,cAAc,EAAE0B,YAAY,GAAG,EAAE,EACxF;EACI,IACA;IACI,MAAMG,QAAQ,GAAGL,iBAAiB,CAACC,KAAK,EAAEZ,MAAM,EAAEa,YAAY,CAAC;AAC/D,IAAA,MAAMU,QAAQ,GAAGC,gBAAgB,CAACR,QAAQ,CAAC;IAC3C,MAAMS,QAAQ,GAAG,CACb;AACIC,MAAAA,IAAI,EAAE,KAAK;AACXP,MAAAA,WAAW,EAAE,KAAK;AAClBQ,MAAAA,KAAK,EAAEX,QAAQ,CAACY,WAAW,IAAIZ,QAAQ,CAACE,YAAY;MACpDK,QAAQ;AACRM,MAAAA,SAAS,EAAE;AACf,KAAC,EACD;AAAEH,MAAAA,IAAI,EAAE,KAAK;AAAEP,MAAAA,WAAW,EAAE,KAAK;AAAEQ,MAAAA,KAAK,EAAE,KAAK;AAAEE,MAAAA,SAAS,EAAE,KAAK;AAAEC,MAAAA,MAAM,EAAE;AAAgD,KAAC,CAC/H;IACD,OAAO;MACHC,MAAM,EAAEf,QAAQ,CAACE,YAAY;AAC7B1B,MAAAA,MAAM,EAAEQ,MAAM,CAACR,MAAM,IAAI,QAAQ;AACjCqC,MAAAA,SAAS,EAAEb,QAAQ,CAACE,YAAY,GAAG,SAAS,GAAG,MAAM;AACrDc,MAAAA,UAAU,EAAEhB,QAAQ,CAACE,YAAY,GAAG,CAAC,GAAG,CAAC;AACzCe,MAAAA,eAAe,EAAER,QAAQ,CAACS,IAAI,CAAEC,OAAO,IAAKA,OAAO,CAACN,SAAS,CAAC,EAAEH,IAAI,IAAI,EAAE;AAC1EI,MAAAA,MAAM,EAAEd,QAAQ,CAACE,YAAY,GAAG,8BAA8B,GAAG,4BAA4B;MAC7FF,QAAQ;MACRS,QAAQ;AACRW,MAAAA,QAAQ,EAAE,EAAE;AACZC,MAAAA,MAAM,EAAE;KACX;EACL,CAAC,CACD,OAAOC,KAAK,EACZ;IACI,OAAO;AACHP,MAAAA,MAAM,EAAElB,YAAY,IAAIb,MAAM,CAACT,SAAS,IAAI,EAAE;AAC9CC,MAAAA,MAAM,EAAEQ,MAAM,CAACR,MAAM,IAAI,QAAQ;AACjCqC,MAAAA,SAAS,EAAE,MAAM;AACjBG,MAAAA,UAAU,EAAE,CAAC;AACbC,MAAAA,eAAe,EAAE,EAAE;MACnBH,MAAM,EAAEQ,KAAK,CAACC,OAAO;AACrBvB,MAAAA,QAAQ,EAAE,IAAI;AACdS,MAAAA,QAAQ,EAAE,EAAE;AACZW,MAAAA,QAAQ,EAAE,EAAE;AACZC,MAAAA,MAAM,EAAE,CAAEC,KAAK,CAACC,OAAO;KAC1B;AACL,EAAA;AACJ;;AAEA;AACO,SAASC,cAAcA,CAAC5B,KAAK,EAAEZ,MAAM,GAAGb,cAAc,EAAE0B,YAAY,GAAG,EAAE,EAChF;AACI,EAAA,MAAMC,KAAK,GAAGC,YAAY,CAACH,KAAK,EAAE,aAAa,CAAC;EAChD,MAAMI,QAAQ,GAAGL,iBAAiB,CAACG,KAAK,EAAEd,MAAM,EAAEa,YAAY,CAAC;AAC/D,EAAA,IAAIb,MAAM,CAACV,IAAI,KAAKL,UAAU,EAC9B;IACI,OAAO;AACHkC,MAAAA,WAAW,EAAE,KAAK;MAClBD,YAAY,EAAEF,QAAQ,CAACE,YAAY;AACnCK,MAAAA,QAAQ,EAAEC,gBAAgB,CAACR,QAAQ,CAAC;MACpCA,QAAQ;AACRF,MAAAA;KACH;AACL,EAAA;AACA,EAAA,IAAId,MAAM,CAACV,IAAI,KAAKJ,WAAW,IAAIc,MAAM,CAACV,IAAI,KAAKG,aAAa,CAACuB,QAAQ,CAACE,YAAY,CAAC,EAAE,OAAOF,QAAQ;AAExG,EAAA,MAAMsB,KAAK,GAAG,IAAIG,KAAK,CAAC,CAAA,EAAGzB,QAAQ,CAACE,YAAY,CAAA,QAAA,EAAWlB,MAAM,CAACV,IAAI,0BAA0B,CAAC;EACjGgD,KAAK,CAACI,IAAI,GAAG,mCAAmC;AAChDJ,EAAAA,KAAK,CAACpB,YAAY,GAAGF,QAAQ,CAACE,YAAY;AAC1CoB,EAAAA,KAAK,CAAChD,IAAI,GAAGU,MAAM,CAACV,IAAI;AACxB,EAAA,MAAMgD,KAAK;AACf;AAEA,SAASd,gBAAgBA,CAACR,QAAQ,EAClC;AACI,EAAA,IAAIA,QAAQ,CAACE,YAAY,KAAK,KAAK,EAAE,OAAO,WAAW;AACvD,EAAA,OAAO,YAAY;AACvB;;AAEA;AACO,SAASyB,WAAWA,CAACC,KAAK,EACjC;AACI,EAAA,IAAIA,KAAK,YAAYC,UAAU,EAAE,OAAO;IAAExB,UAAU,EAAEuB,KAAK,CAACvB;GAAY;AACxE,EAAA,IAAIyB,KAAK,CAACC,OAAO,CAACH,KAAK,CAAC,EAAE,OAAOA,KAAK,CAACI,GAAG,CAACL,WAAW,CAAC;AACvD,EAAA,IAAIC,KAAK,IAAI,OAAOA,KAAK,KAAK,QAAQ,EACtC;IACI,MAAMK,MAAM,GAAG,EAAE;IACjB,KAAK,MAAM,CAAEC,GAAG,EAAEC,KAAK,CAAE,IAAI/D,MAAM,CAACgE,OAAO,CAACR,KAAK,CAAC,EAAEK,MAAM,CAACC,GAAG,CAAC,GAAGP,WAAW,CAACQ,KAAK,CAAC;AACpF,IAAA,OAAOF,MAAM;AACjB,EAAA;AACA,EAAA,OAAOL,KAAK;AAChB;;AAEA;AACA;AACA;AACA;AACO,SAAS3B,YAAYA,CAACH,KAAK,EAClC;EACI,IAAIuC,KAAK,CAACvC,KAAK,CAAC,EAAE,OAAOwC,UAAU,CAACxC,KAAK,CAAC;EAC1C,IAAIyC,KAAK,CAACzC,KAAK,CAAC,EAAE,OAAO0C,UAAU,CAAC1C,KAAK,CAAC;EAC1C,OAAO;AAAEI,IAAAA,YAAY,EAAE,EAAE;AAAEU,IAAAA,WAAW,EAAE;GAAI;AAChD;;AAEA;AACA;AACA;AACA;AACO,SAASyB,KAAKA,CAACvC,KAAK,EAC3B;EACI,OAAOA,KAAK,CAACO,UAAU,IAAI,EAAE,IAAIoC,UAAU,CAAC3C,KAAK,EAAE,CAAC,CAAC,KAAK,MAAM,IAAI2C,UAAU,CAAC3C,KAAK,EAAE,CAAC,CAAC,KAAK,MAAM;AACvG;;AAEA;AACA;AACA;AACA;AACO,SAASyC,KAAKA,CAACzC,KAAK,EAC3B;AACI,EAAA,OAAOA,KAAK,CAACO,UAAU,IAAI,CAAC,KACvBoC,UAAU,CAAC3C,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,KAAK,IAAKA,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,CAACA,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,MAAM,IAAK,CAAC;AAChG;AAEA,SAASwC,UAAUA,CAACxC,KAAK,EACzB;EACI,IAAI4C,MAAM,GAAG,EAAE;AACf,EAAA,MAAMC,IAAI,GAAG;AAAEzC,IAAAA,YAAY,EAAE,KAAK;AAAEU,IAAAA,WAAW,EAAE,KAAK;AAAEgC,IAAAA,UAAU,EAAE,CAAC;AAAEC,IAAAA,QAAQ,EAAE,CAAC;AAAEC,IAAAA,aAAa,EAAE,CAAC;AAAEC,IAAAA,SAAS,EAAE;GAAG;AACpH,EAAA,OAAOL,MAAM,GAAG,CAAC,IAAI5C,KAAK,CAACO,UAAU,EACrC;AACI,IAAA,MAAM2C,EAAE,GAAGP,UAAU,CAAC3C,KAAK,EAAE4C,MAAM,CAAC;MAAEO,IAAI,GAAGC,SAAS,CAACpD,KAAK,EAAE4C,MAAM,GAAG,CAAC,CAAC;MAAES,UAAU,GAAGT,MAAM,GAAG,CAAC;IAClG,IAAIM,EAAE,KAAK,MAAM,IAAIG,UAAU,GAAG,EAAE,IAAIrD,KAAK,CAACO,UAAU,EACxD;MACIsC,IAAI,CAACS,SAAS,GAAGC,SAAS,CAACvD,KAAK,EAAEqD,UAAU,CAAC;MAC7CR,IAAI,CAACE,QAAQ,GAAGQ,SAAS,CAACvD,KAAK,EAAEqD,UAAU,GAAG,CAAC,CAAC;MAChDR,IAAI,CAACC,UAAU,GAAGM,SAAS,CAACpD,KAAK,EAAEqD,UAAU,GAAG,CAAC,CAAC;MAClDR,IAAI,CAACG,aAAa,GAAGO,SAAS,CAACvD,KAAK,EAAEqD,UAAU,GAAG,EAAE,CAAC;AAC1D,IAAA;IACA,IAAIH,EAAE,KAAK,MAAM,EAAEL,IAAI,CAACI,SAAS,GAAGE,IAAI;IACxCP,MAAM,GAAGS,UAAU,GAAGF,IAAI,IAAIA,IAAI,GAAG,CAAC,CAAC;AAC3C,EAAA;AACA,EAAA,OAAON,IAAI;AACf;AAEA,SAASH,UAAUA,CAAC1C,KAAK,EACzB;EACI,MAAMwD,KAAK,GAAGC,kBAAkB,CAACzD,KAAK,EAAE0D,kBAAkB,CAAC1D,KAAK,CAAC,CAAC;AAClE,EAAA,MAAM2D,GAAG,GAAGC,aAAa,CAAC5D,KAAK,CAAC;AAChC,EAAA,MAAM6C,IAAI,GAAG;AACTzC,IAAAA,YAAY,EAAE,KAAK;AACnBU,IAAAA,WAAW,EAAE,KAAK;IAClB+C,MAAM,EAAE,CAAC,CAACF,GAAG;AACbG,IAAAA,UAAU,EAAEH,GAAG,EAAEI,OAAO,IAAI,CAAC;AAC7BC,IAAAA,WAAW,EAAEL,GAAG,EAAEM,QAAQ,IAAI,CAAC;AAC/BC,IAAAA,QAAQ,EAAEP,GAAG,EAAEQ,KAAK,IAAI,CAAC;AACzBC,IAAAA,OAAO,EAAET,GAAG,EAAER,IAAI,IAAI,CAAC;AACvBkB,IAAAA,gBAAgB,EAAEb,KAAK,EAAEZ,MAAM,IAAI,CAAC;AACpCmB,IAAAA,OAAO,EAAEP,KAAK,EAAEO,OAAO,IAAI,EAAE;AAC7BO,IAAAA,KAAK,EAAEd,KAAK,EAAEc,KAAK,IAAI,EAAE;AACzBC,IAAAA,WAAW,EAAEf,KAAK,EAAEe,WAAW,IAAI,CAAC;AACpCzB,IAAAA,UAAU,EAAEU,KAAK,EAAEV,UAAU,IAAI,CAAC;AAClCC,IAAAA,QAAQ,EAAES,KAAK,EAAET,QAAQ,IAAI,CAAC;AAC9ByB,IAAAA,eAAe,EAAEhB,KAAK,EAAEgB,eAAe,IAAI,CAAC;AAC5CC,IAAAA,WAAW,EAAEjB,KAAK,EAAEiB,WAAW,IAAI,CAAC;AACpCC,IAAAA,UAAU,EAAE,CAAC;AACbC,IAAAA,eAAe,EAAE,CAAC;AAClBC,IAAAA,kBAAkB,EAAE,CAAC;AACrBC,IAAAA,iBAAiB,EAAE,CAAC;AACpBC,IAAAA,SAAS,EAAE,EAAE;AACbC,IAAAA,YAAY,EAAE,CAAC;AACfC,IAAAA,cAAc,EAAE;GACnB;AAED,EAAA,IAAIxB,KAAK,EACT;AACI,IAAA,MAAMyB,GAAG,GAAGC,aAAa,CAAClF,KAAK,EAAEwD,KAAK,CAAC;AACvC,IAAA,IAAIyB,GAAG,EACP;AACIpC,MAAAA,IAAI,CAAC+B,kBAAkB,GAAGK,GAAG,CAACP,UAAU;AACxC7B,MAAAA,IAAI,CAACgC,iBAAiB,GAAGI,GAAG,CAACE,SAAS;AACtCtC,MAAAA,IAAI,CAACiC,SAAS,GAAGG,GAAG,CAACrE,IAAI;AACzBiC,MAAAA,IAAI,CAACkC,YAAY,GAAGE,GAAG,CAACF,YAAY;AACpClC,MAAAA,IAAI,CAACmC,cAAc,GAAGC,GAAG,CAACD,cAAc;AAC5C,IAAA;AACA,IAAA,IAAIpC,MAAM,GAAGY,KAAK,CAACZ,MAAM;AACzB,IAAA,OAAOA,MAAM,GAAG,CAAC,IAAI5C,KAAK,CAACO,UAAU,IAAIsC,IAAI,CAAC6B,UAAU,GAAG,OAAO,EAClE;AACI,MAAA,MAAMU,IAAI,GAAG3B,kBAAkB,CAACzD,KAAK,EAAE4C,MAAM,CAAC;MAC9C,IAAI,CAACwC,IAAI,IAAIA,IAAI,CAACX,WAAW,IAAI,CAAC,EAAE;MACpC5B,IAAI,CAAC6B,UAAU,EAAE;MACjB9B,MAAM,IAAIwC,IAAI,CAACX,WAAW;AAC9B,IAAA;IACA,MAAMC,UAAU,GAAG7B,IAAI,CAAC+B,kBAAkB,IAAI/B,IAAI,CAAC6B,UAAU;IAC7D,MAAMW,cAAc,GAAGC,IAAI,CAACC,GAAG,CAAC,CAAC,EAAEb,UAAU,GAAG7B,IAAI,CAAC2B,eAAe,GAAG3B,IAAI,CAACkC,YAAY,GAAGlC,IAAI,CAACmC,cAAc,CAAC;AAC/GnC,IAAAA,IAAI,CAAC8B,eAAe,GAAG9B,IAAI,CAACC,UAAU,GAAGuC,cAAc,GAAGxC,IAAI,CAACC,UAAU,GAAG,CAAC;AACjF,EAAA;AAEA,EAAA,OAAOD,IAAI;AACf;AAEA,SAASe,aAAaA,CAAC5D,KAAK,EAC5B;AACI,EAAA,IAAIA,KAAK,CAACO,UAAU,GAAG,EAAE,IAAIoC,UAAU,CAAC3C,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,KAAK,EAAE,OAAO,IAAI;EAC3E,OAAO;AACH+D,IAAAA,OAAO,EAAE/D,KAAK,CAAC,CAAC,CAAC;AACjBiE,IAAAA,QAAQ,EAAEjE,KAAK,CAAC,CAAC,CAAC;AAClBmE,IAAAA,KAAK,EAAEnE,KAAK,CAAC,CAAC,CAAC;IACfmD,IAAI,EAAGnD,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,GAAKA,KAAK,CAAC,CAAC,CAAC,IAAI,EAAG,GAAIA,KAAK,CAAC,CAAC,CAAC,IAAI,CAAE,GAAGA,KAAK,CAAC,CAAC;GACxE;AACL;AAEA,SAASkF,aAAaA,CAAClF,KAAK,EAAEwD,KAAK,EACnC;EACI,MAAMgC,cAAc,GAAGhC,KAAK,CAACO,OAAO,KAAK,OAAO,GAC1CP,KAAK,CAACT,QAAQ,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,GAC9BS,KAAK,CAACT,QAAQ,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE;EACnC,MAAM0C,UAAU,GAAGjC,KAAK,CAACZ,MAAM,GAAG,CAAC,GAAG4C,cAAc;EACpD,KAAK,MAAM5E,IAAI,IAAI,CAAE,MAAM,EAAE,MAAM,CAAE,EACrC;IACI,IAAI+B,UAAU,CAAC3C,KAAK,EAAEyF,UAAU,EAAE,CAAC,CAAC,KAAK7E,IAAI,EAAE;IAC/C,MAAMuD,KAAK,GAAGuB,SAAS,CAAC1F,KAAK,EAAEyF,UAAU,GAAG,CAAC,CAAC;AAC9C,IAAA,MAAMf,UAAU,GAAG,CAACP,KAAK,GAAG,CAAC,MAAM,CAAC,GAAGuB,SAAS,CAAC1F,KAAK,EAAEyF,UAAU,GAAG,CAAC,CAAC,GAAG,CAAC;AAC3E,IAAA,MAAMN,SAAS,GAAG,CAAChB,KAAK,GAAG,CAAC,MAAM,CAAC,GAAGuB,SAAS,CAAC1F,KAAK,EAAEyF,UAAU,GAAG,EAAE,CAAC,GAAG,CAAC;IAC3E,MAAME,OAAO,GAAGC,eAAe,CAAC5F,KAAK,EAAEyF,UAAU,GAAG,CAAC,IAAI,CAACtB,KAAK,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAACA,KAAK,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAACA,KAAK,GAAG,CAAC,MAAM,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC;IAClJ,OAAO;MAAEvD,IAAI;MAAE8D,UAAU;MAAES,SAAS;MAAE,GAAGQ;KAAS;AACtD,EAAA;AAEA,EAAA,MAAME,UAAU,GAAGrC,KAAK,CAACZ,MAAM,GAAG,EAAE;EACpC,IAAID,UAAU,CAAC3C,KAAK,EAAE6F,UAAU,EAAE,CAAC,CAAC,KAAK,MAAM,EAC/C;IACI,OAAO;AACHjF,MAAAA,IAAI,EAAE,MAAM;MACZ8D,UAAU,EAAEgB,SAAS,CAAC1F,KAAK,EAAE6F,UAAU,GAAG,EAAE,CAAC;MAC7CV,SAAS,EAAEO,SAAS,CAAC1F,KAAK,EAAE6F,UAAU,GAAG,EAAE,CAAC;AAC5Cd,MAAAA,YAAY,EAAE,CAAC;AACfC,MAAAA,cAAc,EAAE;KACnB;AACL,EAAA;AAEA,EAAA,OAAO,IAAI;AACf;AAEA,SAASY,eAAeA,CAAC5F,KAAK,EAAE8F,WAAW,EAC3C;AACI,EAAA,MAAMC,GAAG,GAAGT,IAAI,CAACU,GAAG,CAAChG,KAAK,CAACO,UAAU,GAAG,CAAC,EAAEuF,WAAW,GAAG,GAAG,CAAC;EAC7D,KAAK,IAAIlD,MAAM,GAAGkD,WAAW,EAAElD,MAAM,GAAGmD,GAAG,EAAEnD,MAAM,EAAE,EACrD;IACI,IAAID,UAAU,CAAC3C,KAAK,EAAE4C,MAAM,EAAE,CAAC,CAAC,KAAK,MAAM,EAAE;IAC7C,MAAMd,KAAK,GAAI9B,KAAK,CAAC4C,MAAM,GAAG,IAAI,CAAC,IAAI,EAAE,GAAK5C,KAAK,CAAC4C,MAAM,GAAG,IAAI,CAAC,IAAI,CAAE,GAAG5C,KAAK,CAAC4C,MAAM,GAAG,IAAI,CAAC;IAC/F,OAAO;AACHmC,MAAAA,YAAY,EAAGjD,KAAK,KAAK,EAAE,GAAI,KAAK;MACpCkD,cAAc,EAAElD,KAAK,GAAG;KAC3B;AACL,EAAA;EACA,OAAO;AAAEiD,IAAAA,YAAY,EAAE,CAAC;AAAEC,IAAAA,cAAc,EAAE;GAAG;AACjD;AAEA,SAAStB,kBAAkBA,CAAC1D,KAAK,EACjC;EACI,IAAI4C,MAAM,GAAG,CAAC;AACd,EAAA,IAAID,UAAU,CAAC3C,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,KAAK,IAAIA,KAAK,CAACO,UAAU,IAAI,EAAE,EAC/D;IACI,MAAM4C,IAAI,GAAInD,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,GAAKA,KAAK,CAAC,CAAC,CAAC,IAAI,EAAG,GAAIA,KAAK,CAAC,CAAC,CAAC,IAAI,CAAE,GAAGA,KAAK,CAAC,CAAC,CAAC;AAC7E4C,IAAAA,MAAM,GAAG,EAAE,GAAGO,IAAI,IAAInD,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC;AACnD,EAAA;EACA,OAAO4C,MAAM,GAAG,CAAC,IAAI5C,KAAK,CAACO,UAAU,EAAEqC,MAAM,EAAE,EAC/C;IACI,IAAIa,kBAAkB,CAACzD,KAAK,EAAE4C,MAAM,CAAC,EAAE,OAAOA,MAAM;AACxD,EAAA;AACA,EAAA,OAAO,EAAE;AACb;AAEA,SAASa,kBAAkBA,CAACzD,KAAK,EAAE4C,MAAM,EACzC;AACI,EAAA,IAAIA,MAAM,GAAG,CAAC,IAAIA,MAAM,GAAG,CAAC,GAAG5C,KAAK,CAACO,UAAU,EAAE,OAAO,IAAI;AAC5D,EAAA,MAAM0F,MAAM,GAAG,CAAEjG,KAAK,CAAC4C,MAAM,CAAC,IAAI,EAAE,GAAK5C,KAAK,CAAC4C,MAAM,GAAG,CAAC,CAAC,IAAI,EAAG,GAAI5C,KAAK,CAAC4C,MAAM,GAAG,CAAC,CAAC,IAAI,CAAE,GAAG5C,KAAK,CAAC4C,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;EACvH,IAAK,CAACqD,MAAM,GAAG,UAAU,MAAM,CAAC,KAAM,UAAU,EAAE,OAAO,IAAI;AAE7D,EAAA,MAAMC,WAAW,GAAID,MAAM,KAAK,EAAE,GAAI,CAAC;AACvC,EAAA,MAAME,SAAS,GAAIF,MAAM,KAAK,EAAE,GAAI,CAAC;AACrC,EAAA,MAAMG,YAAY,GAAIH,MAAM,KAAK,EAAE,GAAI,GAAG;AAC1C,EAAA,MAAMI,eAAe,GAAIJ,MAAM,KAAK,EAAE,GAAI,CAAC;AAC3C,EAAA,MAAMK,OAAO,GAAIL,MAAM,KAAK,CAAC,GAAI,CAAC;AAClC,EAAA,MAAMM,WAAW,GAAIN,MAAM,KAAK,CAAC,GAAI,CAAC;AACtC,EAAA,IAAIC,WAAW,KAAK,CAAC,IAAIC,SAAS,KAAK,CAAC,IAAIC,YAAY,KAAK,CAAC,IAAIA,YAAY,KAAK,EAAE,IAAIC,eAAe,KAAK,CAAC,EAC9G;AACI,IAAA,OAAO,IAAI;AACf,EAAA;AAEA,EAAA,MAAMtC,OAAO,GAAGmC,WAAW,KAAK,CAAC,GAAG,OAAO,GAAGA,WAAW,KAAK,CAAC,GAAG,OAAO,GAAG,SAAS;AACrF,EAAA,MAAMM,YAAY,GAAGzC,OAAO,KAAK,OAAO,GAClC,CAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAE,GACpE,CAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAE;AACtE,EAAA,MAAM0C,eAAe,GAAG1C,OAAO,KAAK,OAAO,GACrC,CAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAE,GACvBA,OAAO,KAAK,OAAO,GAAG,CAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAE,GAAG,CAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAE;AAC5E,EAAA,MAAMQ,WAAW,GAAGiC,YAAY,CAACJ,YAAY,CAAC;AAC9C,EAAA,MAAMtD,UAAU,GAAG2D,eAAe,CAACJ,eAAe,CAAC;EACnD,MAAM7B,eAAe,GAAGT,OAAO,KAAK,OAAO,GAAG,IAAI,GAAG,GAAG;EACxD,MAAMU,WAAW,GAAGa,IAAI,CAACoB,KAAK,CAAC,CAAC3C,OAAO,KAAK,OAAO,GAAG,MAAM,GAAG,KAAK,IAAIQ,WAAW,GAAGzB,UAAU,CAAC,GAAGwD,OAAO;EAC3G,IAAI1D,MAAM,GAAG6B,WAAW,GAAGzE,KAAK,CAACO,UAAU,EAAE,OAAO,IAAI;EAExD,OAAO;IACHqC,MAAM;IACNmB,OAAO;AACPO,IAAAA,KAAK,EAAE,QAAQ;IACfC,WAAW;IACXzB,UAAU;AACVC,IAAAA,QAAQ,EAAEwD,WAAW,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC;IACnC/B,eAAe;AACfC,IAAAA;GACH;AACL;;;;"}
|
|
1
|
+
{"version":3,"file":"helpers.js","sources":["../../../../../../src/resource/formats/mp3/core/helpers.js"],"sourcesContent":["import { toJsonWithByteSummary as toJsonValue } from \"../../../format/jsonPolicies.js\";\nimport { asUint8Array, readFourCc, readU16LE, readU32BE, readU32LE } from \"#utils/bytes\";\nexport const OUTPUT_AUDIO = \"audio\";\nexport const OUTPUT_PCM = \"pcm\";\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 wav: \"wavJson\",\n mp3: \"mp3Json\"\n});\n\n/**\n * Normalizes reader options against their supported defaults for the MP3 format\n * reader.\n */\nexport function normalizeValues(base = DEFAULT_VALUES, options = {}, readerName = \"CjsAudioFormat\")\n{\n const values = { ...DEFAULT_VALUES, ...(base || {}), ...(options || {}) };\n values.inputType = normalizeInputType(values.inputType);\n values.emit = normalizeEmit(values.emit, values.inputType, readerName);\n return values;\n}\n\n/** Normalizes the requested input representation for the MP3 format reader. */\nexport function normalizeInputType(inputType)\n{\n return inputType ? String(inputType).replace(/^\\./u, \"\").toLowerCase() : \"\";\n}\n\n/** Normalizes the requested output representation for the MP3 format reader. */\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_AUDIO, OUTPUT_PCM, 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\n/** Returns a byte view over the supplied binary input for the MP3 format reader. */\n/** Inspects input using normalized format options for the MP3 format reader. */\nexport function inspectWithValues(input, values = DEFAULT_VALUES, expectedType = \"\")\n{\n const bytes = asUint8Array(input, \"Audio input\");\n const metadata = inspectBytes(bytes);\n if (expectedType && metadata.sourceFormat && metadata.sourceFormat !== expectedType)\n {\n throw new TypeError(`CjsAudioFormat: expected ${expectedType}, got ${metadata.sourceFormat}`);\n }\n return {\n payloadType: \"audio\",\n mediaTypes: [ \"audio\" ],\n byteLength: bytes.byteLength,\n sourceFormat: expectedType || values.inputType || metadata.sourceFormat,\n ...metadata\n };\n}\n\n/**\n * Reports whether input is supported under normalized format options for the MP3\n * format reader.\n */\nexport function probeSupportWithValues(input, values = DEFAULT_VALUES, expectedType = \"\")\n{\n try\n {\n const metadata = inspectWithValues(input, values, expectedType);\n const mimeType = getAudioMimeType(metadata);\n const variants = [\n {\n kind: \"raw\",\n payloadType: \"raw\",\n codec: metadata.audioFormat || metadata.sourceFormat,\n mimeType,\n supported: true,\n },\n { kind: \"pcm\", payloadType: \"pcm\", codec: \"pcm\", supported: false, reason: \"MP3 PCM decode/output is not implemented yet.\" }\n ];\n return {\n format: metadata.sourceFormat,\n source: values.source || \"buffer\",\n supported: metadata.sourceFormat ? \"partial\" : \"none\",\n confidence: metadata.sourceFormat ? 1 : 0,\n preferredOutput: variants.find((variant) => variant.supported)?.kind || \"\",\n reason: metadata.sourceFormat ? \"Container/header recognized.\" : \"Unrecognized audio format.\",\n metadata,\n variants,\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 preferredOutput: \"\",\n reason: error.message,\n metadata: null,\n variants: [],\n warnings: [],\n errors: [ error.message ]\n };\n }\n}\n\n/** Reads input using normalized format options for the MP3 format reader. */\nexport function readWithValues(input, values = DEFAULT_VALUES, expectedType = \"\")\n{\n const bytes = asUint8Array(input, \"Audio 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 mimeType: getAudioMimeType(metadata),\n metadata,\n bytes\n };\n }\n if (values.emit === OUTPUT_JSON || values.emit === DEBUG_OUTPUTS[metadata.sourceFormat]) return metadata;\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 getAudioMimeType(metadata)\n{\n if (metadata.sourceFormat === \"wav\") return \"audio/wav\";\n return \"audio/mpeg\";\n}\n\n/** Converts a parsed payload into a JSON-safe value for the MP3 format reader. */\n/** The shared JSON policy for this reader, under the name its callers use. */\nexport { toJsonValue };\n\n/**\n * Inspects the supplied bytes without decoding their payload for the MP3 format\n * reader.\n */\nexport function inspectBytes(bytes)\n{\n if (isWAV(bytes)) return inspectWAV(bytes);\n if (isMP3(bytes)) return inspectMP3(bytes);\n return { sourceFormat: \"\", audioFormat: \"\" };\n}\n\n/**\n * Reports whether the supplied bytes have a RIFF/WAVE header for the MP3 format\n * reader.\n */\nexport function isWAV(bytes)\n{\n return bytes.byteLength >= 12 && readFourCc(bytes, 0) === \"RIFF\" && readFourCc(bytes, 8) === \"WAVE\";\n}\n\n/**\n * Reports whether the supplied bytes have a supported MP3 header for the MP3\n * format reader.\n */\nexport function isMP3(bytes)\n{\n return bytes.byteLength >= 3 &&\n (readFourCc(bytes, 0, 3) === \"ID3\" || (bytes[0] === 0xff && (bytes[1] & 0xe0) === 0xe0));\n}\n\nfunction inspectWAV(bytes)\n{\n let offset = 12;\n const info = { sourceFormat: \"wav\", audioFormat: \"wav\", sampleRate: 0, channels: 0, bitsPerSample: 0, dataBytes: 0 };\n while (offset + 8 <= bytes.byteLength)\n {\n const id = readFourCc(bytes, offset), size = readU32LE(bytes, offset + 4), dataOffset = offset + 8;\n if (id === \"fmt \" && dataOffset + 16 <= bytes.byteLength)\n {\n info.formatTag = readU16LE(bytes, dataOffset);\n info.channels = readU16LE(bytes, dataOffset + 2);\n info.sampleRate = readU32LE(bytes, dataOffset + 4);\n info.bitsPerSample = readU16LE(bytes, dataOffset + 14);\n }\n if (id === \"data\") info.dataBytes = size;\n offset = dataOffset + size + (size & 1);\n }\n return info;\n}\n\nfunction inspectMP3(bytes)\n{\n const frame = readMp3FrameHeader(bytes, findMp3FrameOffset(bytes));\n const id3 = readId3Header(bytes);\n const info = {\n sourceFormat: \"mp3\",\n audioFormat: \"mp3\",\n hasId3: !!id3,\n id3Version: id3?.version || 0,\n id3Revision: id3?.revision || 0,\n id3Flags: id3?.flags || 0,\n id3Size: id3?.size || 0,\n firstFrameOffset: frame?.offset || 0,\n version: frame?.version || \"\",\n layer: frame?.layer || \"\",\n bitrateKbps: frame?.bitrateKbps || 0,\n sampleRate: frame?.sampleRate || 0,\n channels: frame?.channels || 0,\n samplesPerFrame: frame?.samplesPerFrame || 0,\n frameLength: frame?.frameLength || 0,\n frameCount: 0,\n durationSeconds: 0,\n declaredFrameCount: 0,\n declaredByteCount: 0,\n vbrHeader: \"\",\n encoderDelay: 0,\n encoderPadding: 0\n };\n\n if (frame)\n {\n const vbr = readVbrHeader(bytes, frame);\n if (vbr)\n {\n info.declaredFrameCount = vbr.frameCount;\n info.declaredByteCount = vbr.byteCount;\n info.vbrHeader = vbr.kind;\n info.encoderDelay = vbr.encoderDelay;\n info.encoderPadding = vbr.encoderPadding;\n }\n let offset = frame.offset;\n while (offset + 4 <= bytes.byteLength && info.frameCount < 1000000)\n {\n const next = readMp3FrameHeader(bytes, offset);\n if (!next || next.frameLength <= 0) break;\n info.frameCount++;\n offset += next.frameLength;\n }\n const frameCount = info.declaredFrameCount || info.frameCount;\n const trimmedSamples = Math.max(0, frameCount * info.samplesPerFrame - info.encoderDelay - info.encoderPadding);\n info.durationSeconds = info.sampleRate ? trimmedSamples / info.sampleRate : 0;\n }\n\n return info;\n}\n\nfunction readId3Header(bytes)\n{\n if (bytes.byteLength < 10 || readFourCc(bytes, 0, 3) !== \"ID3\") return null;\n return {\n version: bytes[3],\n revision: bytes[4],\n flags: bytes[5],\n size: (bytes[6] << 21) | (bytes[7] << 14) | (bytes[8] << 7) | bytes[9]\n };\n}\n\nfunction readVbrHeader(bytes, frame)\n{\n const sideInfoLength = frame.version === \"mpeg1\"\n ? frame.channels === 1 ? 17 : 32\n : frame.channels === 1 ? 9 : 17;\n const xingOffset = frame.offset + 4 + sideInfoLength;\n for (const kind of [ \"Xing\", \"Info\" ])\n {\n if (readFourCc(bytes, xingOffset, 4) !== kind) continue;\n const flags = readU32BE(bytes, xingOffset + 4);\n const frameCount = (flags & 1) !== 0 ? readU32BE(bytes, xingOffset + 8) : 0;\n const byteCount = (flags & 2) !== 0 ? readU32BE(bytes, xingOffset + 12) : 0;\n const gapless = readLameGapless(bytes, xingOffset + 8 + ((flags & 1) !== 0 ? 4 : 0) + ((flags & 2) !== 0 ? 4 : 0) + ((flags & 4) !== 0 ? 100 : 0));\n return { kind, frameCount, byteCount, ...gapless };\n }\n\n const vbriOffset = frame.offset + 36;\n if (readFourCc(bytes, vbriOffset, 4) === \"VBRI\")\n {\n return {\n kind: \"VBRI\",\n frameCount: readU32BE(bytes, vbriOffset + 14),\n byteCount: readU32BE(bytes, vbriOffset + 10),\n encoderDelay: 0,\n encoderPadding: 0\n };\n }\n\n return null;\n}\n\nfunction readLameGapless(bytes, searchStart)\n{\n const end = Math.min(bytes.byteLength - 3, searchStart + 160);\n for (let offset = searchStart; offset < end; offset++)\n {\n if (readFourCc(bytes, offset, 4) !== \"LAME\") continue;\n const value = (bytes[offset + 0x15] << 16) | (bytes[offset + 0x16] << 8) | bytes[offset + 0x17];\n return {\n encoderDelay: (value >>> 12) & 0xfff,\n encoderPadding: value & 0xfff\n };\n }\n return { encoderDelay: 0, encoderPadding: 0 };\n}\n\nfunction findMp3FrameOffset(bytes)\n{\n let offset = 0;\n if (readFourCc(bytes, 0, 3) === \"ID3\" && bytes.byteLength >= 10)\n {\n const size = (bytes[6] << 21) | (bytes[7] << 14) | (bytes[8] << 7) | bytes[9];\n offset = 10 + size + (bytes[5] & 0x10 ? 10 : 0);\n }\n for (; offset + 4 <= bytes.byteLength; offset++)\n {\n if (readMp3FrameHeader(bytes, offset)) return offset;\n }\n return -1;\n}\n\nfunction readMp3FrameHeader(bytes, offset)\n{\n if (offset < 0 || offset + 4 > bytes.byteLength) return null;\n const header = ((bytes[offset] << 24) | (bytes[offset + 1] << 16) | (bytes[offset + 2] << 8) | bytes[offset + 3]) >>> 0;\n if (((header & 0xffe00000) >>> 0) !== 0xffe00000) return null;\n\n const versionBits = (header >>> 19) & 3;\n const layerBits = (header >>> 17) & 3;\n const bitrateIndex = (header >>> 12) & 0xf;\n const sampleRateIndex = (header >>> 10) & 3;\n const padding = (header >>> 9) & 1;\n const channelMode = (header >>> 6) & 3;\n if (versionBits === 1 || layerBits !== 1 || bitrateIndex === 0 || bitrateIndex === 15 || sampleRateIndex === 3)\n {\n return null;\n }\n\n const version = versionBits === 3 ? \"mpeg1\" : versionBits === 2 ? \"mpeg2\" : \"mpeg2.5\";\n const bitrateTable = version === \"mpeg1\"\n ? [ 0, 32, 40, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256, 320 ]\n : [ 0, 8, 16, 24, 32, 40, 48, 56, 64, 80, 96, 112, 128, 144, 160 ];\n const sampleRateTable = version === \"mpeg1\"\n ? [ 44100, 48000, 32000 ]\n : version === \"mpeg2\" ? [ 22050, 24000, 16000 ] : [ 11025, 12000, 8000 ];\n const bitrateKbps = bitrateTable[bitrateIndex];\n const sampleRate = sampleRateTable[sampleRateIndex];\n const samplesPerFrame = version === \"mpeg1\" ? 1152 : 576;\n const frameLength = Math.floor((version === \"mpeg1\" ? 144000 : 72000) * bitrateKbps / sampleRate) + padding;\n if (offset + frameLength > bytes.byteLength) return null;\n\n return {\n offset,\n version,\n layer: \"layer3\",\n bitrateKbps,\n sampleRate,\n channels: channelMode === 3 ? 1 : 2,\n samplesPerFrame,\n frameLength\n };\n}\n\n\n\n"],"names":["OUTPUT_AUDIO","OUTPUT_PCM","OUTPUT_RAW","OUTPUT_JSON","DEFAULT_VALUES","Object","freeze","emit","inputType","source","DEBUG_OUTPUTS","wav","mp3","normalizeValues","base","options","readerName","values","normalizeInputType","normalizeEmit","String","replace","toLowerCase","undefined","includes","TypeError","JSON","stringify","inspectWithValues","input","expectedType","bytes","asUint8Array","metadata","inspectBytes","sourceFormat","payloadType","mediaTypes","byteLength","readWithValues","mimeType","getAudioMimeType","error","Error","code","isWAV","inspectWAV","isMP3","inspectMP3","audioFormat","readFourCc","offset","info","sampleRate","channels","bitsPerSample","dataBytes","id","size","readU32LE","dataOffset","formatTag","readU16LE","frame","readMp3FrameHeader","findMp3FrameOffset","id3","readId3Header","hasId3","id3Version","version","id3Revision","revision","id3Flags","flags","id3Size","firstFrameOffset","layer","bitrateKbps","samplesPerFrame","frameLength","frameCount","durationSeconds","declaredFrameCount","declaredByteCount","vbrHeader","encoderDelay","encoderPadding","vbr","readVbrHeader","byteCount","kind","next","trimmedSamples","Math","max","sideInfoLength","xingOffset","readU32BE","gapless","readLameGapless","vbriOffset","searchStart","end","min","value","header","versionBits","layerBits","bitrateIndex","sampleRateIndex","padding","channelMode","bitrateTable","sampleRateTable","floor"],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { asUint8Array } from '#utils/bytes';
|
|
2
2
|
import { CjsFormat } from '../../format/CjsFormat.js';
|
|
3
|
-
import { DEFAULT_VALUES, normalizeValues, readWithValues, inspectWithValues,
|
|
3
|
+
import { DEFAULT_VALUES, normalizeValues, readWithValues, inspectWithValues, isMP4, OUTPUT_JSON, OUTPUT_RAW, OUTPUT_VIDEO } from './core/helpers.js';
|
|
4
|
+
import { toJsonWithByteSummary } from '../../format/jsonPolicies.js';
|
|
4
5
|
|
|
5
6
|
const FORMAT_NAME = "CjsMp4Format";
|
|
6
7
|
|
|
@@ -89,7 +90,7 @@ class CjsMp4Format extends CjsFormat {
|
|
|
89
90
|
* @returns {any} JSON-compatible value.
|
|
90
91
|
*/
|
|
91
92
|
ToJSON(value) {
|
|
92
|
-
return
|
|
93
|
+
return toJsonWithByteSummary(value);
|
|
93
94
|
}
|
|
94
95
|
|
|
95
96
|
/**
|
|
@@ -138,12 +139,6 @@ class CjsMp4Format extends CjsFormat {
|
|
|
138
139
|
* @param {object} [options] Probe options.
|
|
139
140
|
* @returns {object} Support/probe report.
|
|
140
141
|
*/
|
|
141
|
-
static probeSupport(input, options = {}) {
|
|
142
|
-
return probeSupportWithValues(input, normalizeValues(DEFAULT_VALUES, {
|
|
143
|
-
inputType: "mp4",
|
|
144
|
-
...options
|
|
145
|
-
}, FORMAT_NAME), "mp4");
|
|
146
|
-
}
|
|
147
142
|
|
|
148
143
|
/**
|
|
149
144
|
* Convert format output into JSON-compatible debug data.
|
|
@@ -152,7 +147,7 @@ class CjsMp4Format extends CjsFormat {
|
|
|
152
147
|
* @returns {any} JSON-compatible value.
|
|
153
148
|
*/
|
|
154
149
|
static toJSON(value) {
|
|
155
|
-
return
|
|
150
|
+
return toJsonWithByteSummary(value);
|
|
156
151
|
}
|
|
157
152
|
|
|
158
153
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CjsMp4Format.js","sources":["../../../../../src/resource/formats/mp4/CjsMp4Format.js"],"sourcesContent":["import { asUint8Array } from \"#utils/bytes\";\nimport { CjsFormat } from \"../../format/CjsFormat.js\";\nimport {\n DEFAULT_VALUES,\n OUTPUT_JSON,\n OUTPUT_RAW,\n OUTPUT_VIDEO,\n inspectWithValues,\n isMP4,\n probeSupportWithValues,\n normalizeValues,\n readWithValues,\n toJsonValue\n} from \"./core/helpers.js\";\n\nconst FORMAT_NAME = \"CjsMp4Format\";\n\n/**\n * MP4 container format profile that inspects box and track structure and\n * emits raw bytes, debug JSON, or a container-only video payload with codec\n * and duration summaries but no frame decoding.\n */\nexport class CjsMp4Format extends CjsFormat\n{\n #values = DEFAULT_VALUES;\n\n /**\n * Create a reusable MP4 format profile.\n *\n * @param {object} [options] Default read/inspect options.\n */\n constructor(options = {})\n {\n super();\n this.SetValues(options);\n }\n\n /**\n * Merge options into this profile.\n *\n * @param {object} [options] Values to merge.\n * @returns {CjsMp4Format} This format profile.\n */\n SetValues(options = {})\n {\n this.#values = normalizeValues(this.#values, { inputType: \"mp4\", ...options }, FORMAT_NAME);\n return this;\n }\n\n /**\n * Get normalized profile values with optional per-call overrides.\n *\n * @param {object} [options] Per-call values.\n * @returns {object} Normalized read values.\n */\n GetValues(options = {})\n {\n return normalizeValues(this.#values, { inputType: \"mp4\", ...options }, FORMAT_NAME);\n }\n\n /**\n * Read MP4 bytes with this profile.\n *\n * @param {Uint8Array|ArrayBuffer|DataView} input MP4 bytes.\n * @param {object} [options] Per-call values.\n * @returns {object} GPU-free raw/debug payload for the selected emit target.\n */\n Read(input, options = {})\n {\n return readWithValues(input, this.GetValues(options), \"mp4\");\n }\n\n /**\n * Read MP4 bytes asynchronously with this profile.\n *\n * @param {Uint8Array|ArrayBuffer|DataView} input MP4 bytes.\n * @param {object} [options] Per-call values.\n * @returns {Promise<object>} GPU-free raw/debug payload for the selected emit target.\n */\n async ReadAsync(input, options = {})\n {\n return this.Read(input, options);\n }\n\n /**\n * Inspect MP4 bytes without decoding media samples.\n *\n * @param {Uint8Array|ArrayBuffer|DataView} input MP4 bytes.\n * @param {object} [options] Per-call values.\n * @returns {object} MP4 container metadata.\n */\n Inspect(input, options = {})\n {\n return inspectWithValues(input, this.GetValues(options), \"mp4\");\n }\n\n /**\n * Convert format output into JSON-compatible debug data.\n *\n * @param {any} value Format output.\n * @returns {any} JSON-compatible value.\n */\n ToJSON(value)\n {\n return toJsonValue(value);\n }\n\n /**\n * One-shot MP4 read.\n *\n * @param {Uint8Array|ArrayBuffer|DataView} input MP4 bytes.\n * @param {object} [options] Read options.\n * @returns {object} GPU-free raw/debug payload for the selected emit target.\n */\n static read(input, options = {})\n {\n return readWithValues(input, normalizeValues(DEFAULT_VALUES, { inputType: \"mp4\", ...options }, FORMAT_NAME), \"mp4\");\n }\n\n /**\n * One-shot asynchronous MP4 read.\n *\n * @param {Uint8Array|ArrayBuffer|DataView} input MP4 bytes.\n * @param {object} [options] Read options.\n * @returns {Promise<object>} GPU-free raw/debug payload for the selected emit target.\n */\n static async readAsync(input, options = {})\n {\n return CjsMp4Format.read(input, options);\n }\n\n /**\n * One-shot MP4 inspection.\n *\n * @param {Uint8Array|ArrayBuffer|DataView} input MP4 bytes.\n * @param {object} [options] Inspect options.\n * @returns {object} MP4 container metadata.\n */\n static inspect(input, options = {})\n {\n return inspectWithValues(input, normalizeValues(DEFAULT_VALUES, { inputType: \"mp4\", ...options }, FORMAT_NAME), \"mp4\");\n }\n\n /**\n * One-shot MP4 support probe.\n *\n * @param {Uint8Array|ArrayBuffer|DataView} input MP4 bytes.\n * @param {object} [options] Probe options.\n * @returns {object} Support/probe report.\n */\n
|
|
1
|
+
{"version":3,"file":"CjsMp4Format.js","sources":["../../../../../src/resource/formats/mp4/CjsMp4Format.js"],"sourcesContent":["import { asUint8Array } from \"#utils/bytes\";\nimport { CjsFormat } from \"../../format/CjsFormat.js\";\nimport {\n DEFAULT_VALUES,\n OUTPUT_JSON,\n OUTPUT_RAW,\n OUTPUT_VIDEO,\n inspectWithValues,\n isMP4,\n probeSupportWithValues,\n normalizeValues,\n readWithValues,\n toJsonValue\n} from \"./core/helpers.js\";\n\nconst FORMAT_NAME = \"CjsMp4Format\";\n\n/**\n * MP4 container format profile that inspects box and track structure and\n * emits raw bytes, debug JSON, or a container-only video payload with codec\n * and duration summaries but no frame decoding.\n */\nexport class CjsMp4Format extends CjsFormat\n{\n #values = DEFAULT_VALUES;\n\n /**\n * Create a reusable MP4 format profile.\n *\n * @param {object} [options] Default read/inspect options.\n */\n constructor(options = {})\n {\n super();\n this.SetValues(options);\n }\n\n /**\n * Merge options into this profile.\n *\n * @param {object} [options] Values to merge.\n * @returns {CjsMp4Format} This format profile.\n */\n SetValues(options = {})\n {\n this.#values = normalizeValues(this.#values, { inputType: \"mp4\", ...options }, FORMAT_NAME);\n return this;\n }\n\n /**\n * Get normalized profile values with optional per-call overrides.\n *\n * @param {object} [options] Per-call values.\n * @returns {object} Normalized read values.\n */\n GetValues(options = {})\n {\n return normalizeValues(this.#values, { inputType: \"mp4\", ...options }, FORMAT_NAME);\n }\n\n /**\n * Read MP4 bytes with this profile.\n *\n * @param {Uint8Array|ArrayBuffer|DataView} input MP4 bytes.\n * @param {object} [options] Per-call values.\n * @returns {object} GPU-free raw/debug payload for the selected emit target.\n */\n Read(input, options = {})\n {\n return readWithValues(input, this.GetValues(options), \"mp4\");\n }\n\n /**\n * Read MP4 bytes asynchronously with this profile.\n *\n * @param {Uint8Array|ArrayBuffer|DataView} input MP4 bytes.\n * @param {object} [options] Per-call values.\n * @returns {Promise<object>} GPU-free raw/debug payload for the selected emit target.\n */\n async ReadAsync(input, options = {})\n {\n return this.Read(input, options);\n }\n\n /**\n * Inspect MP4 bytes without decoding media samples.\n *\n * @param {Uint8Array|ArrayBuffer|DataView} input MP4 bytes.\n * @param {object} [options] Per-call values.\n * @returns {object} MP4 container metadata.\n */\n Inspect(input, options = {})\n {\n return inspectWithValues(input, this.GetValues(options), \"mp4\");\n }\n\n /**\n * Convert format output into JSON-compatible debug data.\n *\n * @param {any} value Format output.\n * @returns {any} JSON-compatible value.\n */\n ToJSON(value)\n {\n return toJsonValue(value);\n }\n\n /**\n * One-shot MP4 read.\n *\n * @param {Uint8Array|ArrayBuffer|DataView} input MP4 bytes.\n * @param {object} [options] Read options.\n * @returns {object} GPU-free raw/debug payload for the selected emit target.\n */\n static read(input, options = {})\n {\n return readWithValues(input, normalizeValues(DEFAULT_VALUES, { inputType: \"mp4\", ...options }, FORMAT_NAME), \"mp4\");\n }\n\n /**\n * One-shot asynchronous MP4 read.\n *\n * @param {Uint8Array|ArrayBuffer|DataView} input MP4 bytes.\n * @param {object} [options] Read options.\n * @returns {Promise<object>} GPU-free raw/debug payload for the selected emit target.\n */\n static async readAsync(input, options = {})\n {\n return CjsMp4Format.read(input, options);\n }\n\n /**\n * One-shot MP4 inspection.\n *\n * @param {Uint8Array|ArrayBuffer|DataView} input MP4 bytes.\n * @param {object} [options] Inspect options.\n * @returns {object} MP4 container metadata.\n */\n static inspect(input, options = {})\n {\n return inspectWithValues(input, normalizeValues(DEFAULT_VALUES, { inputType: \"mp4\", ...options }, FORMAT_NAME), \"mp4\");\n }\n\n /**\n * One-shot MP4 support probe.\n *\n * @param {Uint8Array|ArrayBuffer|DataView} input MP4 bytes.\n * @param {object} [options] Probe options.\n * @returns {object} Support/probe report.\n */\n\n /**\n * Convert format output into JSON-compatible debug data.\n *\n * @param {any} value Format output.\n * @returns {any} JSON-compatible value.\n */\n static toJSON(value)\n {\n return toJsonValue(value);\n }\n\n /**\n * Test whether bytes look like an MP4 file.\n *\n * @param {Uint8Array|ArrayBuffer|DataView} input Candidate MP4 bytes.\n * @returns {boolean} True when an MP4-compatible ftyp box is present.\n */\n static isMP4(input)\n {\n try\n {\n return isMP4(asUint8Array(input, \"Video input\"));\n }\n catch\n {\n return false;\n }\n }\n\n /**\n * Emit targets for this format (canonical frozen enum).\n */\n static Output = Object.freeze({\n VIDEO: OUTPUT_VIDEO,\n RAW: OUTPUT_RAW,\n JSON: OUTPUT_JSON\n });\n static OUTPUT_MP4_JSON = \"mp4Json\";\n static id = \"mp4\";\n static mediaTypes = Object.freeze([ \"audio\", \"video\" ]);\n static outputs = CjsFormat.defineOutputs({\n video: { },\n mp4Json: { role: \"debug\", probes: [ \"mp4Json\", \"raw\" ] },\n raw: { role: \"debug\", default: true, passthrough: true }\n });\n static extensions = Object.freeze([ \".mp4\", \".m4v\", \".m4a\" ]);\n}\n\nexport default CjsMp4Format;\n"],"names":["FORMAT_NAME","CjsMp4Format","CjsFormat","DEFAULT_VALUES","constructor","options","SetValues","normalizeValues","inputType","GetValues","Read","input","readWithValues","ReadAsync","Inspect","inspectWithValues","ToJSON","value","toJsonValue","read","readAsync","inspect","toJSON","isMP4","asUint8Array","Output","Object","freeze","VIDEO","OUTPUT_VIDEO","RAW","OUTPUT_RAW","JSON","OUTPUT_JSON","OUTPUT_MP4_JSON","id","mediaTypes","outputs","defineOutputs","video","mp4Json","role","probes","raw","default","passthrough","extensions"],"mappings":"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"}
|
|
@@ -55,64 +55,6 @@ function inspectWithValues(input, values = DEFAULT_VALUES, expectedType = "") {
|
|
|
55
55
|
};
|
|
56
56
|
}
|
|
57
57
|
|
|
58
|
-
/**
|
|
59
|
-
* Reports whether input is supported under normalized format options for the MP4
|
|
60
|
-
* format reader.
|
|
61
|
-
*/
|
|
62
|
-
function probeSupportWithValues(input, values = DEFAULT_VALUES, expectedType = "") {
|
|
63
|
-
try {
|
|
64
|
-
const metadata = inspectWithValues(input, values, expectedType);
|
|
65
|
-
const codecs = getTrackCodecSummary(metadata);
|
|
66
|
-
const mimeType = getMediaMimeType(metadata);
|
|
67
|
-
return {
|
|
68
|
-
format: metadata.sourceFormat,
|
|
69
|
-
source: values.source || "buffer",
|
|
70
|
-
supported: metadata.sourceFormat ? "partial" : "none",
|
|
71
|
-
confidence: metadata.sourceFormat ? 1 : 0,
|
|
72
|
-
preferredOutput: "video",
|
|
73
|
-
reason: metadata.sourceFormat ? "Container/header recognized." : "Unrecognized video format.",
|
|
74
|
-
metadata,
|
|
75
|
-
variants: [{
|
|
76
|
-
kind: "raw",
|
|
77
|
-
payloadType: "raw",
|
|
78
|
-
codec: metadata.sourceFormat,
|
|
79
|
-
mimeType,
|
|
80
|
-
supported: true
|
|
81
|
-
}, {
|
|
82
|
-
kind: "container",
|
|
83
|
-
payloadType: "video",
|
|
84
|
-
codec: metadata.sourceFormat,
|
|
85
|
-
mimeType,
|
|
86
|
-
codecs: codecs.codecs,
|
|
87
|
-
videoCodecs: codecs.videoCodecs,
|
|
88
|
-
audioCodecs: codecs.audioCodecs,
|
|
89
|
-
supported: true
|
|
90
|
-
}, {
|
|
91
|
-
kind: "decoded",
|
|
92
|
-
payloadType: "video-frame",
|
|
93
|
-
codec: "frames",
|
|
94
|
-
supported: false,
|
|
95
|
-
reason: "Video decode is not implemented in this package."
|
|
96
|
-
}],
|
|
97
|
-
warnings: [],
|
|
98
|
-
errors: []
|
|
99
|
-
};
|
|
100
|
-
} catch (error) {
|
|
101
|
-
return {
|
|
102
|
-
format: expectedType || values.inputType || "",
|
|
103
|
-
source: values.source || "buffer",
|
|
104
|
-
supported: "none",
|
|
105
|
-
confidence: 0,
|
|
106
|
-
preferredOutput: "",
|
|
107
|
-
reason: error.message,
|
|
108
|
-
metadata: null,
|
|
109
|
-
variants: [],
|
|
110
|
-
warnings: [],
|
|
111
|
-
errors: [error.message]
|
|
112
|
-
};
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
|
|
116
58
|
/** Reads input using normalized format options for the MP4 format reader. */
|
|
117
59
|
function readWithValues(input, values = DEFAULT_VALUES, expectedType = "") {
|
|
118
60
|
const bytes = asUint8Array(input, "Video input");
|
|
@@ -193,20 +135,6 @@ function isMP4(bytes) {
|
|
|
193
135
|
function isWebM(bytes) {
|
|
194
136
|
return bytes.byteLength >= 4 && bytes[0] === 0x1a && bytes[1] === 0x45 && bytes[2] === 0xdf && bytes[3] === 0xa3;
|
|
195
137
|
}
|
|
196
|
-
|
|
197
|
-
/** Converts a parsed payload into a JSON-safe value for the MP4 format reader. */
|
|
198
|
-
function toJsonValue(value) {
|
|
199
|
-
if (value instanceof Uint8Array) return {
|
|
200
|
-
byteLength: value.byteLength
|
|
201
|
-
};
|
|
202
|
-
if (Array.isArray(value)) return value.map(toJsonValue);
|
|
203
|
-
if (value && typeof value === "object") {
|
|
204
|
-
const output = {};
|
|
205
|
-
for (const [key, entry] of Object.entries(value)) output[key] = toJsonValue(entry);
|
|
206
|
-
return output;
|
|
207
|
-
}
|
|
208
|
-
return value;
|
|
209
|
-
}
|
|
210
138
|
function inspectMP4(bytes) {
|
|
211
139
|
const boxes = readMp4Boxes(bytes, 0, bytes.byteLength);
|
|
212
140
|
const ftyp = boxes.find(box => box.type === "ftyp");
|
|
@@ -457,5 +385,5 @@ function readU64BE(bytes, offset) {
|
|
|
457
385
|
return readU32BE(bytes, offset) * 0x100000000 + readU32BE(bytes, offset + 4);
|
|
458
386
|
}
|
|
459
387
|
|
|
460
|
-
export { DEFAULT_VALUES, OUTPUT_JSON, OUTPUT_RAW, OUTPUT_VIDEO, inspectBytes, inspectWithValues, isMP4, isWebM, normalizeEmit, normalizeValues,
|
|
388
|
+
export { DEFAULT_VALUES, OUTPUT_JSON, OUTPUT_RAW, OUTPUT_VIDEO, inspectBytes, inspectWithValues, isMP4, isWebM, normalizeEmit, normalizeValues, readWithValues };
|
|
461
389
|
//# sourceMappingURL=helpers.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.js","sources":["../../../../../../src/resource/formats/mp4/core/helpers.js"],"sourcesContent":["import { asUint8Array, readFourCc, readU16BE, readU32BE } from \"#utils/bytes\";\nexport 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\n/**\n * Normalizes reader options against their supported defaults for the MP4 format\n * reader.\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\n/** Normalizes the requested output representation for the MP4 format reader. */\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\n/** Returns a byte view over the supplied binary input for the MP4 format reader. */\r/** Inspects input using normalized format options for the MP4 format reader. */\nexport function inspectWithValues(input, values = DEFAULT_VALUES, expectedType = \"\")\n{\n const bytes = asUint8Array(input, \"Video 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\n/**\n * Reports whether input is supported under normalized format options for the MP4\n * format reader.\n */\nexport function probeSupportWithValues(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 preferredOutput: \"video\",\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 },\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 },\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 preferredOutput: \"\",\n reason: error.message,\n metadata: null,\n variants: [],\n warnings: [],\n errors: [ error.message ]\n };\n }\n}\n\n/** Reads input using normalized format options for the MP4 format reader. */\nexport function readWithValues(input, values = DEFAULT_VALUES, expectedType = \"\")\n{\n const bytes = asUint8Array(input, \"Video 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 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\n/**\n * Inspects the supplied bytes without decoding their payload for the MP4 format\n * reader.\n */\nexport function inspectBytes(bytes)\n{\n if (isMP4(bytes)) return inspectMP4(bytes);\n if (isWebM(bytes)) return inspectWebM();\n return { sourceFormat: \"\" };\n}\n\n/**\n * Reports whether the supplied bytes have an ISO base-media header for the MP4\n * format reader.\n */\nexport function isMP4(bytes)\n{\n return bytes.byteLength >= 12 && readFourCc(bytes, 4) === \"ftyp\";\n}\n\n/**\n * Reports whether the supplied bytes have a WebM EBML header for the MP4 format\n * reader.\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\n/** Converts a parsed payload into a JSON-safe value for the MP4 format reader. */\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 ? readFourCc(bytes, ftyp.dataStart) : readFourCc(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 ? readFourCc(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: readFourCc(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(readFourCc(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 = readFourCc(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\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\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","inspectWithValues","input","expectedType","bytes","asUint8Array","metadata","inspectBytes","sourceFormat","payloadType","mediaTypes","byteLength","probeSupportWithValues","codecs","getTrackCodecSummary","mimeType","getMediaMimeType","format","supported","confidence","preferredOutput","reason","variants","kind","codec","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","readFourCc","toJsonValue","value","Uint8Array","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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"}
|
|
1
|
+
{"version":3,"file":"helpers.js","sources":["../../../../../../src/resource/formats/mp4/core/helpers.js"],"sourcesContent":["import { toJsonWithByteSummary as toJsonValue } from \"../../../format/jsonPolicies.js\";\nimport { asUint8Array, readFourCc, readU16BE, readU32BE } from \"#utils/bytes\";\nexport 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\n/**\n * Normalizes reader options against their supported defaults for the MP4 format\n * reader.\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\n/** Normalizes the requested output representation for the MP4 format reader. */\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\n/** Returns a byte view over the supplied binary input for the MP4 format reader. */\n/** Inspects input using normalized format options for the MP4 format reader. */\nexport function inspectWithValues(input, values = DEFAULT_VALUES, expectedType = \"\")\n{\n const bytes = asUint8Array(input, \"Video 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\n/**\n * Reports whether input is supported under normalized format options for the MP4\n * format reader.\n */\nexport function probeSupportWithValues(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 preferredOutput: \"video\",\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 },\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 },\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 preferredOutput: \"\",\n reason: error.message,\n metadata: null,\n variants: [],\n warnings: [],\n errors: [ error.message ]\n };\n }\n}\n\n/** Reads input using normalized format options for the MP4 format reader. */\nexport function readWithValues(input, values = DEFAULT_VALUES, expectedType = \"\")\n{\n const bytes = asUint8Array(input, \"Video 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 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\n/**\n * Inspects the supplied bytes without decoding their payload for the MP4 format\n * reader.\n */\nexport function inspectBytes(bytes)\n{\n if (isMP4(bytes)) return inspectMP4(bytes);\n if (isWebM(bytes)) return inspectWebM();\n return { sourceFormat: \"\" };\n}\n\n/**\n * Reports whether the supplied bytes have an ISO base-media header for the MP4\n * format reader.\n */\nexport function isMP4(bytes)\n{\n return bytes.byteLength >= 12 && readFourCc(bytes, 4) === \"ftyp\";\n}\n\n/**\n * Reports whether the supplied bytes have a WebM EBML header for the MP4 format\n * reader.\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\n/** Converts a parsed payload into a JSON-safe value for the MP4 format reader. */\n/** The shared JSON policy for this reader, under the name its callers use. */\nexport { toJsonValue };\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 ? readFourCc(bytes, ftyp.dataStart) : readFourCc(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 ? readFourCc(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: readFourCc(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(readFourCc(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 = readFourCc(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\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\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","inspectWithValues","input","expectedType","bytes","asUint8Array","metadata","inspectBytes","sourceFormat","payloadType","mediaTypes","byteLength","readWithValues","codecs","getTrackCodecSummary","mimeType","getMediaMimeType","container","videoCodecs","audioCodecs","duration","durationTimescale","tracks","sourceBytes","error","Error","code","Array","isArray","uniqueTrackCodecs","filter","track","type","Set","map","codec","Boolean","some","isMP4","inspectMP4","isWebM","inspectWebM","readFourCc","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","value","readU16BE","fromCharCode","entry","result","start","brands","push","size","headerSize","parent"],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { CjsFormat } from '../../format/CjsFormat.js';
|
|
2
|
-
import { DEFAULT_VALUES, normalizeValues, validateClassKey, validateClass, readWithValues, inspectWithValues,
|
|
2
|
+
import { DEFAULT_VALUES, normalizeValues, validateClassKey, validateClass, readWithValues, inspectWithValues, toText, OUTPUT_CMF, OUTPUT_GR2, OUTPUT_SHARED, OUTPUT_OBJ_JSON, OUTPUT_JSON, CLASS_KEYS } from './core/helpers.js';
|
|
3
|
+
import { toJsonWithArrayValues } from '../../format/jsonPolicies.js';
|
|
3
4
|
|
|
4
5
|
const FORMAT_NAME = "CjsObjFormat";
|
|
5
6
|
|
|
@@ -155,7 +156,7 @@ class CjsObjFormat extends CjsFormat {
|
|
|
155
156
|
* @returns {any} Plain JSON-compatible data.
|
|
156
157
|
*/
|
|
157
158
|
ToJSON(value) {
|
|
158
|
-
return
|
|
159
|
+
return toJsonWithArrayValues(value);
|
|
159
160
|
}
|
|
160
161
|
|
|
161
162
|
/**
|
|
@@ -187,7 +188,7 @@ class CjsObjFormat extends CjsFormat {
|
|
|
187
188
|
* @returns {any} Plain JSON-compatible data.
|
|
188
189
|
*/
|
|
189
190
|
static toJSON(value) {
|
|
190
|
-
return
|
|
191
|
+
return toJsonWithArrayValues(value);
|
|
191
192
|
}
|
|
192
193
|
|
|
193
194
|
/**
|