aboutsummaryrefslogtreecommitdiff
path: root/ebml/src/bin
diff options
context:
space:
mode:
Diffstat (limited to 'ebml/src/bin')
-rw-r--r--ebml/src/bin/experiment.rs33
-rw-r--r--ebml/src/bin/mkvdump.rs14
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(())
+}