projects
/
goodguy
/
cinelerra.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
mask mousewheel segv bug, mask opengl sw fallback read to ram, fix tiff config withou...
[goodguy/cinelerra.git]
/
cinelerra-5.1
/
cinelerra
/
playbackengine.C
diff --git
a/cinelerra-5.1/cinelerra/playbackengine.C
b/cinelerra-5.1/cinelerra/playbackengine.C
index 71126cf82810c6fce05b7c2a1aa9dae7ce4c273b..b59e609b189c4e28f63b6078033953f344f8dc0d 100644
(file)
--- 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");
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();
}
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();
// 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;
// Dispatch the command
start_render_engine();
break;