aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKostya Shishkov <kostya.shishkov@gmail.com>2020-07-12 10:40:39 +0200
committerKostya Shishkov <kostya.shishkov@gmail.com>2020-07-12 10:40:39 +0200
commitf88b8fb4f64962205372892b782ad0ae09034e9a (patch)
tree9ec19a0491c4b3af9dc614a135cbed4e68907af6
parent4b5c61e2cdb07069db7232920d9e67146e769de4 (diff)
downloadnihav-encoder-f88b8fb4f64962205372892b782ad0ae09034e9a.tar.gz
skip packets before start point
-rw-r--r--src/main.rs4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/main.rs b/src/main.rs
index 38de777..a6d464a 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -919,6 +919,7 @@ println!("stream {} - {} {}", i, s, info.get_name());
break;
}
let mut pkt = pktres.unwrap();
+ if transcoder.start != NATimePoint::None && pkt.ts.less_than(transcoder.start) { continue; }
let src_id = pkt.get_stream().get_num();
match transcoder.encoders[src_id] {
OutputMode::Drop => {},
@@ -934,6 +935,9 @@ println!("stream {} - {} {}", i, s, info.get_name());
OutputMode::Encode(dst_id, ref mut encoder, ref mut cvt) => {
if let Some((ref mut dsupp, ref mut decoder)) = transcoder.decoders[src_id] {
let ret = decoder.decode(dsupp, &pkt);
+ if let (true, Err(DecoderError::MissingReference)) = (transcoder.start != NATimePoint::None, &ret) {
+ continue;
+ }
if ret.is_err() {
println!("error decoding stream {}", src_id);
break;