use mpeg_pes::{PesPacket, StreamId};
fn main() {
let bytes = [
0x00, 0x00, 0x01, 0xE0, 0x00, 0x0A, 0x80, 0x80, 0x05, 0x21, 0x00, 0x01, 0x00, 0x01, 0xAA, 0xBB, ];
let pkt = PesPacket::parse(&bytes).expect("valid PES packet");
println!("stream_id : {:#04X}", pkt.stream_id.0);
println!("is_video : {}", pkt.stream_id == StreamId(0xE0));
println!("packet_length : {}", pkt.pes_packet_length);
let header = pkt
.header
.as_ref()
.expect("video PES carries an optional header");
match header.pts {
Some(pts) => println!(
"PTS : {} ticks ({:.6}s)",
pts.ticks(),
pts.seconds()
),
None => println!("PTS : (none)"),
}
println!("payload : {:02X?}", pkt.payload);
}