// If non interactive, print progress out
if(!render->progress)
- {
- int64_t current_eta = render->progress_timer->get_scaled_difference(1000);
- if(current_eta - render->last_eta > 1000)
- {
- double eta = 0;
-
-
- if(render->total_rendered)
- {
- eta = current_eta /
- 1000 *
- render->progress_max /
- render->total_rendered -
- current_eta /
- 1000;
- }
-
- char string[BCTEXTLEN];
- Units::totext(string,
- eta,
- TIME_HMS2);
-
- printf("\r%d%% %s: %s ",
- (int)(100 * (float)render->total_rendered / render->progress_max),
- _("ETA"), string);
- fflush(stdout);
- render->last_eta = current_eta;
- }
- }
+ render->show_progress();
render->counter_lock->unlock();
// add to recentlist only on OK
render_window->render_format->path_recent->
add_item(File::formattostr(asset->format), asset->path);
+ setenv("CIN_RENDER", asset->path, 1);
}
render_window = 0;
}
}
}
-
-
int Render::check_asset(EDL *edl, Asset &asset)
{
if(asset.video_data &&
return 0;
}
-int Render::get_strategy(int use_renderfarm, int file_per_label)
+int Render::get_strategy(int use_renderfarm, int use_labels)
{
return use_renderfarm ?
- (file_per_label ? FILE_PER_LABEL_FARM : SINGLE_PASS_FARM) :
- (file_per_label ? FILE_PER_LABEL : SINGLE_PASS ) ;
+ (use_labels ? FILE_PER_LABEL_FARM : SINGLE_PASS_FARM) :
+ (use_labels ? FILE_PER_LABEL : SINGLE_PASS ) ;
}
int Render::get_strategy()
{
- return get_strategy(preferences->use_renderfarm, file_per_label);
+ return get_strategy(preferences->use_renderfarm, use_labels);
}
void Render::start_progress()
progress = 0;
}
+void Render::show_progress()
+{
+ int64_t current_eta = progress_timer->get_scaled_difference(1000);
+ if (current_eta - last_eta < 1000 ) return;
+ double eta = !total_rendered ? 0 :
+ current_eta / 1000. * (progress_max / (double)total_rendered - 1.);
+ char string[BCTEXTLEN]; Units::totext(string, eta, TIME_HMS2);
+ printf("\r%d%% %s: %s ",
+ (int)(100 * (float)total_rendered / progress_max), _("ETA"), string);
+ fflush(stdout);
+ last_eta = current_eta;
+}
+
void Render::start_render()
int Render::load_defaults(Asset *asset)
{
- file_per_label = mwindow->defaults->get("RENDER_FILE_PER_LABEL", 0);
+ use_labels = mwindow->defaults->get("RENDER_FILE_PER_LABEL", 0);
load_mode = mwindow->defaults->get("RENDER_LOADMODE", LOADMODE_NEW_TRACKS);
range_type = mwindow->defaults->get("RENDER_RANGE_TYPE", RANGE_PROJECT);
{
char string_name[100];
sprintf(string_name, "RENDER_%i_FILE_PER_LABEL", profile_slot);
- file_per_label = mwindow->defaults->get(string_name, 0);
+ use_labels = mwindow->defaults->get(string_name, 0);
// Load mode is not part of the profile
// printf(string_name, "RENDER_%i_LOADMODE", profile_slot);
// load_mode = mwindow->defaults->get(string_name, LOADMODE_NEW_TRACKS);
int Render::save_defaults(Asset *asset)
{
- mwindow->defaults->update("RENDER_FILE_PER_LABEL", file_per_label);
+ mwindow->defaults->update("RENDER_FILE_PER_LABEL", use_labels);
mwindow->defaults->update("RENDER_LOADMODE", load_mode);
mwindow->defaults->update("RENDER_RANGE_TYPE", range_type);
double total_length;
RenderFarmServer *farm_server = 0;
FileSystem fs;
- //int done = 0;
const int debug = 0;
render->in_progress = 1;
test_overwrite);
}
- //done = 0;
render->total_rendered = 0;
if(!render->result)
// Exit point
if(!package)
{
- //done = 1;
break;
}
-
-
- Timer timer;
- timer.update();
-
if(package_renderer.render_package(package))
render->result = 1;
- if(strategy == SINGLE_PASS_FARM || strategy == FILE_PER_LABEL_FARM)
- {
+ if( strategy == SINGLE_PASS_FARM ||
+ strategy == FILE_PER_LABEL_FARM ) {
+ if( !render->progress ) {
+ while( farm_server->active_clients() > 0 ) {
+ sleep(1);
+ render->show_progress();
+ }
+ }
farm_server->wait_clients();
render->result |= render->packages->packages_are_done();
}
{
render->load_profile(profile_slot, asset);
update_range_type(render->range_type);
- render_format->update(asset, &render->file_per_label);
+ render_format->update(asset, &render->use_labels);
}
int x = 10, y = 10;
lock_window("RenderWindow::create_objects");
add_subwindow(new BC_Title(x, y,
- (char*)(render->file_per_label ?
+ (char*)(render->use_labels ?
_("Select the first file to render to:") :
_("Select a file to render to:"))));
y += 25;
render_format = new RenderFormat(mwindow, this, asset);
render_format->create_objects(x, y,
- 1, 1, 1, 1, 0, 1, 0, 0, &render->file_per_label, 0);
+ 1, 1, 1, 1, 0, 1, 0, 0, &render->use_labels, 0);
BC_Title *title;
add_subwindow(title = new BC_Title(x, y, _("Render range:")));