Skip to main content

Validation rules

The application organizes its validation rules into four rule types so you can understand whether a failure comes from packet structure, stream meaning, timing behavior, or relationships across layers.

Validation types

Test types

🏢 Structural tests

Structural rules verify framing, packet syntax, required fields, and low-level integrity so the transport stream and carried metadata can be parsed reliably.

🧠 Semantic tests

Semantic rules verify that the decoded content makes sense, such as required fields being present or referenced streams actually existing in the transport.

🕒 Temporal tests

Temporal rules verify cadence, recurrence, monotonicity, and rate over time across MPEG-TS and KLV timelines.

📚 Cross-Layer tests

Cross-Layer rules compare information from more than one layer, such as transport timing, PES timing, and metadata timestamps, to detect drift or alignment errors that are invisible within a single layer.

⚙️ Validation rules configuration

Select Validation rules in the menu to configure which tests are active during inspection.
Use this page to review and adjust the enabled rules separately for the two main validation groups:

  • MPEG-TS tests for transport-stream structure, signaling, timing, and cross-layer timing checks
  • KLV tests for metadata packet structure, required fields, timing behavior, and stream-to-metadata alignment

You can use the page to select only the specific tests you want the application to run for each group. This is useful when you want to focus on a narrower validation scope, compare rule sets, or temporarily disable checks that are not relevant to the current file or workflow.

Validation rules

🎬 MPEG-TS

The MPEG-TS rules focus on transport framing, PSI signaling, packet cadence, and timing relationships inside the transport stream.

Structural rules in MPEG-TS

Sync Byte

Confirms MPEG-TS packet alignment by finding 0x47 sync bytes at a consistent 188- or 204-byte spacing and resynchronizing after corruption.

Detailed page: Sync Byte

Continuity Counter

Checks the transport-stream continuity counter so lost, duplicated, or reordered packets can be detected on a PID.

Detailed page: Continuity Counter

Transport Error Indicator

Reports MPEG-TS packets whose transport error indicator bit is set, signaling corrupted transport data.

Detailed page: Transport Error Indicator

PSI Tables

Validates that Program Specific Information tables can be found and used to discover programs and their metadata inside the transport stream.

Detailed page: PSI Tables

PSI Tables CRC

Validates that PSI table sections with CRC32 fields pass their CRC check during MPEG-TS demux.

Detailed page: PSI Tables CRC

PES Length Validation

Checks that PES_packet_length matches the observed PES packet payload size.

Detailed page: PES Length Validation

Semantic rules in MPEG-TS

PMT Referencing Non-existing Streams

Checks that every elementary PID declared in the PMT is backed by packets that are actually present in the stream.

Detailed page: PMT Referencing Non-existing Streams

Reserved PID Usage

Checks that PAT and PMT declarations do not assign PMT, PCR, or elementary streams to reserved MPEG-TS PIDs.

Detailed page: Reserved PID Usage

Temporal rules in MPEG-TS

PAT Interval

Checks that Program Association Table packets recur within the configured profile interval.

Detailed page: PAT Interval

PMT Interval

Checks that Program Map Table packets recur within the expected maximum interval.

Detailed page: PMT Interval

Duplicate Packet Detection

Detects consecutive duplicate MPEG-TS packets when the same PID, continuity counter, and payload appear twice.

Detailed page: Duplicate Packet Detection

PCR Monotonicity

Checks that Program Clock Reference values increase monotonically on the PMT-declared PCR PID.

Detailed page: PCR Monotonicity

PCR Interval

Checks that Program Clock Reference values appear within the selected MPEG-TS profile interval.

Detailed page: PCR Interval

Max PTS Interval

Detects PES streams whose PTS repetition period exceeds the ETSI TR 101-290 guideline threshold.

Detailed page: Max PTS Interval

PTS/DTS Monotonicity

Checks that PES presentation and decode timestamps do not move backward on the same PID, except where B-frame ordering allows it.

Detailed page: PTS/DTS Monotonicity

