X-Git-Url: http://git.cinelerra-gg.org/git/?a=blobdiff_plain;ds=sidebyside;f=cinelerra-5.1%2Fcinelerra%2Frenderengine.C;h=628255b56a814c5a44996ed8cfb84e4fc21e7566;hb=b5c58822be78c8820692c916e296a2230bb2b9e2;hp=bb8f43a865c86f4dc92a3afe4b0d4a6aa5a64ce9;hpb=3ac8199743f244669cc87ceef9c3cd23710552f3;p=goodguy%2Fhistory.git diff --git a/cinelerra-5.1/cinelerra/renderengine.C b/cinelerra-5.1/cinelerra/renderengine.C index bb8f43a8..628255b5 100644 --- a/cinelerra-5.1/cinelerra/renderengine.C +++ b/cinelerra-5.1/cinelerra/renderengine.C @@ -86,6 +86,7 @@ RenderEngine::~RenderEngine() delete input_lock; delete start_lock; delete output_lock; + delete render_active; delete interrupt_lock; delete first_frame_lock; delete config; @@ -189,11 +190,11 @@ void RenderEngine::get_duty() do_video = 0; //printf("RenderEngine::get_duty %d\n", __LINE__); - if(!command->single_frame() && - get_edl()->tracks->playable_audio_tracks() && - get_edl()->session->audio_channels) + if( get_edl()->tracks->playable_audio_tracks() && + get_edl()->session->audio_channels ) { - do_audio = 1; + do_audio = !command->single_frame() ? 1 : 0; + if( command->audio_toggle ) do_audio = !do_audio; } //printf("RenderEngine::get_duty %d\n", __LINE__); @@ -543,6 +544,12 @@ void RenderEngine::run() } } + if( playback_engine->is_playing_back && command->displacement ) { + double position = playback_engine->tracking_position - + 1./command->get_edl()->session->frame_rate; + playback_engine->tracking_position = position >= 0 ? position : 0; + } + if(!interrupted) playback_engine->command->command = STOP; playback_engine->stop_tracking();