X-Git-Url: http://git.cinelerra-gg.org/git/?a=blobdiff_plain;f=cinelerra-5.1%2Fcinelerra%2Frenderengine.C;h=c2bfb365c57c9f07e059fe52a2e6873af1bf9fd9;hb=540f653df26e5e2d1249de1f7a1a3d888dddf341;hp=6bba1270831170ccf60a0ec3e21a46c42d7f96f3;hpb=efc8fa7dc7ddcdeaa9398e09d81975a6ccf526fc;p=goodguy%2Fhistory.git diff --git a/cinelerra-5.1/cinelerra/renderengine.C b/cinelerra-5.1/cinelerra/renderengine.C index 6bba1270..c2bfb365 100644 --- a/cinelerra-5.1/cinelerra/renderengine.C +++ b/cinelerra-5.1/cinelerra/renderengine.C @@ -499,7 +499,7 @@ void RenderEngine::run() render_active->lock("RenderEngine::run"); start_render_threads(); start_lock->unlock(); - interrupt_lock->unlock(); + interrupt_lock->reset(); wait_render_threads(); @@ -516,7 +516,7 @@ void RenderEngine::run() // Fix the tracking position if(playback_engine) { - if(command->command == CURRENT_FRAME) + if(command->command == CURRENT_FRAME || command->command == LAST_FRAME) { //printf("RenderEngine::run 4.1 %d\n", playback_engine->tracking_position); playback_engine->tracking_position = command->playbackstart; @@ -527,17 +527,9 @@ void RenderEngine::run() //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 ) {