X-Git-Url: https://git.cinelerra-gg.org/git/?p=goodguy%2Fcinelerra.git;a=blobdiff_plain;f=cinelerra-5.1%2Fcinelerra%2Frenderengine.C;h=faba961583a5ce347196f77099a9d006f9a6960e;hp=9b640d20e2ada9e5467960654c4fd1f9f267015b;hb=253199c03ee8a0247e1ee7f9ba063c320f705aea;hpb=45dd712aa4b2894f6b2390b4797262831dcdb47a diff --git a/cinelerra-5.1/cinelerra/renderengine.C b/cinelerra-5.1/cinelerra/renderengine.C index 9b640d20..faba9615 100644 --- a/cinelerra-5.1/cinelerra/renderengine.C +++ b/cinelerra-5.1/cinelerra/renderengine.C @@ -398,8 +398,10 @@ void RenderEngine::update_framerate(float framerate) void RenderEngine::wait_render_threads() { + interrupt_lock->unlock(); if( do_audio ) arender->Thread::join(); if( do_video ) vrender->Thread::join(); + interrupt_lock->lock("RenderEngine::wait_render_threads"); } void RenderEngine::interrupt_playback() @@ -460,10 +462,8 @@ void RenderEngine::run() { render_active->lock("RenderEngine::run"); - interrupt_lock->unlock(); start_render_threads(); wait_render_threads(); - interrupt_lock->lock("RenderEngine::wait_render_threads"); close_output(); @@ -473,8 +473,7 @@ void RenderEngine::run() command->get_direction() == PLAY_FORWARD ? command->end_position : command->start_position; - playback_engine->command->command = STOP; - if( playback_engine->is_playing_back && command->displacement ) { + if( command->displacement ) { position -= 1./command->get_edl()->session->frame_rate; if( position < 0 ) position = 0; }