]> git.nihav.org Git - nihav-encoder.git/commitdiff
hopefully fix regression with encoding non-PCM audio
authorKostya Shishkov <kostya.shishkov@gmail.com>
Sat, 16 May 2026 08:04:36 +0000 (10:04 +0200)
committerKostya Shishkov <kostya.shishkov@gmail.com>
Sat, 16 May 2026 08:04:55 +0000 (10:04 +0200)
src/transcoder.rs

index 1cff30c0833134beffeb6e6063c3347c1903b9c8..01b939934c29ce17e887fdc808d0141b2994b849 100644 (file)
@@ -1090,10 +1090,18 @@ impl Transcoder {
                     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!(),