Credit Andrew - fix vorbis audio which was scratchy and ensure aging plugin does...
[goodguy/cinelerra.git] / cinelerra-5.1 / cinelerra / dvdcreate.C
index 527228414c9a18adc43b6eed254c36e30ce91161..390d2cbcb44743a4dc5f5dba44d1f0cda170eb78 100644 (file)
@@ -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"
@@ -349,6 +350,10 @@ int CreateDVD_Thread::create_dvd_jobs(ArrayList<BatchRenderJob*> *jobs, const ch
        double old_samplerate = session->sample_rate;
        double old_framerate = session->frame_rate;
 
+       if(use_deinterlace) {
+       session->interlace_mode = ILACE_MODE_NOTINTERLACED;
+       }
+
        session->video_channels = DVD_STREAMS;
        session->video_tracks = DVD_STREAMS;
        session->frame_rate = dvd_framerate;
@@ -466,12 +471,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 || 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 && !use_deinterlace)
+               { asset->vmpeg_field_order = 1; } else {
+               asset->vmpeg_field_order = 0; }
                asset->vmpeg_pframe_distance = 0;
                use_farmed = job->farmed;
                job = new BatchRenderJob(mwindow->preferences, 0, 0);