#![cfg_attr(not(feature = "std"), no_std)]
#![forbid(unsafe_code)]
#![cfg_attr(docsrs, feature(doc_cfg))]
extern crate alloc;
mod container_codec;
mod dash_validator;
mod diagnostics;
mod hls_validator;
mod playlist;
mod report;
mod watch;
pub use container_codec::check_container_codec;
pub use dash_validator::check_dash_mpd;
pub use diagnostics::cc_anomaly::CcAnomalyCheck;
pub use diagnostics::codec_signalling::CodecSignallingCheck;
pub use diagnostics::fps_cadence::FpsCadenceCheck;
pub use diagnostics::interlace::InterlaceCheck;
pub use diagnostics::param_sets::ParamSetsCheck;
pub use diagnostics::pat_pmt_version::PatPmtVersionCheck;
pub use diagnostics::pcr_check::PcrCheck;
pub use diagnostics::pts_check::PtsCheck;
pub use diagnostics::scte35_check::Scte35Check;
pub use diagnostics::sync_byte::SyncByteCheck;
pub use hls_validator::check_hls_playlist;
pub use playlist::check_playlist;
pub use report::{Finding, Location, Report, Severity};
pub use watch::WatchState;
pub trait Diagnostic {
fn run(&self, ts: &[u8], report: &mut Report);
}
pub fn run_all(ts: &[u8], diagnostics: &[&dyn Diagnostic], report: &mut Report) {
for diag in diagnostics {
diag.run(ts, report);
}
}
#[cfg(feature = "cli")]
pub mod cli;