projects
/
goodguy
/
cinelerra.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
gif rework, C41 booby fix, add ext+s for list seq, features5
[goodguy/cinelerra.git]
/
cinelerra-5.1
/
cinelerra
/
renderengine.C
diff --git
a/cinelerra-5.1/cinelerra/renderengine.C
b/cinelerra-5.1/cinelerra/renderengine.C
index 9b640d20e2ada9e5467960654c4fd1f9f267015b..faba961583a5ce347196f77099a9d006f9a6960e 100644
(file)
--- a/
cinelerra-5.1/cinelerra/renderengine.C
+++ b/
cinelerra-5.1/cinelerra/renderengine.C
@@
-398,8
+398,10
@@
void RenderEngine::update_framerate(float framerate)
void RenderEngine::wait_render_threads()
{
void RenderEngine::wait_render_threads()
{
+ interrupt_lock->unlock();
if( do_audio ) arender->Thread::join();
if( do_video ) vrender->Thread::join();
if( do_audio ) arender->Thread::join();
if( do_video ) vrender->Thread::join();
+ interrupt_lock->lock("RenderEngine::wait_render_threads");
}
void RenderEngine::interrupt_playback()
}
void RenderEngine::interrupt_playback()
@@
-460,10
+462,8
@@
void RenderEngine::run()
{
render_active->lock("RenderEngine::run");
{
render_active->lock("RenderEngine::run");
- interrupt_lock->unlock();
start_render_threads();
wait_render_threads();
start_render_threads();
wait_render_threads();
- interrupt_lock->lock("RenderEngine::wait_render_threads");
close_output();
close_output();
@@
-473,8
+473,7
@@
void RenderEngine::run()
command->get_direction() == PLAY_FORWARD ?
command->end_position :
command->start_position;
command->get_direction() == PLAY_FORWARD ?
command->end_position :
command->start_position;
- playback_engine->command->command = STOP;
- if( playback_engine->is_playing_back && command->displacement ) {
+ if( command->displacement ) {
position -= 1./command->get_edl()->session->frame_rate;
if( position < 0 ) position = 0;
}
position -= 1./command->get_edl()->session->frame_rate;
if( position < 0 ) position = 0;
}