X-Git-Url: http://git.cinelerra-gg.org/git/?a=blobdiff_plain;f=cinelerra-5.1%2Fcinelerra%2Frenderengine.C;h=dd03089cd97521690c16485180e0c7df1ab9db27;hb=f1fc28e0bbb5a7c0e153ef9c1abdbfb1186e1acc;hp=6bc828a37ad37bbd03f1daa72bbb449f677de00c;hpb=eb7b1a0bb84ed4f40b651b74ff72e63b97cce1c2;p=goodguy%2Fcinelerra.git diff --git a/cinelerra-5.1/cinelerra/renderengine.C b/cinelerra-5.1/cinelerra/renderengine.C index 6bc828a3..dd03089c 100644 --- a/cinelerra-5.1/cinelerra/renderengine.C +++ b/cinelerra-5.1/cinelerra/renderengine.C @@ -468,19 +468,16 @@ void RenderEngine::run() close_output(); if( playback_engine ) { - double position = command->command == CURRENT_FRAME ? command->playbackstart : + double position = command->command == CURRENT_FRAME || + command->command == LAST_FRAME ? command->playbackstart : playback_engine->is_playing_back && !interrupted ? ( command->get_direction() == PLAY_FORWARD ? command->end_position : command->start_position ) : playback_engine->get_tracking_position() ; - if( command->displacement ) { - position -= 1./command->get_edl()->session->frame_rate; - if( position < 0 ) position = 0; - } - playback_engine->command->command = STOP; + position -= command->displacement; + if( position < 0 ) position = 0; playback_engine->is_playing_back = 0; - playback_engine->tracking_position = position; - playback_engine->stop_tracking(); + playback_engine->stop_tracking(position); } render_active->unlock(); @@ -494,4 +491,3 @@ void RenderEngine::wait_done() render_active->unlock(); } -