]> git.nihav.org Git - nihav-encoder.git/commitdiff
set default parameters for PCM output in case input format is incompatible master
authorKostya Shishkov <kostya.shishkov@gmail.com>
Wed, 9 Apr 2025 16:53:58 +0000 (18:53 +0200)
committerKostya Shishkov <kostya.shishkov@gmail.com>
Wed, 9 Apr 2025 16:53:58 +0000 (18:53 +0200)
src/transcoder.rs

index 10a2e733042eef33456f3ac132fb539e13b978dc..a2877061e81417f97e665f8c7521a980c2ca8f1c 100644 (file)
@@ -975,6 +975,13 @@ println!("encoder {} is not supported by output (expected {})", istr.id, istr.ge
                 oopts.enc_params.tb_num = istr.tb_num;
                 oopts.enc_params.tb_den = istr.tb_den;
             }
                 oopts.enc_params.tb_num = istr.tb_num;
                 oopts.enc_params.tb_den = istr.tb_den;
             }
+            if oopts.enc_name.as_str() == "pcm" {
+                if let NACodecTypeInfo::Audio(ref mut afmt) = oopts.enc_params.format {
+                    if afmt.format.bits == 0 || (afmt.format.bits & 7) != 0 {
+                        afmt.format = SND_S16_FORMAT;
+                    }
+                }
+            }
             let ret_eparams = encoder.negotiate_format(&oopts.enc_params);
             if ret_eparams.is_err() {
                 println!("cannot negotiate encoding parameters");
             let ret_eparams = encoder.negotiate_format(&oopts.enc_params);
             if ret_eparams.is_err() {
                 println!("cannot negotiate encoding parameters");