Applies to: Protocol and format interpretation for developers inspecting authorized media delivery.
The useful distinctions
- A codecs parameter can contain a list of codec identifiers.
- Commas separate identifiers in that list.
- Dot-separated components are interpreted within a codec's namespace.
Parse the outer list before individual identifiers
The synthetic field contains two codec identifiers inside one quoted parameter. Split that list at the codec-list level, then interpret each identifier according to its own definition. Do not treat every dot-separated component as another track. The AVC identifier and the MPEG-4 audio identifier use different parameter conventions even though both appear beside the same MP4 media type.
Keep declared capability requirements provisional
A codec string gives an announced requirement that can be compared with a decoder's documented capabilities. It is not a test result from that decoder, and it is not evidence that all sample data is valid. A publishing check should compare the announced list with the tracks actually present, preserving any mismatch. The example deliberately uses a short two-entry list rather than a long catalogue of codecs so the parsing boundary remains the main task. If an identifier has additional profile or level information, read those values under the relevant codec-specific rules. Applying one codec family's parameter grammar to another creates a confident-looking description that can be entirely wrong. Keep the comma-separated codec list intact before splitting its individual entries. A parser that first removes quoting without respecting the surrounding media-type grammar can confuse a list separator with unrelated parameter syntax.
Worked example · synthetic
The outer list has two entries: avc1.4d401f and mp4a.40.2. Their dot components belong to different codec namespaces and should be interpreted using their own registered conventions.
Synthetic text example; no network operation has been performed.
HTTP/MIME line endings are CRLF. Request URL context, where labelled, is commentary rather than a wire field. No message was transmitted.
Content-Type: video/mp4; codecs="avc1.4d401f,mp4a.40.2" Check the interpretation
- Preserve quoted comma-separated lists.
- Parse each codec family with its own grammar.
- Check the declaration against actual track entries.