use NAPacketiser::attach_stream() where appropriate
[nihav-tool.git] / src / main.rs
index 8280799a790bbc7b31af4a532eeee4369d6a1441..78c9fb09ec0bfe3057d6d2e7b8a2ba3398abab9f 100644 (file)
@@ -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<NAOption> = 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");