171 lines
4.1 KiB
TOML
171 lines
4.1 KiB
TOML
[[rule]]
|
|
id = "MOOV_ATOM_NOT_FOUND"
|
|
domain = "container.mp4"
|
|
severity = "severe"
|
|
confidence = 0.9
|
|
fix_tier = "reencode"
|
|
stop_scan = true
|
|
patterns = ["(?i)moov atom not found"]
|
|
notes = "MP4/MOV metadata is missing; file may be incomplete."
|
|
|
|
[[rule]]
|
|
id = "COULD_NOT_FIND_CODEC_PARAMS"
|
|
domain = "probe"
|
|
severity = "medium"
|
|
confidence = 0.6
|
|
fix_tier = "none"
|
|
stop_scan = false
|
|
patterns = ["(?i)could not find codec parameters"]
|
|
notes = "Insufficient probe data; consider higher analyzeduration/probesize."
|
|
|
|
[[rule]]
|
|
id = "INVALID_DATA_FOUND"
|
|
domain = "decode"
|
|
severity = "high"
|
|
confidence = 0.7
|
|
fix_tier = "reencode"
|
|
stop_scan = false
|
|
patterns = ["(?i)Invalid data found when processing input"]
|
|
notes = "Decoder encountered invalid data; may indicate corruption."
|
|
|
|
[[rule]]
|
|
id = "FILE_ENDED_PREMATURELY"
|
|
domain = "decode"
|
|
severity = "high"
|
|
confidence = 0.7
|
|
fix_tier = "reencode"
|
|
stop_scan = false
|
|
patterns = ["(?i)File ended prematurely"]
|
|
notes = "File appears truncated."
|
|
|
|
[[rule]]
|
|
id = "INVALID_NAL_UNIT_SIZE"
|
|
domain = "codec.h264"
|
|
severity = "severe"
|
|
confidence = 0.85
|
|
fix_tier = "reencode"
|
|
stop_scan = true
|
|
patterns = ["(?i)Invalid NAL unit size", "(?i)Error splitting the input into NAL units"]
|
|
notes = "H.264/HEVC bitstream corruption detected."
|
|
|
|
[[rule]]
|
|
id = "MISSING_PICTURE_ACCESS_UNIT"
|
|
domain = "codec.h264"
|
|
severity = "high"
|
|
confidence = 0.7
|
|
fix_tier = "reencode"
|
|
stop_scan = false
|
|
patterns = ["(?i)missing picture in access unit"]
|
|
notes = "Missing picture in access unit; possible corruption."
|
|
|
|
[[rule]]
|
|
id = "PPS_ID_OUT_OF_RANGE"
|
|
domain = "codec.hevc"
|
|
severity = "high"
|
|
confidence = 0.75
|
|
fix_tier = "reencode"
|
|
stop_scan = false
|
|
patterns = ["(?i)PPS id out of range", "(?i)Error parsing NAL unit"]
|
|
notes = "HEVC parameter set corruption detected."
|
|
|
|
[[rule]]
|
|
id = "SEI_TRUNCATED"
|
|
domain = "codec.h264"
|
|
severity = "low"
|
|
confidence = 0.5
|
|
fix_tier = "none"
|
|
stop_scan = false
|
|
patterns = ["(?i)SEI type .* truncated"]
|
|
notes = "SEI message truncated; often benign unless paired with decode errors."
|
|
|
|
[[rule]]
|
|
id = "NON_MONOTONOUS_DTS"
|
|
domain = "timestamp"
|
|
severity = "medium"
|
|
confidence = 0.6
|
|
fix_tier = "remux"
|
|
stop_scan = false
|
|
patterns = ["(?i)Non-monotonous DTS", "(?i)non monotonically increasing dts"]
|
|
notes = "Timestamp discontinuity detected."
|
|
|
|
[[rule]]
|
|
id = "DTS_DISCONTINUITY"
|
|
domain = "timestamp"
|
|
severity = "medium"
|
|
confidence = 0.6
|
|
fix_tier = "remux"
|
|
stop_scan = false
|
|
patterns = ["(?i)DTS discontinuity"]
|
|
notes = "Timestamp discontinuity detected."
|
|
|
|
[[rule]]
|
|
id = "PES_PACKET_SIZE_MISMATCH"
|
|
domain = "transport.ts"
|
|
severity = "medium"
|
|
confidence = 0.6
|
|
fix_tier = "remux"
|
|
stop_scan = false
|
|
patterns = ["(?i)PES packet size mismatch", "(?i)Packet corrupt"]
|
|
notes = "Transport stream corruption detected."
|
|
|
|
[[rule]]
|
|
id = "CONTINUITY_COUNTER_ERROR"
|
|
domain = "transport.ts"
|
|
severity = "low"
|
|
confidence = 0.4
|
|
fix_tier = "none"
|
|
stop_scan = false
|
|
patterns = ["(?i)continuity counter error"]
|
|
notes = "Continuity counter errors can be benign in segmented streams."
|
|
|
|
[[rule]]
|
|
id = "AAC_ADTS_HEADER_ERROR"
|
|
domain = "codec.aac"
|
|
severity = "medium"
|
|
confidence = 0.7
|
|
fix_tier = "reencode"
|
|
stop_scan = false
|
|
patterns = ["(?i)Error parsing ADTS frame header", "(?i)Error decoding AAC frame header"]
|
|
notes = "AAC bitstream errors detected."
|
|
|
|
[[rule]]
|
|
id = "MP3_HEADER_MISSING"
|
|
domain = "codec.mp3"
|
|
severity = "medium"
|
|
confidence = 0.6
|
|
fix_tier = "reencode"
|
|
stop_scan = false
|
|
patterns = ["(?i)Header missing"]
|
|
notes = "MP3 framing errors detected."
|
|
|
|
[[rule]]
|
|
id = "AC3_FRAME_SYNC_ERROR"
|
|
domain = "codec.ac3"
|
|
severity = "medium"
|
|
confidence = 0.6
|
|
fix_tier = "reencode"
|
|
stop_scan = false
|
|
patterns = ["(?i)frame sync error"]
|
|
notes = "AC-3 frame sync error detected."
|
|
|
|
[[rule]]
|
|
id = "EBML_HEADER_PARSING_FAILED"
|
|
domain = "container.mkv"
|
|
severity = "high"
|
|
confidence = 0.7
|
|
fix_tier = "reencode"
|
|
stop_scan = false
|
|
patterns = ["(?i)EBML header parsing failed"]
|
|
notes = "Matroska/WebM header parsing failed; file may be truncated."
|
|
|
|
[[rule]]
|
|
id = "FASTSTART_RECOMMENDED"
|
|
domain = "container.mp4"
|
|
severity = "low"
|
|
confidence = 0.4
|
|
fix_tier = "remux"
|
|
stop_scan = false
|
|
action = "faststart"
|
|
patterns = ["(?i)faststart"]
|
|
notes = "MP4 likely has moov atom at end; faststart remux recommended."
|