X-Git-Url: https://git.cinelerra-gg.org/git/?p=goodguy%2Fcinelerra.git;a=blobdiff_plain;f=cinelerra-5.1%2Fcinelerra%2Fbatchrender.C;h=d67b6ad1a5342b921c61ad54476768c208dda304;hp=e75c71093253ea7c219b7954d1c66b1fd53ded77;hb=9afc3844e37c6db23435d5d0c33129dcc81061e4;hpb=7fd85fb66168f6b518c5f2d73e04036e87faa0e1 diff --git a/cinelerra-5.1/cinelerra/batchrender.C b/cinelerra-5.1/cinelerra/batchrender.C index e75c7109..d67b6ad1 100644 --- a/cinelerra-5.1/cinelerra/batchrender.C +++ b/cinelerra-5.1/cinelerra/batchrender.C @@ -392,29 +392,32 @@ int BatchRenderThread::test_edl_files() for( int i=0; !ret && ienabled ) continue; - const char *path = jobs.values[i]->edl_path; + path = jobs.values[i]->edl_path; int is_script = *path == '@' ? 1 : 0; if( is_script ) ++path; FILE *fp = fopen(path, "r"); if( fp ) { if( warn && mwindow && !is_script ) { - fseek(fp, 0, SEEK_END); - int64_t sz = ftell(fp); - fseek(fp, 0, SEEK_SET); - char *bfr = new char[sz+1]; - int64_t len = fread(bfr, 1, sz+1, fp); - if( len == sz ) { - FileXML file; - XMLBuffer data(bfr, len, 0); - file.set_shared_input(&data); + char *bfr = 0; size_t sz = 0; + struct stat st; + if( !fstat(fileno(fp), &st) ) { + sz = st.st_size; + bfr = new char[sz+1]; + if( fread(bfr, 1, sz+1, fp) != sz ) + ret = 1; + else + bfr[sz] = 0; + } + if( !ret ) { EDL *edl = new EDL; edl->create_objects(); - edl->load_xml(&file, LOAD_ALL); + XMLBuffer data(bfr, sz, 0); + { FileXML file; + file.set_shared_input(&data); + edl->load_xml(&file, LOAD_ALL); } double pos = edl->equivalent_output(mwindow->edl); if( pos >= 0 ) ++not_equiv; edl->remove_user(); } - else - ret = 1; delete [] bfr; } fclose(fp); @@ -510,6 +513,7 @@ void BatchRenderThread::start_rendering(char *config_path, //PRINT_TRACE // Initialize stuff which MWindow does. signals->initialize("/tmp/cinelerra_batch%d.dmp"); + boot_defaults = 0; MWindow::init_defaults(boot_defaults, config_path); load_defaults(boot_defaults); preferences = new Preferences; @@ -1046,7 +1050,9 @@ void BatchRenderSaveList::run() int result2 = filewindow.run_window(); if( !result2 ) { strcpy(thread->batch_path, filewindow.get_submitted_path()); + thread->gui->lock_window("BatchRenderSaveList::run"); thread->gui->batch_path->update(thread->batch_path); + thread->gui->unlock_window(); thread->mwindow->defaults->update("DEFAULT_BATCHLOADPATH", thread->batch_path); thread->save_jobs(thread->batch_path); } @@ -1211,9 +1217,14 @@ int BatchRenderList::selection_changed() int BatchRenderList::column_resize_event() { - for( int i = 0; i < BATCHRENDER_COLUMNS; i++ ) { - thread->list_width[i] = get_column_width(i); - } + int col = 0; + thread->list_width[ENABLED_COL] = get_column_width(col++); + thread->list_width[LABELED_COL] = get_column_width(col++); + if( thread->gui->use_renderfarm ) + thread->list_width[FARMED_COL] = get_column_width(col++); + thread->list_width[OUTPUT_COL] = get_column_width(col++); + thread->list_width[EDL_COL] = get_column_width(col++); + thread->list_width[ELAPSED_COL] = get_column_width(col); return 1; }