projects
/
goodguy
/
history.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
alt transport keys, snap editing, grab focus, inv hilight clr, subtitle fix
[goodguy/history.git]
/
cinelerra-5.1
/
cinelerra
/
renderengine.C
diff --git
a/cinelerra-5.1/cinelerra/renderengine.C
b/cinelerra-5.1/cinelerra/renderengine.C
index bb8f43a865c86f4dc92a3afe4b0d4a6aa5a64ce9..628255b56a814c5a44996ed8cfb84e4fc21e7566 100644
(file)
--- 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 input_lock;
delete start_lock;
delete output_lock;
+ delete render_active;
delete interrupt_lock;
delete first_frame_lock;
delete config;
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__);
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__);
}
//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();
if(!interrupted) playback_engine->command->command = STOP;
playback_engine->stop_tracking();