From f452df18749b13f9d83a6ea679361d195b4a9ae1 Mon Sep 17 00:00:00 2001 From: metamuffin Date: Sat, 14 Jan 2023 18:04:16 +0100 Subject: seeking and broken writing --- ebml/src/bin/experiment.rs | 33 ++++++++++++++++++++++++++------- 1 file changed, 26 insertions(+), 7 deletions(-) (limited to 'ebml/src/bin/experiment.rs') 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(()) } -- cgit v1.2.3-70-g09d2