[[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."