Skip to content

SMPTE RP 217:2001 requirement trace

This trace covers the normative transport-stream branch of the official SMPTE publication, Nonsynchronized Mapping of KLV Packets into MPEG-2 Systems Streams, approved 18 September 2001. The four-page document is retained locally with its publisher URL and SHA-256 identity in the standards manifest.

Requirement Implementation/test State
§4, KLV PES uses private_stream_1 stream ID 0xBD TransportMuxer.mux_async_klv, MetadataStreamDecoder writer and rejection tests Verified
§4.1.1, each TS KLV stream belongs to a program and is listed in its PMT program-aware TransportMuxer/TransportDemuxer; ST 1402 program-profile validation Verified
§4.1.1, stream type is private PES data 0x06 asynchronous_klv_stream, PMT parser and validator tests Verified
§4.1.1, elementary descriptor loop carries registration identifier KLVA (0x4B4C5641) asynchronous_klv_stream, find_klv_streams, profile rejection tests Verified
§4.2, first KLV item is aligned with the beginning of a PES and subsequent complete items have no filler writer accepts exactly one complete Universal KLV item per call; receiver incrementally parses adjacent items Verified writer profile and receiver behavior
§4.2, a KLV item that fits is not split across PES packets default writer payload capacity is the full bounded private PES capacity Verified
§4.2, PES_packet_length is greater than zero bounded writer plus explicit receiver rejection of zero Verified
§4.2, PTS_DTS_flags is 00 and ESCR_flag is zero timestamp-free writer plus decoded flag/rejection tests Verified
§4.2/§4.3, data_alignment_indicator marks a PES whose payload begins a KLV item and is clear for continuation writer/receiver boundary and malformed-indicator tests Verified
§4.3, an oversized KLV item may span PES packets; each segment contains only that item and segments do not interleave one-item-at-a-time bounded writer and per-PID incremental receiver Verified
§4.1.2, MPEG Program Stream carriage Not implemented; this library currently targets ST 1402 MPEG-2 Transport Streams

RP 217 permits multiple complete KLV items in one PES but does not require that packing optimization. The writer deliberately emits one item per bounded PES, which satisfies the no-filler and no-small-item-split rules and makes streaming failure isolation explicit. The receiver accepts multiple adjacent complete items in a conforming PES.

The informative annexes do not add conformance requirements. In particular, Annex B explains why the practice excludes synchronized KLV; the separate synchronous carriage implemented by this package is traced to MISB ST 1402.2 and H.222.0 metadata access-unit syntax.