Cross-Layer rules in MPEG-TS

PCR-PTS Drift

Detects slow drift between the PCR clock and the video timing timeline after removing the initial clock offset.

Detailed page: PCR-PTS Drift

📡KLV

The KLV rules focus on MISB ST 0601 packets carried inside the stream, including packet structure, required tag usage, timing behavior, and alignment with transport timing.

Structural rules in KLV

Universal Key

Checks that each declared KLV stream contains at least one decodable MISB ST 0601 packet with the expected universal key.

Detailed page: Universal Key

Checksum

Validates checksum fields when they are present in MISB ST 0601 packets.

Detailed page: Checksum

Raw KLV Decode

Checks that KLV payload buffers form complete packets that can be decoded into raw KLV items.

Detailed page: Raw KLV Decode

Security Local Set Decode

Checks that MISB ST 0102 security metadata carried in MISB ST 0601 Tag 48 decodes as a valid BER-tagged local set.

Detailed page: Security Local Set Decode

Security Metadata Revision Detect

Checks that each MISB ST 0102 security local set resolves to a known revision, with explicit revision 3 fallback when Tag 22 is absent.

Detailed page: Security Metadata Revision Detect

Security Metadata Required Tags

Checks that each MISB ST 0102 security local set contains the required tags for its resolved revision.

Detailed page: Security Metadata Required Tags

Security Metadata Unknown Tag for Revision

Detects MISB ST 0102 tags that are not defined for the resolved security metadata revision.

Detailed page: Security Metadata Unknown Tag for Revision

Security Metadata Field Decode

Checks that known MISB ST 0102 field values can be decoded successfully according to their tag-specific field codec.

Detailed page: Security Metadata Field Decode

VMTI Local Set Decode

Checks that MISB ST 0903 VMTI local sets carried in MISB ST 0601 Tag 74 decode as valid BER-tagged local sets.

Detailed page: VMTI Local Set Decode

VMTI Revision Detect

Checks that MISB ST 0903 Tag 4 resolves to a known VMTI revision.

Detailed page: VMTI Revision Detect

VMTI Unknown Tag for Revision

Detects MISB ST 0903 VMTI local sets whose root tags are not defined for the resolved revision.

Detailed page: VMTI Unknown Tag for Revision

VMTI Field Decode

Checks that known MISB ST 0903 root-field values can be decoded successfully according to their field codec.

Detailed page: VMTI Field Decode

Semantic rules in KLV

Mandatory Fields

Checks that MISB ST 0601 packets contain Tag 2, Tag 65, and Tag 1, with Tag 2 first and Tag 1 last.

Detailed page: Mandatory Fields

Duplicate Tags in One Packet

Detects duplicate MISB ST 0601 tags within a single packet.

Detailed page: Duplicate Tags in One Packet

Unknown Tag for Revision

Detects MISB ST 0601 packets whose highest observed tag exceeds the highest tag allowed by the packet revision declared in Tag 65.

Detailed page: Unknown Tag for Revision

Security Metadata Duplicate Tags

Detects duplicate MISB ST 0102 tags within a single security local set carried in MISB ST 0601 Tag 48.

Detailed page: Security Metadata Duplicate Tags

Security Metadata Field Dependencies

Checks MISB ST 0102 coding-method dependencies between classifying-country and object-country fields.

Detailed page: Security Metadata Field Dependencies

VMTI Duplicate Tags

Detects duplicate MISB ST 0903 root tags within a single VMTI local set.

Detailed page: VMTI Duplicate Tags

VMTI Field Dependencies

Checks MISB ST 0903 target counts, frame dimensions, references, and tracker timestamps for internal consistency.

Detailed page: VMTI Field Dependencies

MISMMS

Checks that KLV metadata includes all required MISMMS (Mission Summary) fields, with correct formatting and no duplicates or conflicts, as per STANAG 4609/MISB requirements.

Detailed page: MISMMS

MISMMS/ST0601 Packet Identity

