use broadcast_common::{Parse, Serialize};
use st337::{Burst, DataMode};
fn main() {
let path = concat!(
env!("CARGO_MANIFEST_DIR"),
"/tests/fixtures/eac3_frame0.bin"
);
let payload = std::fs::read(path).expect("fixture must exist");
let burst = Burst::new(
21, DataMode::Mode16,
false,
0,
0,
None,
&payload,
)
.expect("build burst");
let bytes = burst.to_bytes();
let parsed = Burst::parse(&bytes).expect("parse burst");
println!("data_type: {}", parsed.preamble.data_type);
println!("data_mode: {}", parsed.preamble.data_mode);
println!("error_flag: {}", parsed.preamble.error_flag);
println!("data_stream_number: {}", parsed.preamble.data_stream_number);
println!(
"length_code: {} bits ({} payload bytes)",
parsed.preamble.length_code,
parsed.payload.len()
);
assert_eq!(
parsed.payload, payload,
"byte-identical real E-AC-3 payload"
);
println!("payload matches the real E-AC-3 fixture byte-for-byte.");
}