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.