projects
/
goodguy
/
history.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
search fixes, preset fixes, ladspa icon logging, igor pref theme, drag btn rollover
[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 6ad6629c00719f9bce155cff2a680e768ee3d34d..628255b56a814c5a44996ed8cfb84e4fc21e7566 100644
(file)
--- a/
cinelerra-5.1/cinelerra/renderengine.C
+++ b/
cinelerra-5.1/cinelerra/renderengine.C
@@
-66,12
+66,7
@@
RenderEngine::RenderEngine(PlaybackEngine *playback_engine,
audio_cache = 0;
video_cache = 0;
audio_cache = 0;
video_cache = 0;
- if(playback_engine && playback_engine->mwindow)
- mwindow = playback_engine->mwindow;
- else
- mwindow = 0;
- show_tc = 0;
-
+ mwindow = !playback_engine ? 0 : playback_engine->mwindow;
input_lock = new Condition(1, "RenderEngine::input_lock");
start_lock = new Condition(1, "RenderEngine::start_lock");
input_lock = new Condition(1, "RenderEngine::input_lock");
start_lock = new Condition(1, "RenderEngine::start_lock");
@@
-91,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;
@@
-194,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__);
@@
-548,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();