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.