projects
/
nihav-tool.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
6952487
)
switch seeking and end time to use NATimePoint
author
Kostya Shishkov
<kostya.shishkov@gmail.com>
Thu, 9 Jul 2020 08:44:05 +0000
(10:44 +0200)
committer
Kostya Shishkov
<kostya.shishkov@gmail.com>
Thu, 9 Jul 2020 08:44:05 +0000
(10:44 +0200)
src/main.rs
patch
|
blob
|
blame
|
history
diff --git
a/src/main.rs
b/src/main.rs
index 1be4e2a0a7e36a42ebb004e69251cc84006bd64a..79212fdaa8e2d9051d3ae568db4579668b732a89 100644
(file)
--- a/
src/main.rs
+++ b/
src/main.rs
@@
-77,14
+77,14
@@
fn main() {
println!("usage: nihav-tool [-noout] [-vn] [-an] input [lastpts]");
return;
}
println!("usage: nihav-tool [-noout] [-vn] [-an] input [lastpts]");
return;
}
- let mut lastpts
: Option<u64> =
None;
+ let mut lastpts
= NATimePoint::
None;
let mut cur_arg: usize = 1;
let mut noout = false;
let mut decode_video = true;
let mut decode_audio = true;
let mut nmode = NumberMode::FrmPTS;
let mut smode = FrameSkipMode::None;
let mut cur_arg: usize = 1;
let mut noout = false;
let mut decode_video = true;
let mut decode_audio = true;
let mut nmode = NumberMode::FrmPTS;
let mut smode = FrameSkipMode::None;
- let mut seek_time =
0u64
;
+ let mut seek_time =
NATimePoint::None
;
let mut vpfx: Option<String> = None;
let mut apfx: Option<&str> = None;
let mut ignore_errors = false;
let mut vpfx: Option<String> = None;
let mut apfx: Option<&str> = None;
let mut ignore_errors = false;
@@
-107,7
+107,7
@@
fn main() {
println!("seek time missing");
return;
}
println!("seek time missing");
return;
}
- let ret = args[cur_arg].parse::<
u64
>();
+ let ret = args[cur_arg].parse::<
NATimePoint
>();
if ret.is_err() {
println!("wrong seek time");
return;
if ret.is_err() {
println!("wrong seek time");
return;
@@
-139,7
+139,12
@@
fn main() {
let name = args[cur_arg].as_str();
cur_arg += 1;
if cur_arg < args.len() {
let name = args[cur_arg].as_str();
cur_arg += 1;
if cur_arg < args.len() {
- lastpts = Some(u64::from_str_radix(args[cur_arg].as_str(), 10).unwrap());
+ let ret = args[cur_arg].parse::<NATimePoint>();
+ if ret.is_err() {
+ println!("cannot parse end time");
+ return;
+ }
+ lastpts = ret.unwrap();
}
let path = Path::new(name);
}
let path = Path::new(name);
@@
-164,7
+169,7
@@
println!("trying demuxer {} on {}", dmx_name, name);
br.seek(SeekFrom::Start(0)).unwrap();
let mut dmx = create_demuxer(dmx_fact, &mut br).unwrap();
br.seek(SeekFrom::Start(0)).unwrap();
let mut dmx = create_demuxer(dmx_fact, &mut br).unwrap();
- if seek_time
> 0
{
+ if seek_time
!= NATimePoint::None
{
let ret = dmx.seek(seek_time);
if ret.is_err() {
println!(" seek error {:?}", ret.err().unwrap());
let ret = dmx.seek(seek_time);
if ret.is_err() {
println!(" seek error {:?}", ret.err().unwrap());
@@
-259,7
+264,7
@@
panic!("decoder {} not found", info.get_name());
};
}
},
};
}
},
- Err(DecoderError::MissingReference) if seek_time
> 0
=> {
+ Err(DecoderError::MissingReference) if seek_time
!= NATimePoint::None
=> {
println!("ignoring missing ref");
},
Err(reason) => {
println!("ignoring missing ref");
},
Err(reason) => {
@@
-269,7
+274,7
@@
panic!("decoder {} not found", info.get_name());
}
},
};
}
},
};
- if pkt.get_pts() != None && lastpts
.is_some() && pkt.get_pts() >= lastpts
{ break; }
+ if pkt.get_pts() != None && lastpts
!= NATimePoint::None && !pkt.ts.less_than(lastpts)
{ break; }
}
}
//panic!("end");
}
}
//panic!("end");