fix mask vframe setup, add unshared vframe constructor
[goodguy/history.git] / cinelerra-5.1 / cinelerra / dvdcreate.C
index f3c817a38a87ce6d81f6849b51d201dff7c86005..e7eb1db2c127da9f68d52896610b4cd1da1c16b3 100644 (file)
@@ -126,8 +126,7 @@ CreateDVD_Thread::~CreateDVD_Thread()
        close_window();
 }
 
-int CreateDVD_Thread::create_dvd_jobs(ArrayList<BatchRenderJob*> *jobs,
-       const char *asset_dir, const char *asset_title)
+int CreateDVD_Thread::create_dvd_jobs(ArrayList<BatchRenderJob*> *jobs, const char *asset_dir)
 {
        EDL *edl = mwindow->edl;
        if( !edl || !edl->session ) {
@@ -238,6 +237,7 @@ int CreateDVD_Thread::create_dvd_jobs(ArrayList<BatchRenderJob*> *jobs,
        fprintf(fp,"\n");
        fprintf(fp,"echo To burn dvd, load blank media and run:\n");
        fprintf(fp,"echo growisofs -dvd-compat -Z /dev/dvd -dvd-video $1/iso\n");
+       fprintf(fp,"kill $$\n");
        fprintf(fp,"\n");
        fclose(fp);
 
@@ -262,6 +262,7 @@ int CreateDVD_Thread::create_dvd_jobs(ArrayList<BatchRenderJob*> *jobs,
 
        double new_samplerate = session->sample_rate;
        double new_framerate = session->frame_rate;
+       edl->retrack();
        edl->rechannel();
        edl->resample(old_samplerate, new_samplerate, TRACK_AUDIO);
        edl->resample(old_framerate, new_framerate, TRACK_VIDEO);
@@ -315,7 +316,7 @@ int CreateDVD_Thread::create_dvd_jobs(ArrayList<BatchRenderJob*> *jobs,
                FFMPEG::load_options(option_path, asset->ff_video_options,
                         sizeof(asset->ff_video_options));
                asset->ff_video_bitrate = vid_bitrate;
-               asset->ff_video_quality = 0;
+               asset->ff_video_quality = -1;
        }
        else {
                sprintf(&asset->path[0],"%s/dvd.m2v", asset_dir);
@@ -408,6 +409,7 @@ void CreateDVD_Thread::handle_close_event(int result)
                                        edit->startproject, edit->length,
                                        PLUGIN_STANDALONE, 0, &keyframe, 0);
                        }
+                       vtrk->optimize();
                }
        }
 
@@ -436,10 +438,10 @@ void CreateDVD_Thread::handle_close_event(int result)
                insert_video_plugin("Histogram", &keyframe);
        }
        char asset_dir[BCTEXTLEN], jobs_path[BCTEXTLEN];
-       sprintf(asset_dir, "%s/%s", tmp_path, asset_title);
-       sprintf(jobs_path, "%s/dvd.jobs", asset_dir);
+       snprintf(asset_dir, sizeof(asset_dir), "%s/%s", tmp_path, asset_title);
+       snprintf(jobs_path, sizeof(jobs_path), "%s/dvd.jobs", asset_dir);
        mwindow->batch_render->reset(jobs_path);
-       int ret = create_dvd_jobs(&mwindow->batch_render->jobs, asset_dir, asset_title);
+       int ret = create_dvd_jobs(&mwindow->batch_render->jobs, asset_dir);
        mwindow->undo->update_undo_after(_("create dvd"), LOAD_ALL);
        mwindow->resync_guis();
        if( ret ) return;
@@ -577,7 +579,7 @@ CreateDVD_DiskSpace::~CreateDVD_DiskSpace()
 
 int64_t CreateDVD_DiskSpace::tmp_path_space()
 {
-       const char *path = gui->tmp_path->get_text();
+       const char *path = gui->thread->tmp_path;
        if( access(path,R_OK+W_OK) ) return 0;
        struct statfs sfs;
        if( statfs(path, &sfs) ) return 0;
@@ -619,13 +621,15 @@ CreateDVD_TmpPath::~CreateDVD_TmpPath()
 
 int CreateDVD_TmpPath::handle_event()
 {
+       get_text();
        gui->disk_space->update();
        return 1;
 }
 
 
 CreateDVD_AssetTitle::CreateDVD_AssetTitle(CreateDVD_GUI *gui, int x, int y, int w)
- : BC_TextBox(x, y, w, 1, 0, gui->thread->asset_title, 1, MEDIUMFONT)
+ : BC_TextBox(x, y, w, 1, -(int)sizeof(gui->thread->asset_title),
+               gui->thread->asset_title, 1, MEDIUMFONT)
 {
        this->gui = gui;
 }
@@ -634,6 +638,12 @@ CreateDVD_AssetTitle::~CreateDVD_AssetTitle()
 {
 }
 
+int CreateDVD_AssetTitle::handle_event()
+{
+       get_text();
+       return 1;
+}
+
 
 CreateDVD_Deinterlace::CreateDVD_Deinterlace(CreateDVD_GUI *gui, int x, int y)
  : BC_CheckBox(x, y, &gui->thread->use_deinterlace, _("Deinterlace"))
@@ -891,6 +901,7 @@ insert_video_plugin(const char *title, KeyFrame *default_keyframe)
                                edit->startproject, edit->length,
                                PLUGIN_STANDALONE, 0, default_keyframe, 0);
                }
+               vtrk->optimize();
        }
        return 0;
 }