use NAPacketiser::attach_stream() where appropriate
[nihav-encoder.git] / src / main.rs
index 9811584831950986053fb70e4d2de842133739c2..ee6ba25f478e53a0877c76f8c7ae2ac38bd576c5 100644 (file)
@@ -627,7 +627,8 @@ impl Transcoder {
                             }
                         },
                         (NACodecTypeInfo::Audio(sainfo), NACodecTypeInfo::Audio(dainfo)) => {
-                            if sainfo == dainfo {
+                            let icodec = istr.get_info().get_name();
+                            if (sainfo == dainfo) && (icodec != "pcm" || oopts.enc_name.as_str() == "pcm") {
                                 OutputConvert::None
                             } else {
                                 let dchmap = match dainfo.channels {
@@ -797,7 +798,7 @@ println!("can't generate default channel map for {} channels", dainfo.channels);
 
                 let mut found_vid = false;
                 for (iidx, istr) in src_sm.iter().enumerate() {
-                    if istr.get_media_type() == StreamType::Video && !found_vid {
+                    if istr.get_media_type() == StreamType::Video {
                         match self.register_output_stream("any", istr, iidx, out_sm, enc_reg) {
                             RegisterResult::Ok     => found_vid = true,
                             RegisterResult::Failed => return false,
@@ -814,7 +815,7 @@ println!("can't generate default channel map for {} channels", dainfo.channels);
 
                 let mut found_aud = false;
                 for (iidx, istr) in src_sm.iter().enumerate() {
-                    if istr.get_media_type() == StreamType::Audio && !found_aud {
+                    if istr.get_media_type() == StreamType::Audio {
                         match self.register_output_stream("any", istr, iidx, out_sm, enc_reg) {
                             RegisterResult::Ok     => found_aud = true,
                             RegisterResult::Failed => return false,