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;
- }
+ 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();