X-Git-Url: https://git.nihav.org/?p=nihav-tool.git;a=blobdiff_plain;f=src%2Fmain.rs;h=78c9fb09ec0bfe3057d6d2e7b8a2ba3398abab9f;hp=8280799a790bbc7b31af4a532eeee4369d6a1441;hb=HEAD;hpb=55d3e99fc4841c63564e337e5b7ec40559f1d19a diff --git a/src/main.rs b/src/main.rs index 8280799..78c9fb0 100644 --- a/src/main.rs +++ b/src/main.rs @@ -104,6 +104,8 @@ fn main() { let mut apfx: Option<&str> = None; let mut ignore_errors = false; let mut dump_frames = false; + let mut force_dmx: Option<&str> = None; + let mut demux_opts: Vec = Vec::new(); while (cur_arg < args.len()) && args[cur_arg].starts_with('-') { match args[cur_arg].as_str() { @@ -145,6 +147,17 @@ fn main() { } vpfx = Some(args[cur_arg].clone()); }, + "-demuxer" => { + cur_arg += 1; + if cur_arg == args.len() { + println!("name missing"); + return; + } + force_dmx = Some(&args[cur_arg]); + }, + "-print_mov_chunks" => { + demux_opts.push(NAOption{name: "print_chunks", value: NAValue::Bool(true) }); + }, "-ignerr" => { ignore_errors = true; }, "-dumpfrm" => { dump_frames = true; }, _ => { println!("unknown option {}", args[cur_arg]); return; }, @@ -179,7 +192,7 @@ fn main() { } let mut br = ByteReader::new(nfr.as_mut()); let full_reg = FullRegister::new(); - let mut demuxer = DemuxerObject::create(&mut br, &full_reg, name, is_raw); + let mut demuxer = DemuxerObject::create(&mut br, &full_reg, name, force_dmx, is_raw, &demux_opts); if demuxer.is_none() { println!("No demuxer found!"); return; @@ -295,7 +308,7 @@ println!("stream {} - {} {}", i, s, info.get_name()); } }, }; - if pkt.get_pts() != None && lastpts != NATimePoint::None && !pkt.ts.less_than(lastpts) { break; } + if pkt.get_pts().is_some() && lastpts != NATimePoint::None && !pkt.ts.less_than(lastpts) { break; } } } //panic!("end");