let mut encoder = (enc_create.unwrap())();
let forced_out = oopts.enc_params.format != NACodecTypeInfo::None;
let iformat = istr.get_info().get_properties();
+ let mut default_afmt = false;
if oopts.enc_params.format == NACodecTypeInfo::None {
oopts.enc_params.format = istr.get_info().get_properties();
+ default_afmt = true;
} else {
match (&iformat, &mut oopts.enc_params.format) {
(NACodecTypeInfo::Video(svinfo), NACodecTypeInfo::Video(ref mut dvinfo)) => {
}
if dainfo.format == SND_NO_FORMAT {
dainfo.format = sainfo.format;
+ default_afmt = true;
}
if dainfo.channels == 0 {
dainfo.channels = sainfo.channels;
oopts.enc_params.tb_num = istr.tb_num;
oopts.enc_params.tb_den = istr.tb_den;
}
+ if oopts.enc_name.as_str() == "pcm" && default_afmt {
+ if let NACodecTypeInfo::Audio(ref mut dainfo) = oopts.enc_params.format {
+ dainfo.format = SND_S16_FORMAT;
+ }
+ }
let ret_eparams = encoder.negotiate_format(&oopts.enc_params);
if ret_eparams.is_err() {
println!("cannot negotiate encoding parameters");