diff options
author | Kostya Shishkov <kostya.shishkov@gmail.com> | 2020-07-11 15:34:09 +0200 |
---|---|---|
committer | Kostya Shishkov <kostya.shishkov@gmail.com> | 2020-07-11 15:34:09 +0200 |
commit | e176bfee85e6cea16fccc182f56493174f3d0f8a (patch) | |
tree | 5ede7e4b6091144538130b44fe74672ad23e1592 | |
parent | 830c03a129f2f20efa9070ebc3d0572c5b56da93 (diff) | |
download | nihav-encoder-e176bfee85e6cea16fccc182f56493174f3d0f8a.tar.gz |
parse requested formaton and soniton
-rw-r--r-- | src/main.rs | 48 |
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 { |