Checks that the claimed MISMMS stream is carried in decodable MISB ST 0601 KLV packets with the expected ST 0601 universal label.

Detailed page: MISMMS/ST0601 Packet Identity

KLV Packet Integrity

Checks BER length, packet completeness, and checksum correctness for claimed MISMMS packets.

Detailed page: KLV Packet Integrity

Per-packet ST 0601 Core Items

Checks that each claimed MISMMS packet carries Tag 2, Tag 65, and Tag 1, with Tag 2 first and Tag 1 last.

Detailed page: Per-packet ST 0601 Core Items

Top-level Field Length/Type Conformance

Checks that top-level MISMMS items present in the stream conform to the MISB ST 0902 Table 1 length and type requirements.

Detailed page: Top-level Field Length/Type Conformance

No ZLI Credit

Checks for top-level Zero-Length Items (ZLI) that cannot be used to satisfy MISB ST 0902 minimum reporting requirements.

Detailed page: No ZLI Credit

Required Top-level Item Set

Checks that the claimed MISMMS stream reports the required non-conditional top-level MISB ST 0902 items somewhere in the stream.

Detailed page: Required Top-level Item Set

Inclusive-OR Groups

Checks that the claimed MISMMS stream reports at least one member from each MISB ST 0902 inclusive-OR metadata group.

Detailed page: Inclusive-OR Groups

Exclusive-OR Height Rule

Checks that a claimed MISMMS packet does not carry both Tag 75 and Tag 104 in the same packet.

Detailed page: Exclusive-OR Height Rule

Motion Imagery Core Identifier Present

Checks that the claimed MISMMS stream reports Tag 94 and that every observed Tag 94 payload is 50 bytes long.

Detailed page: Motion Imagery Core Identifier Present

Temporal rules in KLV

Timestamp Monotonicity

Checks that MISB ST 0601 Tag 2 Precision Time Stamp values increase strictly without backward jumps.

Detailed page: Timestamp Monotonicity

30-second Reporting Continuity

Checks that every required MISMMS item, inclusive-OR group, and Tag 94 is reported at least once every 30 seconds using Tag 2 timestamps.

Detailed page: 30-second Reporting Continuity

30-second Continuity Excluding ZLI

Checks the same 30-second MISMMS continuity requirement after ignoring Zero-Length Item occurrences.

Detailed page: 30-second Continuity Excluding ZLI

MISMMS Tag 2 Monotonicity

Checks that claimed MISMMS Tag 2 Precision Time Stamp values increase monotonically so the reporting timeline stays trustworthy.

Detailed page: MISMMS Tag 2 Monotonicity

Advisory 10-second Constant-item Cadence

Warns when constant MISMMS items such as Tags 3, 10, 11, 12, and 94 are not refreshed within 10 seconds.

Detailed page: Advisory 10-second Constant-item Cadence

Packet Rate Consistency

Checks that decoded MISB ST 0601 packet rate stays within the configured packets-per-second range over time.

Detailed page: Packet Rate Consistency

Cross-Layer rules in KLV

KLV Type

Checks that declared ASYNC_KLV streams do not carry PES PTS values and declared SYNC_KLV streams do.

Detailed page: KLV Type

Stream vs KLV Drift

Checks that PCR, PES PTS when present, and normalized MISB ST 0601 Tag 2 time stay aligned without excessive drift.

Detailed page: Stream vs KLV Drift

Embedded VMTI Parent Metadata

Checks that MISB ST 0601 packets carrying embedded MISB ST 0903 VMTI in Tag 74 also carry Tag 2, Tag 23, and Tag 24 on the parent packet.

Detailed page: Embedded VMTI Parent Metadata (MISB ST 0903)

MISMMS Embedded VMTI Parent Metadata

Checks that claimed MISMMS packets carrying embedded MISB ST 0903 VMTI in Tag 74 also preserve Tag 2, Tag 23, and Tag 24 on the parent packet.

Detailed page: Embedded VMTI Parent Metadata (MISB ST 0902)