start_lock = new Condition(1, "RenderEngine::start_lock");
output_lock = new Condition(1, "RenderEngine::output_lock");
render_active = new Condition(1,"RenderEngine::render_active");
- interrupt_lock = new Mutex("RenderEngine::interrupt_lock");
+ interrupt_lock = new Condition(1, "RenderEngine::interrupt_lock");
first_frame_lock = new Condition(1, "RenderEngine::first_frame_lock");
}
//printf("RenderEngine::run 4.1 %d\n", playback_engine->tracking_position);
if(!interrupted)
{
- if(do_audio)
- playback_engine->tracking_position =
- (double)arender->current_position /
- command->get_edl()->session->sample_rate;
- else
- if(do_video)
- {
- playback_engine->tracking_position =
- (double)vrender->current_position /
- command->get_edl()->session->frame_rate;
- }
+ playback_engine->tracking_position =
+ command->get_direction() == PLAY_FORWARD ?
+ command->end_position : command->start_position;
}
if( playback_engine->is_playing_back && command->displacement ) {