I tried to add few more flags to filempeg encoder settings, not touching -I
(as in Interlace, not small "l" as in level) for now

I also tried to get interlace info from both session interlace mode and
deinterlace checkbox ...
From 7271d7d0060f4f746c274947c96a8d687e61443a Mon Sep 17 00:00:00 2001
From: Andrew Randrianasulu <randrianas...@gmail.com>
Date: Tue, 30 May 2023 04:20:47 +0300
Subject: [PATCH 2/2] Experimental: try to pass interlacing info for
 mpeg2/dvdcreate

---
 cinelerra-5.1/cinelerra/dvdcreate.C | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/cinelerra-5.1/cinelerra/dvdcreate.C b/cinelerra-5.1/cinelerra/dvdcreate.C
index 52722841..9e7e589b 100644
--- a/cinelerra-5.1/cinelerra/dvdcreate.C
+++ b/cinelerra-5.1/cinelerra/dvdcreate.C
@@ -28,6 +28,7 @@
 #include "edlsession.h"
 #include "file.h"
 #include "filexml.h"
+#include "interlacemodes.h"
 #include "keyframe.h"
 #include "labels.h"
 #include "mainerror.h"
@@ -466,12 +467,17 @@ int CreateDVD_Thread::create_dvd_jobs(ArrayList<BatchRenderJob*> *jobs, const ch
 		asset->vmpeg_bitrate = vid_bitrate;
 		asset->vmpeg_quantization = 15;
 		asset->vmpeg_iframe_distance = 15;
-		asset->vmpeg_progressive = 0;
+		if(session->interlace_mode == ILACE_MODE_NOTINTERLACED || gui->thread->use_deinterlace)
+		{ asset->vmpeg_progressive = 1; } else {
+		asset->vmpeg_progressive = 0; }
 		asset->vmpeg_denoise = 0;
 		asset->vmpeg_seq_codes = 0;
 		asset->vmpeg_derivative = 2;
 		asset->vmpeg_preset = 8;
 		asset->vmpeg_field_order = 0;
+		if(session->interlace_mode == ILACE_MODE_BOTTOM_FIRST && !gui->thread->use_deinterlace)
+		{ asset->vmpeg_field_order = 1; }
+		asset->vmpeg_field_order = 0;
 		asset->vmpeg_pframe_distance = 0;
 		use_farmed = job->farmed;
 		job = new BatchRenderJob(mwindow->preferences, 0, 0);
-- 
2.40.1

From fe0cf1a161d23abc9d06d821cd7da318d8daf3d5 Mon Sep 17 00:00:00 2001
From: Andrew Randrianasulu <randrianas...@gmail.com>
Date: Tue, 30 May 2023 02:53:07 +0300
Subject: [PATCH 1/2] Experimental: Add some more options to filempeg

---
 cinelerra-5.1/cinelerra/filempeg.C | 22 ++++++++++++++++++++++
 1 file changed, 22 insertions(+)

diff --git a/cinelerra-5.1/cinelerra/filempeg.C b/cinelerra-5.1/cinelerra/filempeg.C
index c728036a..49dfedea 100644
--- a/cinelerra-5.1/cinelerra/filempeg.C
+++ b/cinelerra-5.1/cinelerra/filempeg.C
@@ -632,6 +632,28 @@ int FileMPEG::open_file(int rd, int wr)
 				sprintf(string, " -V 500");
 				strncat(mjpeg_command, string, sizeof(mjpeg_command));
 			}
+			
+			if(asset->vmpeg_preset == 13) /* set high profile for 1080 */
+			{
+			sprintf(string, " -l high");
+			strncat(mjpeg_command, string, sizeof(mjpeg_command));
+			}
+			
+			if(asset->vmpeg_preset == 6) /* set -T for vcd */
+			{
+			sprintf(string, " -T 35");
+			strncat(mjpeg_command, string, sizeof(mjpeg_command));
+			}
+			
+			if(asset->vmpeg_preset == 7) /* set -T for svcd */
+			{
+			sprintf(string, " -T 120");
+			strncat(mjpeg_command, string, sizeof(mjpeg_command));
+			}
+			
+			sprintf(string, " -c"); /* set closed gop */
+			strncat(mjpeg_command, string, sizeof(mjpeg_command));
+		
 
 			strncat(mjpeg_command,
 				asset->vmpeg_progressive ? " -I 0" : " -I 1",
-- 
2.40.1

-- 
Cin mailing list
Cin@lists.cinelerra-gg.org
https://lists.cinelerra-gg.org/mailman/listinfo/cin

Reply via email to