/*
* CINELERRA
* Copyright (C) 1997-2011 Adam Williams <broadcast at earthling dot net>
+ * Copyright (C) 2003-2016 Cinelerra CV contributors
*
* 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
return 0;
}
-int Render::get_strategy(int use_renderfarm, int use_labels)
+int Render::get_strategy(int use_renderfarm, int use_labels, int range_type)
{
- return use_renderfarm ?
- (use_labels ? FILE_PER_LABEL_FARM : SINGLE_PASS_FARM) :
- (use_labels ? FILE_PER_LABEL : SINGLE_PASS ) ;
+ return range_type == RANGE_1FRAME ? SINGLE_PASS :
+ use_renderfarm ?
+ (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, use_labels);
+ return get_strategy(preferences->use_renderfarm, use_labels, range_type);
}
void Render::start_progress()
render->result = 0;
// Create rendering command
- TransportCommand *command = new TransportCommand;
+ TransportCommand *command = new TransportCommand(render->preferences);
command->command = NORMAL_FWD;
command->get_edl()->copy_all(edl);
command->change_type = CHANGE_ALL;
if( !render->result ) {
// Get total range to render
render->total_start = command->start_position;
+#if 0
+ render->default_asset->timecode = command->start_position;
+ printf("tc: %f \n", render->default_asset->timecode);
+ render->default_asset->timecode += edl->session->timecode_offset;
+#endif
render->total_end = command->end_position;
total_length = render->total_end - render->total_start;
render->result = 1;
}
}
-
- render_frames = render->default_asset->frame_rate * total_length;
+// prevent single frame truncation to zero frames
+ render_frames = render->default_asset->frame_rate * total_length + 1e-4;
// Generate packages
if( !render->result ) {
mwindow->restart_brender();
if( farm_server ) delete farm_server;
delete command;
- delete audio_cache;
- delete video_cache;
+ audio_cache->remove_user();
+ video_cache->remove_user();
// Must delete packages after server
delete render->packages;
rangeselection = 0;
rangeinout = 0;
range1frame = 0;
+// *** CONTEXT_HELP ***
+ context_help_set_keyword("Single File Rendering");
}
RenderWindow::~RenderWindow()