diff options
Diffstat (limited to 'matroska/src/bin')
-rw-r--r-- | matroska/src/bin/experiment.rs | 32 | ||||
-rw-r--r-- | matroska/src/bin/mkvdump.rs | 18 |
2 files changed, 50 insertions, 0 deletions
diff --git a/matroska/src/bin/experiment.rs b/matroska/src/bin/experiment.rs new file mode 100644 index 0000000..caeae09 --- /dev/null +++ b/matroska/src/bin/experiment.rs @@ -0,0 +1,32 @@ +use jellymatroska::{matroska::MatroskaTag, read::EbmlReader, write::EbmlWriter}; +use std::{ + fs::File, + io::{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 => { + if MatroskaTag::is_master(tag.id())? { + eprintln!("{tag:?}"); + } + w.write_tag(&tag)?; + } + } + } + Ok(()) +} diff --git a/matroska/src/bin/mkvdump.rs b/matroska/src/bin/mkvdump.rs new file mode 100644 index 0000000..d5b6de4 --- /dev/null +++ b/matroska/src/bin/mkvdump.rs @@ -0,0 +1,18 @@ +use jellymatroska::{matroska::MatroskaTag, 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?; + match tag { + MatroskaTag::SimpleBlock(_) => (), + MatroskaTag::Block(_) => (), + _ => eprintln!("{} {tag:?}", r.position), + } + } + Ok(()) +} |