aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKostya Shishkov <kostya.shishkov@gmail.com>2020-07-11 15:34:09 +0200
committerKostya Shishkov <kostya.shishkov@gmail.com>2020-07-11 15:34:09 +0200
commite176bfee85e6cea16fccc182f56493174f3d0f8a (patch)
tree5ede7e4b6091144538130b44fe74672ad23e1592
parent830c03a129f2f20efa9070ebc3d0572c5b56da93 (diff)
downloadnihav-encoder-e176bfee85e6cea16fccc182f56493174f3d0f8a.tar.gz
parse requested formaton and soniton
-rw-r--r--src/main.rs48
1 files changed, 46 insertions, 2 deletions
diff --git a/src/main.rs b/src/main.rs
index b06f7b6..8d5efd3 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -222,7 +222,21 @@ impl Transcoder {
println!("video option for audio stream");
}
},
-//todo formaton
+ "pixfmt" => {
+ if ostr.enc_params.format == NACodecTypeInfo::None {
+ ostr.enc_params.format = NACodecTypeInfo::Video(NAVideoInfo::new(0, 0, false, YUV420_FORMAT));
+ }
+ if let NACodecTypeInfo::Video(ref mut vinfo) = ostr.enc_params.format {
+ let ret = oval[1].parse::<NAPixelFormaton>();
+ if let Ok(val) = ret {
+ vinfo.format = val;
+ } else {
+ println!("invalid pixel format");
+ }
+ } else {
+ println!("video option for audio stream");
+ }
+ },
"srate" => {
if ostr.enc_params.format == NACodecTypeInfo::None {
ostr.enc_params.format = NACodecTypeInfo::Audio(NAAudioInfo::new(0, 0, SND_S16_FORMAT, 0));
@@ -268,7 +282,37 @@ impl Transcoder {
println!("audio option for video stream");
}
},
-//todo soniton, channel map
+ "sfmt" => {
+ if ostr.enc_params.format == NACodecTypeInfo::None {
+ ostr.enc_params.format = NACodecTypeInfo::Audio(NAAudioInfo::new(0, 0, SND_S16_FORMAT, 0));
+ }
+ if let NACodecTypeInfo::Audio(ref mut ainfo) = ostr.enc_params.format {
+ let ret = oval[1].parse::<NASoniton>();
+ if let Ok(val) = ret {
+ ainfo.format = val;
+ } else {
+ println!("invalid audio format");
+ }
+ } else {
+ println!("audio option for video stream");
+ }
+ },
+// todo channel map negotiation
+ /*"chmap" => {
+ if ostr.enc_params.format == NACodecTypeInfo::None {
+ ostr.enc_params.format = NACodecTypeInfo::Audio(NAAudioInfo::new(0, 0, SND_S16_FORMAT, 0));
+ }
+ if let NACodecTypeInfo::Audio(ref mut ainfo) = ostr.enc_params.format {
+ let ret = oval[1].parse::<NAChannelMap>();
+ if let Ok(val) = ret {
+ ainfo.chmap = val;
+ } else {
+ println!("invalid channel map");
+ }
+ } else {
+ println!("audio option for video stream");
+ }
+ },*/
"bitrate" => {
let ret = oval[1].parse::<u32>();
if let Ok(val) = ret {