@carbonenginejs/runtime-resource 0.8.0 → 0.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -21
- package/NOTICE +29 -29
- package/README.md +67 -548
- package/dist/CjsMotherLode.js +1271 -1271
- package/dist/CjsResMan.js +3005 -3005
- package/dist/CjsResManQueue.js +214 -214
- package/dist/CjsResource.js +566 -566
- package/dist/CjsResourceSource.js +59 -59
- package/dist/_virtual/_rollupPluginBabelHelpers.js +153 -153
- package/dist/format/CjsBlueReader.js +269 -269
- package/dist/format/CjsFormat.js +192 -192
- package/dist/format/CjsReader.js +18 -18
- package/dist/format/CjsResourceProbe.js +277 -277
- package/dist/format/payloadContract.js +173 -173
- package/dist/formats/black/CjsBlackFormat.js +278 -278
- package/dist/formats/black/core/CjsBlackBinaryReader.js +153 -153
- package/dist/formats/black/core/CjsBlackPropertyReaders.js +382 -382
- package/dist/formats/black/core/CjsBlackReader.js +639 -639
- package/dist/formats/black/core/CjsBlackSchemaRegistry.js +433 -433
- package/dist/formats/black/core/black-schema-v1-2026-07-11.json.js +4 -4
- package/dist/formats/black/core/blackConstants.js +7 -7
- package/dist/formats/black/core/blackDefinitions.js +10 -10
- package/dist/formats/black/core/blackEnums.js +6 -6
- package/dist/formats/black/core/blackSchema.js +3 -3
- package/dist/formats/black/core/blackVersion.js +22 -22
- package/dist/formats/black/core/helpers.js +182 -182
- package/dist/formats/black/core/schema.js +4 -4
- package/dist/formats/black/index.js +2 -2
- package/dist/formats/bnk/CjsBnkFormat.js +125 -125
- package/dist/formats/bnk/core/graph.js +140 -140
- package/dist/formats/bnk/core/helpers.js +409 -409
- package/dist/formats/bnk/core/musicNodes.js +489 -489
- package/dist/formats/bnk/core/soundbanksInfo.js +246 -246
- package/dist/formats/bnk/index.js +2 -2
- package/dist/formats/cmf/CjsCmfFormat.js +497 -497
- package/dist/formats/cmf/core/binary.js +118 -118
- package/dist/formats/cmf/core/buffers.js +233 -233
- package/dist/formats/cmf/core/constants.js +47 -47
- package/dist/formats/cmf/core/gr2Anim.js +453 -453
- package/dist/formats/cmf/core/helpers.js +287 -287
- package/dist/formats/cmf/core/pack.js +276 -276
- package/dist/formats/cmf/core/schema.js +364 -364
- package/dist/formats/cmf/core/shared.js +268 -268
- package/dist/formats/cmf/core/writer.js +517 -517
- package/dist/formats/cmf/index.js +2 -2
- package/dist/formats/dds/CjsDdsFormat.js +193 -193
- package/dist/formats/dds/core/bc6h.js +288 -288
- package/dist/formats/dds/core/bc7.js +251 -251
- package/dist/formats/dds/core/helpers.js +815 -815
- package/dist/formats/dds/index.js +2 -2
- package/dist/formats/fbx/CjsFbxFormat.js +266 -266
- package/dist/formats/fbx/core/helpers.js +3901 -3901
- package/dist/formats/fbx/index.js +2 -2
- package/dist/formats/flac/CjsFlacFormat.js +87 -87
- package/dist/formats/flac/core/helpers.js +295 -295
- package/dist/formats/flac/index.js +2 -2
- package/dist/formats/gif/CjsGifFormat.js +87 -87
- package/dist/formats/gif/core/helpers.js +360 -360
- package/dist/formats/gif/index.js +2 -2
- package/dist/formats/gltf/CjsGltfFormat.js +290 -290
- package/dist/formats/gltf/core/helpers.js +292 -292
- package/dist/formats/gltf/core/json.js +79 -79
- package/dist/formats/gltf/core/parser.js +666 -666
- package/dist/formats/gltf/core/targets.js +163 -163
- package/dist/formats/gltf/index.js +2 -2
- package/dist/formats/gr2/CjsGr2Format.js +46 -0
- package/dist/formats/gr2/CjsGr2Format.js.map +1 -0
- package/dist/formats/gr2/core/CjsFormatGr2.js +273 -0
- package/dist/formats/gr2/core/CjsFormatGr2.js.map +1 -0
- package/dist/formats/gr2/core/bitknit2.js +280 -0
- package/dist/formats/gr2/core/bitknit2.js.map +1 -0
- package/dist/formats/gr2/core/curves.js +1047 -0
- package/dist/formats/gr2/core/curves.js.map +1 -0
- package/dist/formats/gr2/core/gsf.js +72 -0
- package/dist/formats/gr2/core/gsf.js.map +1 -0
- package/dist/formats/gr2/core/helpers.js +332 -0
- package/dist/formats/gr2/core/helpers.js.map +1 -0
- package/dist/formats/gr2/core/json.js +622 -0
- package/dist/formats/gr2/core/json.js.map +1 -0
- package/dist/formats/gr2/core/oodle1.js +388 -0
- package/dist/formats/gr2/core/oodle1.js.map +1 -0
- package/dist/formats/gr2/core/reader.js +617 -0
- package/dist/formats/gr2/core/reader.js.map +1 -0
- package/dist/formats/gr2/core/tangents.js +48 -0
- package/dist/formats/gr2/core/tangents.js.map +1 -0
- package/dist/formats/gr2/core/targets.js +351 -0
- package/dist/formats/gr2/core/targets.js.map +1 -0
- package/dist/formats/gr2/index.js +3 -0
- package/dist/formats/gr2/index.js.map +1 -0
- package/dist/formats/index.js +30 -23
- package/dist/formats/index.js.map +1 -1
- package/dist/formats/jpeg/CjsJpegFormat.js +206 -206
- package/dist/formats/jpeg/core/helpers.js +350 -350
- package/dist/formats/jpeg/core/jpeg.js +377 -377
- package/dist/formats/jpeg/index.js +2 -2
- package/dist/formats/mp3/CjsMp3Format.js +192 -192
- package/dist/formats/mp3/core/helpers.js +338 -338
- package/dist/formats/mp3/index.js +2 -2
- package/dist/formats/mp4/CjsMp4Format.js +191 -191
- package/dist/formats/mp4/core/helpers.js +449 -449
- package/dist/formats/mp4/index.js +2 -2
- package/dist/formats/obj/CjsObjFormat.js +253 -253
- package/dist/formats/obj/core/helpers.js +573 -573
- package/dist/formats/obj/core/json.js +64 -64
- package/dist/formats/obj/core/parser.js +321 -321
- package/dist/formats/obj/index.js +2 -2
- package/dist/formats/ogg/CjsOggFormat.js +88 -88
- package/dist/formats/ogg/core/helpers.js +387 -387
- package/dist/formats/ogg/core/imdct.js +178 -178
- package/dist/formats/ogg/core/vorbis.js +999 -999
- package/dist/formats/ogg/index.js +2 -2
- package/dist/formats/png/CjsPngFormat.js +195 -195
- package/dist/formats/png/core/helpers.js +583 -583
- package/dist/formats/png/index.js +2 -2
- package/dist/formats/red/CjsRedFormat.js +261 -261
- package/dist/formats/red/core/CjsRedReader.js +194 -194
- package/dist/formats/red/core/blackDefinitions.js +3 -3
- package/dist/formats/red/core/helpers.js +139 -139
- package/dist/formats/red/core/redGraph.js +68 -68
- package/dist/formats/red/core/schema.js +4 -4
- package/dist/formats/red/index.js +2 -2
- package/dist/formats/stl/CjsStlFormat.js +365 -365
- package/dist/formats/stl/core/helpers.js +261 -261
- package/dist/formats/stl/core/json.js +51 -51
- package/dist/formats/stl/core/stl.js +629 -629
- package/dist/formats/stl/core/targets.js +163 -163
- package/dist/formats/stl/index.js +2 -2
- package/dist/formats/tga/CjsTgaFormat.js +192 -192
- package/dist/formats/tga/core/helpers.js +446 -446
- package/dist/formats/tga/index.js +2 -2
- package/dist/formats/wav/CjsWavFormat.js +192 -192
- package/dist/formats/wav/core/helpers.js +328 -328
- package/dist/formats/wav/index.js +2 -2
- package/dist/formats/webm/CjsWebmFormat.js +191 -191
- package/dist/formats/webm/core/helpers.js +537 -537
- package/dist/formats/webm/index.js +2 -2
- package/dist/formats/webp/CjsWebpFormat.js +86 -86
- package/dist/formats/webp/core/helpers.js +214 -214
- package/dist/formats/webp/index.js +2 -2
- package/dist/formats/wem/CjsWemFormat.js +241 -241
- package/dist/formats/wem/core/bitStream.js +259 -259
- package/dist/formats/wem/core/codebookLibrary.js +164 -164
- package/dist/formats/wem/core/helpers.js +417 -417
- package/dist/formats/wem/core/packedCodebooksAotuv603.js +30 -30
- package/dist/formats/wem/core/ptadpcm.js +77 -77
- package/dist/formats/wem/core/resolve.js +121 -121
- package/dist/formats/wem/core/wemToOgg.js +485 -485
- package/dist/formats/wem/index.js +2 -2
- package/dist/formats/yaml/CjsYamlFormat.js +83 -83
- package/dist/formats/yaml/core/CjsYamlReader.js +305 -305
- package/dist/formats/yaml/core/helpers.js +160 -160
- package/dist/formats/yaml/index.js +2 -2
- package/dist/index.js +49 -48
- package/dist/index.js.map +1 -1
- package/dist/resourcePath.js +18 -18
- package/dist/resourceStates.js +9 -9
- package/dist/resources/AudioGeometryResData.js +47 -47
- package/dist/resources/GStateBindingCallbackData.js +31 -31
- package/dist/resources/MeshDecalData.js +37 -37
- package/dist/resources/MeshDecalLodData.js +34 -34
- package/dist/resources/Tr2EffectRes.js +71 -71
- package/dist/resources/Tr2GrannyIntersectionResult.js +60 -60
- package/dist/resources/Tr2GrannyStateRes.js +44 -44
- package/dist/resources/Tr2ImageRes.js +114 -114
- package/dist/resources/Tr2LightProfileRes.js +40 -40
- package/dist/resources/Tr2MaterialArea.js +34 -34
- package/dist/resources/Tr2MaterialMesh.js +31 -31
- package/dist/resources/Tr2MaterialRes.js +34 -34
- package/dist/resources/Tr2ShaderPermutation.js +43 -43
- package/dist/resources/Tr2TextureLodManager.js +80 -80
- package/dist/resources/Tr2TextureLodUpdateRequest.js +37 -37
- package/dist/resources/Tr2TexturePackChannel.js +37 -37
- package/dist/resources/Tr2TexturePipeline.js +52 -52
- package/dist/resources/Tr2TexturePipelineParams.js +34 -34
- package/dist/resources/Tr2TexturePipelineStepCompress.js +40 -40
- package/dist/resources/Tr2TexturePipelineStepGenerateMips.js +22 -0
- package/dist/resources/Tr2TexturePipelineStepGenerateMips.js.map +1 -0
- package/dist/resources/Tr2TexturePipelineStepLimitSize.js +34 -34
- package/dist/resources/Tr2TexturePipelineStepLoad.js +31 -31
- package/dist/resources/Tr2TexturePipelineStepPack.js +43 -43
- package/dist/resources/TriGeometryRes.js +239 -239
- package/dist/resources/TriGeometryResAreaData.js +59 -59
- package/dist/resources/TriGeometryResJointData.js +38 -38
- package/dist/resources/TriGeometryResLodData.js +88 -88
- package/dist/resources/TriGeometryResMeshData.js +63 -63
- package/dist/resources/TriGeometryResSkeletonData.js +34 -34
- package/dist/resources/TriGrannyRes.js +43 -43
- package/dist/resources/TriJointBinding.js +38 -38
- package/dist/resources/TriMorphTargetGeometryConstants.js +46 -46
- package/dist/resources/TriRtGeometryConstants.js +88 -88
- package/dist/resources/TriTextureRes.js +304 -304
- package/dist/resources/enums.js +18 -18
- package/dist/resources/resourceBoundary.js +47 -47
- package/dist/resources/texturePipelineBehavior.js +308 -308
- package/dist/texture/CjsTextureArrayRes.js +406 -406
- package/dist/texture/CjsTextureParameterProxy.js +133 -133
- package/docs/README.md +69 -0
- package/docs/architecture.md +86 -0
- package/docs/concepts/resource-lifecycle.md +217 -0
- package/docs/formats/README.md +104 -0
- package/{FORMAT-PROVENANCE.md → docs/formats/provenance.md} +173 -155
- package/docs/formats/stl.md +37 -0
- package/docs/formats/wwise.md +44 -0
- package/docs/reference/events.md +92 -0
- package/docs/reference/motherlode-cache.md +244 -0
- package/docs/reference/queues.md +102 -0
- package/docs/reference/reload.md +107 -0
- package/docs/reference/texture-arrays.md +113 -0
- package/docs/reference/texture-pipeline.md +53 -0
- package/docs/roadmap.md +104 -0
- package/format-notices/black/LICENSE +21 -21
- package/format-notices/black/NOTICE +47 -47
- package/format-notices/bnk/LICENSE +21 -21
- package/format-notices/bnk/NOTICE +20 -20
- package/format-notices/cmf/LICENSE +21 -21
- package/format-notices/cmf/NOTICE +36 -36
- package/format-notices/dds/LICENSE +21 -21
- package/format-notices/dds/NOTICE +14 -14
- package/format-notices/fbx/LICENSE +21 -21
- package/format-notices/fbx/NOTICE +14 -14
- package/format-notices/flac/LICENSE +21 -21
- package/format-notices/flac/NOTICE +14 -14
- package/format-notices/gif/LICENSE +21 -21
- package/format-notices/gif/NOTICE +14 -14
- package/format-notices/gltf/LICENSE +21 -21
- package/format-notices/gltf/NOTICE +27 -27
- package/format-notices/gr2/LICENSE +21 -0
- package/format-notices/gr2/NOTICE +60 -0
- package/format-notices/gr2/THIRD-PARTY-NOTICES.md +93 -0
- package/format-notices/jpeg/LICENSE +21 -21
- package/format-notices/jpeg/NOTICE +14 -14
- package/format-notices/mp3/LICENSE +21 -21
- package/format-notices/mp3/NOTICE +14 -14
- package/format-notices/mp4/LICENSE +21 -21
- package/format-notices/mp4/NOTICE +14 -14
- package/format-notices/obj/LICENSE +21 -21
- package/format-notices/obj/NOTICE +26 -26
- package/format-notices/ogg/LICENSE +21 -21
- package/format-notices/ogg/NOTICE +28 -28
- package/format-notices/png/LICENSE +21 -21
- package/format-notices/png/NOTICE +14 -14
- package/format-notices/red/LICENSE +21 -21
- package/format-notices/red/NOTICE +31 -31
- package/format-notices/stl/LICENSE +21 -21
- package/format-notices/stl/NOTICE +21 -21
- package/format-notices/tga/LICENSE +21 -21
- package/format-notices/tga/NOTICE +14 -14
- package/format-notices/wav/LICENSE +21 -21
- package/format-notices/wav/NOTICE +14 -14
- package/format-notices/webm/LICENSE +21 -21
- package/format-notices/webm/NOTICE +14 -14
- package/format-notices/webp/LICENSE +21 -21
- package/format-notices/webp/NOTICE +14 -14
- package/format-notices/wem/LICENSE +57 -57
- package/format-notices/wem/NOTICE +33 -33
- package/format-notices/yaml/LICENSE +21 -21
- package/format-notices/yaml/NOTICE +44 -44
- package/package.json +52 -51
- package/resource-lifecycle.md +0 -679
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { CjsMp3Format, CjsMp3Format as default } from './CjsMp3Format.js';
|
|
2
|
-
//# sourceMappingURL=index.js.map
|
|
1
|
+
export { CjsMp3Format, CjsMp3Format as default } from './CjsMp3Format.js';
|
|
2
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -1,191 +1,191 @@
|
|
|
1
|
-
import { DEFAULT_VALUES, normalizeValues, readWithValues, inspectWithValues, isSupportedWithValues, toJsonValue, isMP4, toBytes, OUTPUT_JSON, OUTPUT_RAW, OUTPUT_VIDEO } from './core/helpers.js';
|
|
2
|
-
|
|
3
|
-
const FORMAT_NAME = "CjsMp4Format";
|
|
4
|
-
class CjsMp4Format {
|
|
5
|
-
#values = DEFAULT_VALUES;
|
|
6
|
-
|
|
7
|
-
/**
|
|
8
|
-
* Create a reusable MP4 format profile.
|
|
9
|
-
*
|
|
10
|
-
* @param {object} [options] Default read/inspect options.
|
|
11
|
-
*/
|
|
12
|
-
constructor(options = {}) {
|
|
13
|
-
this.SetValues(options);
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
/**
|
|
17
|
-
* Merge options into this profile.
|
|
18
|
-
*
|
|
19
|
-
* @param {object} [options] Values to merge.
|
|
20
|
-
* @returns {CjsMp4Format} This format profile.
|
|
21
|
-
*/
|
|
22
|
-
SetValues(options = {}) {
|
|
23
|
-
this.#values = normalizeValues(this.#values, {
|
|
24
|
-
inputType: "mp4",
|
|
25
|
-
...options
|
|
26
|
-
}, FORMAT_NAME);
|
|
27
|
-
return this;
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
/**
|
|
31
|
-
* Get normalized profile values with optional per-call overrides.
|
|
32
|
-
*
|
|
33
|
-
* @param {object} [options] Per-call values.
|
|
34
|
-
* @returns {object} Normalized read values.
|
|
35
|
-
*/
|
|
36
|
-
GetValues(options = {}) {
|
|
37
|
-
return normalizeValues(this.#values, {
|
|
38
|
-
inputType: "mp4",
|
|
39
|
-
...options
|
|
40
|
-
}, FORMAT_NAME);
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
/**
|
|
44
|
-
* Read MP4 bytes with this profile.
|
|
45
|
-
*
|
|
46
|
-
* @param {Uint8Array|ArrayBuffer|DataView} input MP4 bytes.
|
|
47
|
-
* @param {object} [options] Per-call values.
|
|
48
|
-
* @returns {object} GPU-free raw/debug payload for the selected emit target.
|
|
49
|
-
*/
|
|
50
|
-
Read(input, options = {}) {
|
|
51
|
-
return readWithValues(input, this.GetValues(options), "mp4");
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
/**
|
|
55
|
-
* Read MP4 bytes asynchronously with this profile.
|
|
56
|
-
*
|
|
57
|
-
* @param {Uint8Array|ArrayBuffer|DataView} input MP4 bytes.
|
|
58
|
-
* @param {object} [options] Per-call values.
|
|
59
|
-
* @returns {Promise<object>} GPU-free raw/debug payload for the selected emit target.
|
|
60
|
-
*/
|
|
61
|
-
async ReadAsync(input, options = {}) {
|
|
62
|
-
return this.Read(input, options);
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
/**
|
|
66
|
-
* Inspect MP4 bytes without decoding media samples.
|
|
67
|
-
*
|
|
68
|
-
* @param {Uint8Array|ArrayBuffer|DataView} input MP4 bytes.
|
|
69
|
-
* @param {object} [options] Per-call values.
|
|
70
|
-
* @returns {object} MP4 container metadata.
|
|
71
|
-
*/
|
|
72
|
-
Inspect(input, options = {}) {
|
|
73
|
-
return inspectWithValues(input, this.GetValues(options), "mp4");
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
/**
|
|
77
|
-
* Report whether MP4 input and requested output variants are supported.
|
|
78
|
-
*
|
|
79
|
-
* @param {Uint8Array|ArrayBuffer|DataView} input MP4 bytes.
|
|
80
|
-
* @param {object} [options] Per-call values.
|
|
81
|
-
* @returns {object} Support/probe report.
|
|
82
|
-
*/
|
|
83
|
-
IsSupported(input, options = {}) {
|
|
84
|
-
return isSupportedWithValues(input, this.GetValues(options), "mp4");
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
/**
|
|
88
|
-
* Convert format output into JSON-compatible debug data.
|
|
89
|
-
*
|
|
90
|
-
* @param {any} value Format output.
|
|
91
|
-
* @returns {any} JSON-compatible value.
|
|
92
|
-
*/
|
|
93
|
-
ToJSON(value) {
|
|
94
|
-
return toJsonValue(value);
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
/**
|
|
98
|
-
* One-shot MP4 read.
|
|
99
|
-
*
|
|
100
|
-
* @param {Uint8Array|ArrayBuffer|DataView} input MP4 bytes.
|
|
101
|
-
* @param {object} [options] Read options.
|
|
102
|
-
* @returns {object} GPU-free raw/debug payload for the selected emit target.
|
|
103
|
-
*/
|
|
104
|
-
static read(input, options = {}) {
|
|
105
|
-
return readWithValues(input, normalizeValues(DEFAULT_VALUES, {
|
|
106
|
-
inputType: "mp4",
|
|
107
|
-
...options
|
|
108
|
-
}, FORMAT_NAME), "mp4");
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
/**
|
|
112
|
-
* One-shot asynchronous MP4 read.
|
|
113
|
-
*
|
|
114
|
-
* @param {Uint8Array|ArrayBuffer|DataView} input MP4 bytes.
|
|
115
|
-
* @param {object} [options] Read options.
|
|
116
|
-
* @returns {Promise<object>} GPU-free raw/debug payload for the selected emit target.
|
|
117
|
-
*/
|
|
118
|
-
static async readAsync(input, options = {}) {
|
|
119
|
-
return CjsMp4Format.read(input, options);
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
/**
|
|
123
|
-
* One-shot MP4 inspection.
|
|
124
|
-
*
|
|
125
|
-
* @param {Uint8Array|ArrayBuffer|DataView} input MP4 bytes.
|
|
126
|
-
* @param {object} [options] Inspect options.
|
|
127
|
-
* @returns {object} MP4 container metadata.
|
|
128
|
-
*/
|
|
129
|
-
static inspect(input, options = {}) {
|
|
130
|
-
return inspectWithValues(input, normalizeValues(DEFAULT_VALUES, {
|
|
131
|
-
inputType: "mp4",
|
|
132
|
-
...options
|
|
133
|
-
}, FORMAT_NAME), "mp4");
|
|
134
|
-
}
|
|
135
|
-
|
|
136
|
-
/**
|
|
137
|
-
* One-shot MP4 support probe.
|
|
138
|
-
*
|
|
139
|
-
* @param {Uint8Array|ArrayBuffer|DataView} input MP4 bytes.
|
|
140
|
-
* @param {object} [options] Probe options.
|
|
141
|
-
* @returns {object} Support/probe report.
|
|
142
|
-
*/
|
|
143
|
-
static isSupported(input, options = {}) {
|
|
144
|
-
return isSupportedWithValues(input, normalizeValues(DEFAULT_VALUES, {
|
|
145
|
-
inputType: "mp4",
|
|
146
|
-
...options
|
|
147
|
-
}, FORMAT_NAME), "mp4");
|
|
148
|
-
}
|
|
149
|
-
|
|
150
|
-
/**
|
|
151
|
-
* Convert format output into JSON-compatible debug data.
|
|
152
|
-
*
|
|
153
|
-
* @param {any} value Format output.
|
|
154
|
-
* @returns {any} JSON-compatible value.
|
|
155
|
-
*/
|
|
156
|
-
static toJSON(value) {
|
|
157
|
-
return toJsonValue(value);
|
|
158
|
-
}
|
|
159
|
-
|
|
160
|
-
/**
|
|
161
|
-
* Test whether bytes look like an MP4 file.
|
|
162
|
-
*
|
|
163
|
-
* @param {Uint8Array|ArrayBuffer|DataView} input Candidate MP4 bytes.
|
|
164
|
-
* @returns {boolean} True when an MP4-compatible ftyp box is present.
|
|
165
|
-
*/
|
|
166
|
-
static isMP4(input) {
|
|
167
|
-
try {
|
|
168
|
-
return isMP4(toBytes(input));
|
|
169
|
-
} catch {
|
|
170
|
-
return false;
|
|
171
|
-
}
|
|
172
|
-
}
|
|
173
|
-
|
|
174
|
-
/**
|
|
175
|
-
* Emit targets for this format (canonical frozen enum).
|
|
176
|
-
*/
|
|
177
|
-
static Output = Object.freeze({
|
|
178
|
-
VIDEO: OUTPUT_VIDEO,
|
|
179
|
-
RAW: OUTPUT_RAW,
|
|
180
|
-
JSON: OUTPUT_JSON
|
|
181
|
-
});
|
|
182
|
-
static OUTPUT_MP4_JSON = "mp4Json";
|
|
183
|
-
static type = Object.freeze(["audio", "video"]);
|
|
184
|
-
static mediaTypes = Object.freeze(["audio", "video"]);
|
|
185
|
-
static inputTypes = Object.freeze(["mp4", "m4v", "m4a"]);
|
|
186
|
-
static outputTypes = Object.freeze([OUTPUT_VIDEO]);
|
|
187
|
-
static debugOutputTypes = Object.freeze(["mp4Json", OUTPUT_RAW]);
|
|
188
|
-
}
|
|
189
|
-
|
|
190
|
-
export { CjsMp4Format };
|
|
191
|
-
//# sourceMappingURL=CjsMp4Format.js.map
|
|
1
|
+
import { DEFAULT_VALUES, normalizeValues, readWithValues, inspectWithValues, isSupportedWithValues, toJsonValue, isMP4, toBytes, OUTPUT_JSON, OUTPUT_RAW, OUTPUT_VIDEO } from './core/helpers.js';
|
|
2
|
+
|
|
3
|
+
const FORMAT_NAME = "CjsMp4Format";
|
|
4
|
+
class CjsMp4Format {
|
|
5
|
+
#values = DEFAULT_VALUES;
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Create a reusable MP4 format profile.
|
|
9
|
+
*
|
|
10
|
+
* @param {object} [options] Default read/inspect options.
|
|
11
|
+
*/
|
|
12
|
+
constructor(options = {}) {
|
|
13
|
+
this.SetValues(options);
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Merge options into this profile.
|
|
18
|
+
*
|
|
19
|
+
* @param {object} [options] Values to merge.
|
|
20
|
+
* @returns {CjsMp4Format} This format profile.
|
|
21
|
+
*/
|
|
22
|
+
SetValues(options = {}) {
|
|
23
|
+
this.#values = normalizeValues(this.#values, {
|
|
24
|
+
inputType: "mp4",
|
|
25
|
+
...options
|
|
26
|
+
}, FORMAT_NAME);
|
|
27
|
+
return this;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* Get normalized profile values with optional per-call overrides.
|
|
32
|
+
*
|
|
33
|
+
* @param {object} [options] Per-call values.
|
|
34
|
+
* @returns {object} Normalized read values.
|
|
35
|
+
*/
|
|
36
|
+
GetValues(options = {}) {
|
|
37
|
+
return normalizeValues(this.#values, {
|
|
38
|
+
inputType: "mp4",
|
|
39
|
+
...options
|
|
40
|
+
}, FORMAT_NAME);
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* Read MP4 bytes with this profile.
|
|
45
|
+
*
|
|
46
|
+
* @param {Uint8Array|ArrayBuffer|DataView} input MP4 bytes.
|
|
47
|
+
* @param {object} [options] Per-call values.
|
|
48
|
+
* @returns {object} GPU-free raw/debug payload for the selected emit target.
|
|
49
|
+
*/
|
|
50
|
+
Read(input, options = {}) {
|
|
51
|
+
return readWithValues(input, this.GetValues(options), "mp4");
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* Read MP4 bytes asynchronously with this profile.
|
|
56
|
+
*
|
|
57
|
+
* @param {Uint8Array|ArrayBuffer|DataView} input MP4 bytes.
|
|
58
|
+
* @param {object} [options] Per-call values.
|
|
59
|
+
* @returns {Promise<object>} GPU-free raw/debug payload for the selected emit target.
|
|
60
|
+
*/
|
|
61
|
+
async ReadAsync(input, options = {}) {
|
|
62
|
+
return this.Read(input, options);
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
/**
|
|
66
|
+
* Inspect MP4 bytes without decoding media samples.
|
|
67
|
+
*
|
|
68
|
+
* @param {Uint8Array|ArrayBuffer|DataView} input MP4 bytes.
|
|
69
|
+
* @param {object} [options] Per-call values.
|
|
70
|
+
* @returns {object} MP4 container metadata.
|
|
71
|
+
*/
|
|
72
|
+
Inspect(input, options = {}) {
|
|
73
|
+
return inspectWithValues(input, this.GetValues(options), "mp4");
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
/**
|
|
77
|
+
* Report whether MP4 input and requested output variants are supported.
|
|
78
|
+
*
|
|
79
|
+
* @param {Uint8Array|ArrayBuffer|DataView} input MP4 bytes.
|
|
80
|
+
* @param {object} [options] Per-call values.
|
|
81
|
+
* @returns {object} Support/probe report.
|
|
82
|
+
*/
|
|
83
|
+
IsSupported(input, options = {}) {
|
|
84
|
+
return isSupportedWithValues(input, this.GetValues(options), "mp4");
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
/**
|
|
88
|
+
* Convert format output into JSON-compatible debug data.
|
|
89
|
+
*
|
|
90
|
+
* @param {any} value Format output.
|
|
91
|
+
* @returns {any} JSON-compatible value.
|
|
92
|
+
*/
|
|
93
|
+
ToJSON(value) {
|
|
94
|
+
return toJsonValue(value);
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
/**
|
|
98
|
+
* One-shot MP4 read.
|
|
99
|
+
*
|
|
100
|
+
* @param {Uint8Array|ArrayBuffer|DataView} input MP4 bytes.
|
|
101
|
+
* @param {object} [options] Read options.
|
|
102
|
+
* @returns {object} GPU-free raw/debug payload for the selected emit target.
|
|
103
|
+
*/
|
|
104
|
+
static read(input, options = {}) {
|
|
105
|
+
return readWithValues(input, normalizeValues(DEFAULT_VALUES, {
|
|
106
|
+
inputType: "mp4",
|
|
107
|
+
...options
|
|
108
|
+
}, FORMAT_NAME), "mp4");
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
/**
|
|
112
|
+
* One-shot asynchronous MP4 read.
|
|
113
|
+
*
|
|
114
|
+
* @param {Uint8Array|ArrayBuffer|DataView} input MP4 bytes.
|
|
115
|
+
* @param {object} [options] Read options.
|
|
116
|
+
* @returns {Promise<object>} GPU-free raw/debug payload for the selected emit target.
|
|
117
|
+
*/
|
|
118
|
+
static async readAsync(input, options = {}) {
|
|
119
|
+
return CjsMp4Format.read(input, options);
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
/**
|
|
123
|
+
* One-shot MP4 inspection.
|
|
124
|
+
*
|
|
125
|
+
* @param {Uint8Array|ArrayBuffer|DataView} input MP4 bytes.
|
|
126
|
+
* @param {object} [options] Inspect options.
|
|
127
|
+
* @returns {object} MP4 container metadata.
|
|
128
|
+
*/
|
|
129
|
+
static inspect(input, options = {}) {
|
|
130
|
+
return inspectWithValues(input, normalizeValues(DEFAULT_VALUES, {
|
|
131
|
+
inputType: "mp4",
|
|
132
|
+
...options
|
|
133
|
+
}, FORMAT_NAME), "mp4");
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
/**
|
|
137
|
+
* One-shot MP4 support probe.
|
|
138
|
+
*
|
|
139
|
+
* @param {Uint8Array|ArrayBuffer|DataView} input MP4 bytes.
|
|
140
|
+
* @param {object} [options] Probe options.
|
|
141
|
+
* @returns {object} Support/probe report.
|
|
142
|
+
*/
|
|
143
|
+
static isSupported(input, options = {}) {
|
|
144
|
+
return isSupportedWithValues(input, normalizeValues(DEFAULT_VALUES, {
|
|
145
|
+
inputType: "mp4",
|
|
146
|
+
...options
|
|
147
|
+
}, FORMAT_NAME), "mp4");
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
/**
|
|
151
|
+
* Convert format output into JSON-compatible debug data.
|
|
152
|
+
*
|
|
153
|
+
* @param {any} value Format output.
|
|
154
|
+
* @returns {any} JSON-compatible value.
|
|
155
|
+
*/
|
|
156
|
+
static toJSON(value) {
|
|
157
|
+
return toJsonValue(value);
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
/**
|
|
161
|
+
* Test whether bytes look like an MP4 file.
|
|
162
|
+
*
|
|
163
|
+
* @param {Uint8Array|ArrayBuffer|DataView} input Candidate MP4 bytes.
|
|
164
|
+
* @returns {boolean} True when an MP4-compatible ftyp box is present.
|
|
165
|
+
*/
|
|
166
|
+
static isMP4(input) {
|
|
167
|
+
try {
|
|
168
|
+
return isMP4(toBytes(input));
|
|
169
|
+
} catch {
|
|
170
|
+
return false;
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
/**
|
|
175
|
+
* Emit targets for this format (canonical frozen enum).
|
|
176
|
+
*/
|
|
177
|
+
static Output = Object.freeze({
|
|
178
|
+
VIDEO: OUTPUT_VIDEO,
|
|
179
|
+
RAW: OUTPUT_RAW,
|
|
180
|
+
JSON: OUTPUT_JSON
|
|
181
|
+
});
|
|
182
|
+
static OUTPUT_MP4_JSON = "mp4Json";
|
|
183
|
+
static type = Object.freeze(["audio", "video"]);
|
|
184
|
+
static mediaTypes = Object.freeze(["audio", "video"]);
|
|
185
|
+
static inputTypes = Object.freeze(["mp4", "m4v", "m4a"]);
|
|
186
|
+
static outputTypes = Object.freeze([OUTPUT_VIDEO]);
|
|
187
|
+
static debugOutputTypes = Object.freeze(["mp4Json", OUTPUT_RAW]);
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
export { CjsMp4Format };
|
|
191
|
+
//# sourceMappingURL=CjsMp4Format.js.map
|