parse hls args from cmd args
This commit is contained in:
parent
0d4dbdc780
commit
5c323970a3
1 changed files with 13 additions and 3 deletions
16
src/main.rs
16
src/main.rs
|
@ -9,11 +9,11 @@ use std::sync::mpsc;
|
||||||
use std::thread;
|
use std::thread;
|
||||||
use std::time::Duration;
|
use std::time::Duration;
|
||||||
|
|
||||||
fn init() -> Result<[mpsc::Receiver<Box<dyn std::error::Error + Send + Sync>>; 4], Box<dyn std::error::Error>>{
|
fn init(args: util::HLSArgs) -> Result<[mpsc::Receiver<Box<dyn std::error::Error + Send + Sync>>; 4], Box<dyn std::error::Error>>{
|
||||||
let (v_out, a_out, metadata, demux_err_recv) = demux::spawn()?;
|
let (v_out, a_out, metadata, demux_err_recv) = demux::spawn()?;
|
||||||
let (raw_v_out, raw_a_out, decode_err_recv) = decode::spawn(v_out, a_out, metadata.clone())?;
|
let (raw_v_out, raw_a_out, decode_err_recv) = decode::spawn(v_out, a_out, metadata.clone())?;
|
||||||
let (enc_v_out, enc_a_out, encode_err_recv) = encode::spawn(raw_v_out, raw_a_out, metadata.clone(), util::VideoCodec::AV1, util::AudioCodec::OPUS)?;
|
let (enc_v_out, enc_a_out, encode_err_recv) = encode::spawn(raw_v_out, raw_a_out, metadata.clone(), util::VideoCodec::AV1, util::AudioCodec::OPUS)?;
|
||||||
let muxer_err_recv = muxer::spawn(enc_v_out, enc_a_out, metadata.clone(), util::HLSArgs{segment_time: 4, segment_prepend: String::from("/vid/tmp/"), max_segments: 4})?;
|
let muxer_err_recv = muxer::spawn(enc_v_out, enc_a_out, metadata.clone(), args)?;
|
||||||
return Ok([demux_err_recv, decode_err_recv, encode_err_recv, muxer_err_recv]);
|
return Ok([demux_err_recv, decode_err_recv, encode_err_recv, muxer_err_recv]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -42,8 +42,18 @@ fn process(error_handles: [mpsc::Receiver<Box<dyn std::error::Error + Send + Syn
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn parse_args() -> util::HLSArgs {
|
||||||
|
let mut args = std::env::args();
|
||||||
|
args.next();
|
||||||
|
util::HLSArgs {
|
||||||
|
segment_time: args.next().expect("no time interval").parse().expect("not int"),
|
||||||
|
segment_prepend: args.next().expect("no prepend"),
|
||||||
|
max_segments: args.next().expect("no max list size").parse().expect("not int"),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
fn main() {
|
fn main() {
|
||||||
let error_handles = match init() {
|
let error_handles = match init(parse_args()) {
|
||||||
Ok(x) => x,
|
Ok(x) => x,
|
||||||
Err(err) => {dbg!(err); exit(1);}
|
Err(err) => {dbg!(err); exit(1);}
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in a new issue