diff options
Diffstat (limited to 'remuxer')
-rw-r--r-- | remuxer/Cargo.toml | 3 | ||||
-rw-r--r-- | remuxer/src/lib.rs | 135 |
2 files changed, 67 insertions, 71 deletions
diff --git a/remuxer/Cargo.toml b/remuxer/Cargo.toml index e98b3f7..4327779 100644 --- a/remuxer/Cargo.toml +++ b/remuxer/Cargo.toml @@ -8,4 +8,5 @@ tokio = { version = "1.24.1", features = ["io-util"] } jellycommon = { path = "../common" } anyhow = "1.0.68" -env_logger = "0.10.0" +log = "0.4.17" + diff --git a/remuxer/src/lib.rs b/remuxer/src/lib.rs index aa22b3b..749e04f 100644 --- a/remuxer/src/lib.rs +++ b/remuxer/src/lib.rs @@ -1,10 +1,5 @@ use jellycommon::ItemInfo; -use log::{debug, info}; -use std::{fs::File, io::Write, path::PathBuf, sync::Arc}; -use webm_iterable::{ - matroska_spec::{Block, Master, MatroskaSpec}, - WebmIterator, WebmWriter, -}; +use std::{io::Write, path::PathBuf, sync::Arc}; pub struct RemuxerContext {} @@ -21,73 +16,73 @@ impl RemuxerContext { item: ItemInfo, selection: Vec<u64>, ) -> anyhow::Result<()> { - let source_path = path_base.join(item.source.path); - info!("remuxing {source_path:?} to have tracks {selection:?}"); - let mut input = File::open(source_path)?; + // let source_path = path_base.join(item.source.path); + // info!("remuxing {source_path:?} to have tracks {selection:?}"); + // let mut input = File::open(source_path)?; - let tags = WebmIterator::new(&mut input, &[MatroskaSpec::TrackEntry(Master::Start)]); - let mut output = WebmWriter::new(writer); + // let tags = WebmIterator::new(&mut input, &[MatroskaSpec::TrackEntry(Master::Start)]); + // let mut output = WebmWriter::new(writer); - let mut tscale = None; - let mut duration = None; - let mut ignore = false; + // let mut tscale = None; + // let mut duration = None; + // let mut ignore = false; - for tag in tags { - let tag = tag.unwrap(); - match tag { - MatroskaSpec::SeekHead(Master::Start) | MatroskaSpec::Cues(Master::Start) => { - ignore = true - } - MatroskaSpec::SeekHead(Master::End) | MatroskaSpec::Cues(Master::End) => { - ignore = false - } - MatroskaSpec::TrackEntry(master) => { - let children = master.get_children(); - let mut number = None; - for c in &children { - if let MatroskaSpec::TrackNumber(n) = c { - number = Some(*n) - } - } - let number = number.unwrap(); - if selection.contains(&number) { - output.write(&MatroskaSpec::TrackEntry(Master::Full(children)))?; - } - } - MatroskaSpec::Block(ref data) => { - let data: &[u8] = &data; - let block: Block = data.try_into()?; - if selection.contains(&block.track) { - output.write(&tag)?; - } - } - MatroskaSpec::SimpleBlock(ref data) => { - let data: &[u8] = &data; - let block: Block = data.try_into()?; - if selection.contains(&block.track) { - output.write(&tag)?; - } - } - MatroskaSpec::Info(Master::Start) => (), - MatroskaSpec::TimestampScale(n) => tscale = Some(n), - MatroskaSpec::Duration(n) => duration = Some(n), - MatroskaSpec::Info(Master::End) => { - output.write(&MatroskaSpec::Info(Master::Full(vec![ - MatroskaSpec::TimestampScale(tscale.unwrap()), - MatroskaSpec::Title(item.title.clone()), - MatroskaSpec::Duration(duration.unwrap()), - MatroskaSpec::MuxingApp("jellyremux".to_string()), - MatroskaSpec::WritingApp("jellything".to_string()), - ])))?; - } - x => { - if !ignore { - debug!("{x:?}"); - output.write(&x)?; - } - } - } - } + // for tag in tags { + // let tag = tag.unwrap(); + // match tag { + // MatroskaSpec::SeekHead(Master::Start) | MatroskaSpec::Cues(Master::Start) => { + // ignore = true + // } + // MatroskaSpec::SeekHead(Master::End) | MatroskaSpec::Cues(Master::End) => { + // ignore = false + // } + // MatroskaSpec::TrackEntry(master) => { + // let children = master.get_children(); + // let mut number = None; + // for c in &children { + // if let MatroskaSpec::TrackNumber(n) = c { + // number = Some(*n) + // } + // } + // let number = number.unwrap(); + // if selection.contains(&number) { + // output.write(&MatroskaSpec::TrackEntry(Master::Full(children)))?; + // } + // } + // MatroskaSpec::Block(ref data) => { + // let data: &[u8] = &data; + // let block: Block = data.try_into()?; + // if selection.contains(&block.track) { + // output.write(&tag)?; + // } + // } + // MatroskaSpec::SimpleBlock(ref data) => { + // let data: &[u8] = &data; + // let block: Block = data.try_into()?; + // if selection.contains(&block.track) { + // output.write(&tag)?; + // } + // } + // MatroskaSpec::Info(Master::Start) => (), + // MatroskaSpec::TimestampScale(n) => tscale = Some(n), + // MatroskaSpec::Duration(n) => duration = Some(n), + // MatroskaSpec::Info(Master::End) => { + // output.write(&MatroskaSpec::Info(Master::Full(vec![ + // MatroskaSpec::TimestampScale(tscale.unwrap()), + // MatroskaSpec::Title(item.title.clone()), + // MatroskaSpec::Duration(duration.unwrap()), + // MatroskaSpec::MuxingApp("jellyremux".to_string()), + // MatroskaSpec::WritingApp("jellything".to_string()), + // ])))?; + // } + // x => { + // if !ignore { + // debug!("{x:?}"); + // output.write(&x)?; + // } + // } + // } + // } Ok(()) } } |