X-Git-Url: https://git.nihav.org/?a=blobdiff_plain;f=src%2Fmain.rs;h=ee6ba25f478e53a0877c76f8c7ae2ac38bd576c5;hb=82d53f6e7f228477f82e37c7a1c5a0995213de75;hp=9811584831950986053fb70e4d2de842133739c2;hpb=e47b21140303d901f723d4638b08cdefa06a19d4;p=nihav-encoder.git diff --git a/src/main.rs b/src/main.rs index 9811584..ee6ba25 100644 --- a/src/main.rs +++ b/src/main.rs @@ -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,