projects
/
nihav-encoder.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
637e4d4
)
enhance printed runtime stats
author
Kostya Shishkov
<kostya.shishkov@gmail.com>
Fri, 10 Mar 2023 18:35:17 +0000
(19:35 +0100)
committer
Kostya Shishkov
<kostya.shishkov@gmail.com>
Fri, 10 Mar 2023 18:35:17 +0000
(19:35 +0100)
src/main.rs
patch
|
blob
|
blame
|
history
diff --git
a/src/main.rs
b/src/main.rs
index 5e00cf08a8412bd9cac2dfa37c64602011bb5184..41a4a927b9c540a28c20f006fac5bae0ae3547d0 100644
(file)
--- a/
src/main.rs
+++ b/
src/main.rs
@@
-99,7
+99,7
@@
struct Transcoder {
no_audio: bool,
start: NATimePoint,
end: NATimePoint,
no_audio: bool,
start: NATimePoint,
end: NATimePoint,
- verbose:
bool
,
+ verbose:
u8
,
}
macro_rules! parse_and_apply_options {
}
macro_rules! parse_and_apply_options {
@@
-954,7
+954,9
@@
fn main() {
return;
}
},
return;
}
},
- "--verbose" | "-v" => transcoder.verbose = true,
+ "--verbose" | "-v" => transcoder.verbose = 1,
+ "-vv" => transcoder.verbose = 2,
+ "-v-" => transcoder.verbose = 0,
_ => {
if args[arg_idx].starts_with("--istream") {
let opt0 = &args[arg_idx];
_ => {
if args[arg_idx].starts_with("--istream") {
let opt0 = &args[arg_idx];
@@
-1107,6
+1109,8
@@
println!("stream {} - {} {}", i, s, info.get_name());
let mut time = Instant::now();
let show_interval = Duration::from_millis(100);
let mut time = Instant::now();
let show_interval = Duration::from_millis(100);
+ let mut adata_size = 0;
+ let mut vdata_size = 0;
'main_loop: loop {
let pktres = dmx.get_frame();
if let Err(DemuxerError::EOF) = pktres { break; }
'main_loop: loop {
let pktres = dmx.get_frame();
if let Err(DemuxerError::EOF) = pktres { break; }
@@
-1117,7
+1121,7
@@
println!("stream {} - {} {}", i, s, info.get_name());
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();
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();
- if transcoder.verbose && time.elapsed() >= show_interval {
+ if transcoder.verbose
> 0
&& time.elapsed() >= show_interval {
if let Some(pts) = pkt.get_pts() {
let cur_time = format_time(NATimeInfo::ts_to_time(pts, 1000, pkt.ts.tb_num, pkt.ts.tb_den));
print!(" {}", cur_time);
if let Some(pts) = pkt.get_pts() {
let cur_time = format_time(NATimeInfo::ts_to_time(pts, 1000, pkt.ts.tb_num, pkt.ts.tb_den));
print!(" {}", cur_time);
@@
-1127,6
+1131,9
@@
println!("stream {} - {} {}", i, s, info.get_name());
if !duration_string.is_empty() {
print!(" / {}", duration_string);
}
if !duration_string.is_empty() {
print!(" / {}", duration_string);
}
+ if transcoder.verbose > 1 {
+ print!(" data sizes V: {} A: {}", vdata_size, adata_size);
+ }
print!("\r");
std::io::stdout().flush().unwrap();
time = Instant::now();
print!("\r");
std::io::stdout().flush().unwrap();
time = Instant::now();
@@
-1137,6
+1144,12
@@
println!("stream {} - {} {}", i, s, info.get_name());
let dstr = mux.get_stream(dst_id as usize).unwrap();
pkt.reassign(dstr, pkt.get_time_information());
if transcoder.end != NATimePoint::None && !pkt.ts.less_than(transcoder.end) { break 'main_loop; }
let dstr = mux.get_stream(dst_id as usize).unwrap();
pkt.reassign(dstr, pkt.get_time_information());
if transcoder.end != NATimePoint::None && !pkt.ts.less_than(transcoder.end) { break 'main_loop; }
+ let pkt_size = pkt.get_buffer().len();
+ match pkt.get_stream().get_media_type() {
+ StreamType::Video => { vdata_size += pkt_size; },
+ StreamType::Audio => { adata_size += pkt_size; },
+ _ => {},
+ };
if mux.mux_frame(pkt).is_err() {
println!("error muxing packet");
break;
if mux.mux_frame(pkt).is_err() {
println!("error muxing packet");
break;
@@
-1160,6
+1173,12
@@
println!("stream {} - {} {}", i, s, info.get_name());
}
while let Ok(Some(pkt)) = encoder.get_packet() {
if transcoder.end != NATimePoint::None && !pkt.ts.less_than(transcoder.end) { break 'main_loop; }
}
while let Ok(Some(pkt)) = encoder.get_packet() {
if transcoder.end != NATimePoint::None && !pkt.ts.less_than(transcoder.end) { break 'main_loop; }
+ let pkt_size = pkt.get_buffer().len();
+ match pkt.get_stream().get_media_type() {
+ StreamType::Video => { vdata_size += pkt_size; },
+ StreamType::Audio => { adata_size += pkt_size; },
+ _ => {},
+ };
mux.mux_frame(pkt).unwrap();
}
}
mux.mux_frame(pkt).unwrap();
}
}
@@
-1205,7
+1224,7
@@
println!("stream {} - {} {}", i, s, info.get_name());
_ => {},
};
}
_ => {},
};
}
- if transcoder.verbose {
+ if transcoder.verbose
> 0
{
println!();
}
println!();
}