X-Git-Url: http://git.cinelerra-gg.org/git/?p=goodguy%2Fhistory.git;a=blobdiff_plain;f=cinelerra-5.1%2Fcinelerra%2Frenderengine.C;h=6ad6629c00719f9bce155cff2a680e768ee3d34d;hp=970a91b0571f9afff27e1ca68c57f71b819db584;hb=ed1cab1d6cbde6129bbd09b9609f7bba03ab610f;hpb=007f72698b0aff633dae4bfded4d58791ab359e9 diff --git a/cinelerra-5.1/cinelerra/renderengine.C b/cinelerra-5.1/cinelerra/renderengine.C index 970a91b0..6ad6629c 100644 --- a/cinelerra-5.1/cinelerra/renderengine.C +++ b/cinelerra-5.1/cinelerra/renderengine.C @@ -76,6 +76,7 @@ RenderEngine::RenderEngine(PlaybackEngine *playback_engine, input_lock = new Condition(1, "RenderEngine::input_lock"); start_lock = new Condition(1, "RenderEngine::start_lock"); output_lock = new Condition(1, "RenderEngine::output_lock"); + render_active = new Condition(1,"RenderEngine::render_active"); interrupt_lock = new Mutex("RenderEngine::interrupt_lock"); first_frame_lock = new Condition(1, "RenderEngine::first_frame_lock"); } @@ -503,6 +504,7 @@ void RenderEngine::get_module_levels(ArrayList *module_levels, int64_t p void RenderEngine::run() { + render_active->lock("RenderEngine::run"); start_render_threads(); start_lock->unlock(); interrupt_lock->unlock(); @@ -555,7 +557,13 @@ void RenderEngine::run() input_lock->unlock(); interrupt_lock->unlock(); + render_active->unlock(); } +void RenderEngine::wait_done() +{ + render_active->lock("RenderEngine::wait_done"); + render_active->unlock(); +}