Skip to content

Upgrade Extract Audio Metadata handling - #2356

Open
d0s1nt wants to merge 9 commits into
gchq:masterfrom
d0s1nt:add-extract-audio-metadata
Open

Upgrade Extract Audio Metadata handling#2356
d0s1nt wants to merge 9 commits into
gchq:masterfrom
d0s1nt:add-extract-audio-metadata

Conversation

@d0s1nt

@d0s1nt d0s1nt commented May 2, 2026

Copy link
Copy Markdown
Contributor

Upgrades the merged Extract Audio Metadata operation from #2170 with richer C2PA/JUMBF/CBOR extraction, cleaner CyberChef table output, and expanded tests.\n\nVerified: 42/42 operation tests pass; production build passes.

d0s1nt and others added 9 commits February 2, 2026 17:34
New operation that extracts metadata from 10 audio formats:
MP3 (ID3v2/ID3v1), WAV/BWF/BW64 (RIFF INFO/bext/iXML/axml),
FLAC (Vorbis Comment), OGG Vorbis, Opus, AAC (ADTS), AC3,
WMA (ASF), MP4/M4A, and AIFF. Outputs normalized JSON,
rendered as an HTML table via present().

Includes 28 tests covering all formats with deep validation of
container detection, MIME types, common tags, format-specific
sections (ID3v2 frames, Vorbis comments, ADTS fields, AC3 BSI,
ASF Content Description), and technical metadata values.
Split the monolithic ExtractAudioMetadata.mjs (1,550 lines) into four
focused files totalling 990 lines:

- src/core/lib/AudioBytes.mjs: byte-reading and text-decoding utilities
- src/core/lib/AudioMetaSchema.mjs: report skeleton and container detection
- src/core/lib/AudioParsers.mjs: all 9 format parsers and internal helpers
- src/core/operations/ExtractAudioMetadata.mjs: operation class only

Also replaces infoURL with a Wikipedia link per review feedback.

No functional changes — all 1,805 tests pass, ESLint clean.
@d0s1nt d0s1nt mentioned this pull request May 2, 2026
4 tasks
@GCHQDeveloper581

Copy link
Copy Markdown
Contributor

Hi,

It looks like you've continued development on your existing branch rather than re-branching off master. The result is that we've got a lot of the old commits repeated (because we squash the commits when merging) and this is causing merge conflicts.

Could you start again from the master branch (making sure that your fork/local master is fully synced up to ours).

You may be able to cherry pick the latest commit onto your new branch, or alternatively copy the updated files from the old into the new branch and re-commit. (Apologies if I am over-explaining git techniques with which you are readily familiar)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants