X-Git-Url: https://git.cinelerra-gg.org/git/?a=blobdiff_plain;f=cinelerra-5.1%2Fcinelerra%2Fdvdcreate.C;h=175ef5477ceb24c39c5a5b680af513d163e3cc4f;hb=HEAD;hp=4c8ab188aadc2518a88e6c7ff8938e4b7bb2aab6;hpb=48a6854a1ca58aa291ffc6fe3a48807492dfbef7;p=goodguy%2Fcinelerra.git diff --git a/cinelerra-5.1/cinelerra/dvdcreate.C b/cinelerra-5.1/cinelerra/dvdcreate.C index 4c8ab188..390d2cbc 100644 --- a/cinelerra-5.1/cinelerra/dvdcreate.C +++ b/cinelerra-5.1/cinelerra/dvdcreate.C @@ -1,3 +1,23 @@ +/* + * CINELERRA + * Copyright (C) 2016-2020 William Morrow + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published + * by the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + * USA + */ + #include "asset.h" #include "bchash.h" #include "clip.h" @@ -8,6 +28,7 @@ #include "edlsession.h" #include "file.h" #include "filexml.h" +#include "interlacemodes.h" #include "keyframe.h" #include "labels.h" #include "mainerror.h" @@ -24,9 +45,22 @@ #include #include #include +#if !defined(__FreeBSD__) #include +#if !defined(__NetBSD__) #include +#endif +#else +#include +#include +#endif +#if defined(__NetBSD__) +#include +#ifndef statfs +#define statfs statvfs +#endif +#endif #define DVD_PAL_4x3 0 #define DVD_PAL_16x9 1 @@ -316,6 +350,10 @@ int CreateDVD_Thread::create_dvd_jobs(ArrayList *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; @@ -433,12 +471,17 @@ int CreateDVD_Thread::create_dvd_jobs(ArrayList *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); @@ -645,7 +688,7 @@ int CreateDVD_OK::button_press_event() int CreateDVD_OK::keypress_event() { - return 0; + return context_help_check_and_show(); } @@ -873,6 +916,8 @@ CreateDVD_GUI::CreateDVD_GUI(CreateDVD_Thread *thread, int x, int y, int w, int need_farmed = 0; ok = 0; cancel = 0; +// *** CONTEXT_HELP *** + context_help_set_keyword("DVD and Bluray Creation"); } CreateDVD_GUI::~CreateDVD_GUI()