self.istr_opts.len() - 1
};
let istr = &mut self.istr_opts[sidx];
-
+
for opt in opt1.split(',') {
let oval: Vec<_> = opt.split('=').collect();
if oval.len() == 1 {
self.ostr_opts.len() - 1
};
let ostr = &mut self.ostr_opts[sidx];
-
+
for opt in opt1.split(',') {
let oval: Vec<_> = opt.split('=').collect();
if oval.len() == 1 {
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));
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 {
let mut dmx_reg = RegisteredDemuxers::new();
nihav_register_all_demuxers(&mut dmx_reg);
let mut dec_reg = RegisteredDecoders::new();
- nihav_register_all_codecs(&mut dec_reg);
+ nihav_register_all_decoders(&mut dec_reg);
let mut mux_reg = RegisteredMuxers::new();
nihav_register_all_muxers(&mut mux_reg);