projects
/
goodguy
/
history.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
yuv colorspace/range + prefs, ffmpeg colorrange probe, x11 direct force colormodel...
[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..f5c0754a589da98204943629fd62bb2aa470b6b3 100644
(file)
--- a/
cinelerra-5.1/cinelerra/renderengine.C
+++ b/
cinelerra-5.1/cinelerra/renderengine.C
@@
-86,10
+86,11
@@
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;
- edl->Garbage::remove_user();
+
if( edl )
edl->Garbage::remove_user();
}
EDL* RenderEngine::get_edl()
}
EDL* RenderEngine::get_edl()
@@
-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();