@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 { CjsJpegFormat, CjsJpegFormat as default } from './CjsJpegFormat.js';
|
|
2
|
-
//# sourceMappingURL=index.js.map
|
|
1
|
+
export { CjsJpegFormat, CjsJpegFormat as default } from './CjsJpegFormat.js';
|
|
2
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -1,192 +1,192 @@
|
|
|
1
|
-
import { DEFAULT_VALUES, normalizeValues, readWithValues, inspectWithValues, isSupportedWithValues, toJsonValue, isMP3, toBytes, OUTPUT_JSON, OUTPUT_RAW, OUTPUT_PCM, OUTPUT_AUDIO } from './core/helpers.js';
|
|
2
|
-
|
|
3
|
-
const FORMAT_NAME = "CjsMp3Format";
|
|
4
|
-
class CjsMp3Format {
|
|
5
|
-
#values = DEFAULT_VALUES;
|
|
6
|
-
|
|
7
|
-
/**
|
|
8
|
-
* Create a reusable MP3 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 {CjsMp3Format} This format profile.
|
|
21
|
-
*/
|
|
22
|
-
SetValues(options = {}) {
|
|
23
|
-
this.#values = normalizeValues(this.#values, {
|
|
24
|
-
inputType: "mp3",
|
|
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: "mp3",
|
|
39
|
-
...options
|
|
40
|
-
}, FORMAT_NAME);
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
/**
|
|
44
|
-
* Read MP3 bytes with this profile.
|
|
45
|
-
*
|
|
46
|
-
* @param {Uint8Array|ArrayBuffer|DataView} input MP3 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), "mp3");
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
/**
|
|
55
|
-
* Read MP3 bytes asynchronously with this profile.
|
|
56
|
-
*
|
|
57
|
-
* @param {Uint8Array|ArrayBuffer|DataView} input MP3 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 MP3 bytes without decoding audio frames.
|
|
67
|
-
*
|
|
68
|
-
* @param {Uint8Array|ArrayBuffer|DataView} input MP3 bytes.
|
|
69
|
-
* @param {object} [options] Per-call values.
|
|
70
|
-
* @returns {object} MP3 header metadata.
|
|
71
|
-
*/
|
|
72
|
-
Inspect(input, options = {}) {
|
|
73
|
-
return inspectWithValues(input, this.GetValues(options), "mp3");
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
/**
|
|
77
|
-
* Report whether MP3 input and requested output variants are supported.
|
|
78
|
-
*
|
|
79
|
-
* @param {Uint8Array|ArrayBuffer|DataView} input MP3 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), "mp3");
|
|
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 MP3 read.
|
|
99
|
-
*
|
|
100
|
-
* @param {Uint8Array|ArrayBuffer|DataView} input MP3 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: "mp3",
|
|
107
|
-
...options
|
|
108
|
-
}, FORMAT_NAME), "mp3");
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
/**
|
|
112
|
-
* One-shot asynchronous MP3 read.
|
|
113
|
-
*
|
|
114
|
-
* @param {Uint8Array|ArrayBuffer|DataView} input MP3 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 CjsMp3Format.read(input, options);
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
/**
|
|
123
|
-
* One-shot MP3 inspection.
|
|
124
|
-
*
|
|
125
|
-
* @param {Uint8Array|ArrayBuffer|DataView} input MP3 bytes.
|
|
126
|
-
* @param {object} [options] Inspect options.
|
|
127
|
-
* @returns {object} MP3 header metadata.
|
|
128
|
-
*/
|
|
129
|
-
static inspect(input, options = {}) {
|
|
130
|
-
return inspectWithValues(input, normalizeValues(DEFAULT_VALUES, {
|
|
131
|
-
inputType: "mp3",
|
|
132
|
-
...options
|
|
133
|
-
}, FORMAT_NAME), "mp3");
|
|
134
|
-
}
|
|
135
|
-
|
|
136
|
-
/**
|
|
137
|
-
* One-shot MP3 support probe.
|
|
138
|
-
*
|
|
139
|
-
* @param {Uint8Array|ArrayBuffer|DataView} input MP3 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: "mp3",
|
|
146
|
-
...options
|
|
147
|
-
}, FORMAT_NAME), "mp3");
|
|
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 MP3 file.
|
|
162
|
-
*
|
|
163
|
-
* @param {Uint8Array|ArrayBuffer|DataView} input Candidate MP3 bytes.
|
|
164
|
-
* @returns {boolean} True when ID3 or MPEG frame sync is present.
|
|
165
|
-
*/
|
|
166
|
-
static isMP3(input) {
|
|
167
|
-
try {
|
|
168
|
-
return isMP3(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
|
-
AUDIO: OUTPUT_AUDIO,
|
|
179
|
-
PCM: OUTPUT_PCM,
|
|
180
|
-
RAW: OUTPUT_RAW,
|
|
181
|
-
JSON: OUTPUT_JSON
|
|
182
|
-
});
|
|
183
|
-
static OUTPUT_MP3_JSON = "mp3Json";
|
|
184
|
-
static type = Object.freeze(["audio"]);
|
|
185
|
-
static mediaTypes = Object.freeze(["audio"]);
|
|
186
|
-
static inputTypes = Object.freeze(["mp3"]);
|
|
187
|
-
static outputTypes = Object.freeze([]);
|
|
188
|
-
static debugOutputTypes = Object.freeze(["mp3Json", OUTPUT_RAW]);
|
|
189
|
-
}
|
|
190
|
-
|
|
191
|
-
export { CjsMp3Format };
|
|
192
|
-
//# sourceMappingURL=CjsMp3Format.js.map
|
|
1
|
+
import { DEFAULT_VALUES, normalizeValues, readWithValues, inspectWithValues, isSupportedWithValues, toJsonValue, isMP3, toBytes, OUTPUT_JSON, OUTPUT_RAW, OUTPUT_PCM, OUTPUT_AUDIO } from './core/helpers.js';
|
|
2
|
+
|
|
3
|
+
const FORMAT_NAME = "CjsMp3Format";
|
|
4
|
+
class CjsMp3Format {
|
|
5
|
+
#values = DEFAULT_VALUES;
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Create a reusable MP3 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 {CjsMp3Format} This format profile.
|
|
21
|
+
*/
|
|
22
|
+
SetValues(options = {}) {
|
|
23
|
+
this.#values = normalizeValues(this.#values, {
|
|
24
|
+
inputType: "mp3",
|
|
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: "mp3",
|
|
39
|
+
...options
|
|
40
|
+
}, FORMAT_NAME);
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* Read MP3 bytes with this profile.
|
|
45
|
+
*
|
|
46
|
+
* @param {Uint8Array|ArrayBuffer|DataView} input MP3 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), "mp3");
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* Read MP3 bytes asynchronously with this profile.
|
|
56
|
+
*
|
|
57
|
+
* @param {Uint8Array|ArrayBuffer|DataView} input MP3 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 MP3 bytes without decoding audio frames.
|
|
67
|
+
*
|
|
68
|
+
* @param {Uint8Array|ArrayBuffer|DataView} input MP3 bytes.
|
|
69
|
+
* @param {object} [options] Per-call values.
|
|
70
|
+
* @returns {object} MP3 header metadata.
|
|
71
|
+
*/
|
|
72
|
+
Inspect(input, options = {}) {
|
|
73
|
+
return inspectWithValues(input, this.GetValues(options), "mp3");
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
/**
|
|
77
|
+
* Report whether MP3 input and requested output variants are supported.
|
|
78
|
+
*
|
|
79
|
+
* @param {Uint8Array|ArrayBuffer|DataView} input MP3 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), "mp3");
|
|
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 MP3 read.
|
|
99
|
+
*
|
|
100
|
+
* @param {Uint8Array|ArrayBuffer|DataView} input MP3 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: "mp3",
|
|
107
|
+
...options
|
|
108
|
+
}, FORMAT_NAME), "mp3");
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
/**
|
|
112
|
+
* One-shot asynchronous MP3 read.
|
|
113
|
+
*
|
|
114
|
+
* @param {Uint8Array|ArrayBuffer|DataView} input MP3 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 CjsMp3Format.read(input, options);
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
/**
|
|
123
|
+
* One-shot MP3 inspection.
|
|
124
|
+
*
|
|
125
|
+
* @param {Uint8Array|ArrayBuffer|DataView} input MP3 bytes.
|
|
126
|
+
* @param {object} [options] Inspect options.
|
|
127
|
+
* @returns {object} MP3 header metadata.
|
|
128
|
+
*/
|
|
129
|
+
static inspect(input, options = {}) {
|
|
130
|
+
return inspectWithValues(input, normalizeValues(DEFAULT_VALUES, {
|
|
131
|
+
inputType: "mp3",
|
|
132
|
+
...options
|
|
133
|
+
}, FORMAT_NAME), "mp3");
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
/**
|
|
137
|
+
* One-shot MP3 support probe.
|
|
138
|
+
*
|
|
139
|
+
* @param {Uint8Array|ArrayBuffer|DataView} input MP3 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: "mp3",
|
|
146
|
+
...options
|
|
147
|
+
}, FORMAT_NAME), "mp3");
|
|
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 MP3 file.
|
|
162
|
+
*
|
|
163
|
+
* @param {Uint8Array|ArrayBuffer|DataView} input Candidate MP3 bytes.
|
|
164
|
+
* @returns {boolean} True when ID3 or MPEG frame sync is present.
|
|
165
|
+
*/
|
|
166
|
+
static isMP3(input) {
|
|
167
|
+
try {
|
|
168
|
+
return isMP3(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
|
+
AUDIO: OUTPUT_AUDIO,
|
|
179
|
+
PCM: OUTPUT_PCM,
|
|
180
|
+
RAW: OUTPUT_RAW,
|
|
181
|
+
JSON: OUTPUT_JSON
|
|
182
|
+
});
|
|
183
|
+
static OUTPUT_MP3_JSON = "mp3Json";
|
|
184
|
+
static type = Object.freeze(["audio"]);
|
|
185
|
+
static mediaTypes = Object.freeze(["audio"]);
|
|
186
|
+
static inputTypes = Object.freeze(["mp3"]);
|
|
187
|
+
static outputTypes = Object.freeze([]);
|
|
188
|
+
static debugOutputTypes = Object.freeze(["mp3Json", OUTPUT_RAW]);
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
export { CjsMp3Format };
|
|
192
|
+
//# sourceMappingURL=CjsMp3Format.js.map
|