diff options
Diffstat (limited to 'ebml/src/bin')
-rw-r--r-- | ebml/src/bin/experiment.rs | 33 | ||||
-rw-r--r-- | ebml/src/bin/mkvdump.rs | 14 |
2 files changed, 40 insertions, 7 deletions
diff --git a/ebml/src/bin/experiment.rs b/ebml/src/bin/experiment.rs index c510bb5..c850753 100644 --- a/ebml/src/bin/experiment.rs +++ b/ebml/src/bin/experiment.rs @@ -1,12 +1,31 @@ -use ebml::read::EbmlReader; -use std::{fs::File, io::BufReader}; +use ebml::{matroska::MatroskaTag, read::EbmlReader, write::EbmlWriter}; +use std::{ + fs::File, + io::{stdin, stdout, BufReader, BufWriter}, +}; -fn main() { +fn main() -> anyhow::Result<()> { env_logger::init_from_env("LOG"); - let f = File::open(std::env::args().skip(1).next().unwrap()).unwrap(); - let mut r = EbmlReader::new(BufReader::new(f)); + 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); - for tag in r { - println!("{:?}", tag); + // r.seek( + // 631147167 + 52, + // ebml::matroska::MatroskaTag::Cues(Master::Start), + // ) + // .unwrap(); + + while let Some(tag) = r.next() { + let tag = tag?; + w.write_tag(&tag)?; + // println!("{} {tag:?}", r.position) + // match tag { + // tag @ MatroskaTag::SeekHead(_) => { + // println!("{:?}", r.collect_master(tag)); + // } + // _ => (), + // } } + Ok(()) } diff --git a/ebml/src/bin/mkvdump.rs b/ebml/src/bin/mkvdump.rs new file mode 100644 index 0000000..ae621e6 --- /dev/null +++ b/ebml/src/bin/mkvdump.rs @@ -0,0 +1,14 @@ +use ebml::read::EbmlReader; +use std::{fs::File, io::BufReader}; + +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)?)); + + while let Some(tag) = r.next() { + let tag = tag?; + println!("{} {tag:?}", r.position) + } + Ok(()) +} |