docs: fix m4a mime type and document exact file-type detection bytes
This commit is contained in:
@@ -80,9 +80,15 @@ Reuses the existing global `JOB_TIMEOUT_MS` (60s) in `src/worker.js` — no new
|
|||||||
|
|
||||||
## `src/mime.js`
|
## `src/mime.js`
|
||||||
|
|
||||||
`OUTPUT_MIME_TYPES` additions: `mp3: 'audio/mpeg'`, `wav: 'audio/wav'`, `ogg: 'audio/ogg'`, `flac: 'audio/flac'`, `aac: 'audio/aac'`, `m4a: 'audio/mp4'`.
|
`OUTPUT_MIME_TYPES` additions: `mp3: 'audio/mpeg'`, `wav: 'audio/wav'`, `ogg: 'audio/ogg'`, `flac: 'audio/flac'`, `aac: 'audio/aac'`, `m4a: 'audio/x-m4a'` (confirmed against `file-type`'s own `ftyp`-box brand-major switch in `source/index.js`, which maps the `M4A` brand to `mime: 'audio/x-m4a'` — matching that here keeps the input-detected mime and the output-served mime consistent for round-trip m4a jobs).
|
||||||
|
|
||||||
`resolveInputFormat`/`normalizeFormat`: no changes needed. Confirmed by reading the installed `file-type` v22's `source/supported.js` — `mp3`, `wav`, `ogg`, `flac`, `aac`, `m4a` are all listed verbatim as detectable extensions, each matching our declared format string exactly (unlike archive's `tar.gz` → `gz` outer-layer aliasing, there's no alias mapping to add here).
|
`resolveInputFormat`/`normalizeFormat`: no changes needed. Confirmed by reading the installed `file-type` v22's `source/index.js` detection logic directly (not just the extension list in `source/supported.js`) for all six formats — each reports `ext` exactly matching our declared format string, so the existing identity-fallback comparison in `normalizeFormat` already works with no alias mapping to add (unlike archive's `tar.gz` → `gz` outer-layer aliasing):
|
||||||
|
- `wav`: `RIFF....WAVE` (bytes 0-3 `RIFF`, bytes 8-11 `WAVE`)
|
||||||
|
- `flac`: `fLaC` 4-byte magic
|
||||||
|
- `ogg`: `OggS` + 28 bytes ignored + an 8-byte packet-type field starting `\x01vorbis`
|
||||||
|
- `mp3`: MPEG frame sync — byte0 `0xFF`, byte1 masked `0xE0` (sync), then byte1 masked `0x06` == `0x02` (layer 3)
|
||||||
|
- `aac`: MPEG frame sync — byte0 `0xFF`, byte1 masked `0xE0` (sync), then byte1 masked `0x16` == `0x10` (ADTS, not layer 3)
|
||||||
|
- `m4a`: ISO-BMFF `ftyp` box — bytes 4-7 `ftyp`, bytes 8-11 major brand `M4A ` (space-padded)
|
||||||
|
|
||||||
## Registration wiring
|
## Registration wiring
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user