mixer enable playback, home/end fixes, stop throw with exrlist missing file
[goodguy/cinelerra.git] / cinelerra-5.1 / cinelerra / renderengine.C
index 6bc828a37ad37bbd03f1daa72bbb449f677de00c..dd03089cd97521690c16485180e0c7df1ab9db27 100644 (file)
@@ -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();
 }
 
-