let icodec = istr.get_info().get_name();
if (sainfo == dainfo) && (icodec != "pcm" || oopts.enc_name.as_str() == "pcm") {
Box::new(AudioEncodeContext { encoder, cvt: None, sainfo: *sainfo, dainfo: *dainfo, vol: oopts.volume })
- } else {
+ } else if oopts.enc_name.as_str() == "pcm" {
let dchmap = generate_channel_map(dainfo)?;
let acvt = AudioConverter::new(sainfo, dainfo, dchmap);
Box::new(AudioEncodeContext { encoder, cvt: Some(acvt), sainfo: *sainfo, dainfo: *dainfo, vol: oopts.volume })
+ } else if let NACodecTypeInfo::Audio(dinfo) = &ret_eparams.format {
+ let cvt = if sainfo == dinfo { None } else {
+ let dchmap = generate_channel_map(dinfo)?;
+ Some(AudioConverter::new(sainfo, dinfo, dchmap))
+ };
+ Box::new(AudioEncodeContext { encoder, cvt, sainfo: *sainfo, dainfo: *dinfo, vol: oopts.volume })
+ } else {
+ unreachable!()
}
},
_ => unreachable!(),