use ebml::{matroska::MatroskaTag, read::EbmlReader, write::EbmlWriter}; use std::{ fs::File, io::{stdin, stdout, BufReader, BufWriter}, }; fn main() -> anyhow::Result<()> { env_logger::init_from_env("LOG"); let path = std::env::args().skip(1).next().unwrap(); let mut r = EbmlReader::new(BufReader::new(File::open(path)?)); let mut w = EbmlWriter::new(BufWriter::new(stdout()), 0); // r.seek( // 631147167 + 52, // ebml::matroska::MatroskaTag::Cues(Master::Start), // ) // .unwrap(); while let Some(tag) = r.next() { let tag = tag?; // println!("{} {tag:?}", r.position); match tag { tag @ MatroskaTag::SeekHead(_) => { eprintln!("{:?}", r.collect_master(tag)); } tag @ MatroskaTag::Cues(_) => { eprintln!("{:?}", r.collect_master(tag)); } tag => { w.write_tag(&tag)?; } } } Ok(()) }