fix stream copy mode
authorKostya Shishkov <kostya.shishkov@gmail.com>
Tue, 9 Jun 2020 08:21:50 +0000 (10:21 +0200)
committerKostya Shishkov <kostya.shishkov@gmail.com>
Tue, 9 Jun 2020 08:21:50 +0000 (10:21 +0200)
src/main.rs

index 08aab6b35a3e99898ba8ff0eba9097b3196d50b9..9e2bd88efd4830abbe1ca487a6272bc2de2f4605 100644 (file)
@@ -350,7 +350,8 @@ impl Transcoder {
 
         if let Some(str_idx) = self.ostr_opts.iter().position(|str| str.id == out_id) {
             let oopts = &mut self.ostr_opts[str_idx];
-            if cname == "copy" && istr.get_info().get_name() == cname {
+            if oopts.enc_name.as_str() == "copy" && (cname == "any" || istr.get_info().get_name() == cname) {
+                out_sm.add_stream_ref(istr.clone());
                 self.encoders.push(OutputMode::Copy(out_id));
             } else if cname == "any" || oopts.enc_name.as_str() == cname {
                 let enc_create = enc_reg.find_encoder(oopts.enc_name.as_str());
@@ -430,6 +431,7 @@ println!("encoder {} is not supported by output (expected {})", istr.id, istr.ge
             }
         } else {
             if cname == "any" || istr.get_info().get_name() == cname {
+                out_sm.add_stream_ref(istr.clone());
                 self.encoders.push(OutputMode::Copy(out_id));
             } else {
 println!("stream {} ({}) can't be handled", istr.id, istr.get_info().get_name());