X-Git-Url: https://git.cinelerra-gg.org/git/?a=blobdiff_plain;f=cinelerra-5.1%2Fcinelerra%2Fplaybackengine.C;h=b59e609b189c4e28f63b6078033953f344f8dc0d;hb=4742c7a3793e92da3e3e46a32e1a4aa4d4c6b366;hp=71126cf82810c6fce05b7c2a1aa9dae7ce4c273b;hpb=aa9374b902768107ebda0cffe739325ffed372f6;p=goodguy%2Fcinelerra.git diff --git a/cinelerra-5.1/cinelerra/playbackengine.C b/cinelerra-5.1/cinelerra/playbackengine.C index 71126cf8..b59e609b 100644 --- a/cinelerra-5.1/cinelerra/playbackengine.C +++ b/cinelerra-5.1/cinelerra/playbackengine.C @@ -130,7 +130,11 @@ int PlaybackEngine::create_render_engine() void PlaybackEngine::delete_render_engine() { renderengine_lock->lock("PlaybackEngine::delete_render_engine"); - delete render_engine; render_engine = 0; + if( render_engine ) { + render_engine->interrupt_playback(); + render_engine->wait_done(); + delete render_engine; render_engine = 0; + } renderengine_lock->unlock(); } @@ -407,7 +411,8 @@ void PlaybackEngine::run() // Start tracking after arming so the tracking position doesn't change. // The tracking for a single frame command occurs during PAUSE init_tracking(); - clear_output(); + if( !command->single_frame() ) + clear_output(); // Dispatch the command start_render_engine(); break;