projects
/
goodguy
/
history.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
ffmpeg filter memory leak, cursor hopper fix, added leaker.C, misc fixes
[goodguy/history.git]
/
cinelerra-5.1
/
cinelerra
/
record.C
diff --git
a/cinelerra-5.1/cinelerra/record.C
b/cinelerra-5.1/cinelerra/record.C
index 1c9f6ecd1376e80e6b14c54effa3f427ea982ce9..4cd0ae447824cf5dbd83393cd31685e49ad2c14e 100644
(file)
--- a/
cinelerra-5.1/cinelerra/record.C
+++ b/
cinelerra-5.1/cinelerra/record.C
@@
-163,7
+163,7
@@
Record::Record(MWindow *mwindow, RecordMenuItem *menu_item)
Record::~Record()
{
mwindow->gui->record = 0;
Record::~Record()
{
mwindow->gui->record = 0;
- stop();
join();
+ stop();
delete blink_status;
delete cutads_status;
stop_skimming();
delete blink_status;
delete cutads_status;
stop_skimming();
@@
-369,7
+369,7
@@
void Record::run()
if( channel )
video_stream = channel->video_stream;
}
if( channel )
video_stream = channel->video_stream;
}
- stop();
+ stop(
0
);
edl->Garbage::remove_user();
if( mwindow->gui->remote_control->deactivate() )
edl->Garbage::remove_user();
if( mwindow->gui->remote_control->deactivate() )
@@
-402,8
+402,9
@@
void Record::run()
// For pasting, clear the active region
if(load_mode == LOADMODE_PASTE)
mwindow->clear(0);
// For pasting, clear the active region
if(load_mode == LOADMODE_PASTE)
mwindow->clear(0);
-
- mwindow->paste_edls(&new_edls, load_mode, 0, -1,
+ int loadmode = load_mode == LOADMODE_RESOURCESONLY ?
+ LOADMODE_ASSETSONLY : load_mode;
+ mwindow->paste_edls(&new_edls, loadmode, 0, -1,
SESSION->labels_follow_edits,
SESSION->plugins_follow_edits,
SESSION->autos_follow_edits,
SESSION->labels_follow_edits,
SESSION->plugins_follow_edits,
SESSION->autos_follow_edits,
@@
-433,9
+434,12
@@
void Record::run()
default_asset->Garbage::remove_user();
}
default_asset->Garbage::remove_user();
}
-void Record::stop()
+void Record::stop(
int wait
)
{
stop_operation();
{
stop_operation();
+ if( wait && running() )
+ record_gui->set_done(1);
+ join();
window_lock->lock("Record::stop");
delete record_thread; record_thread = 0;
delete record_monitor; record_monitor = 0;
window_lock->lock("Record::stop");
delete record_thread; record_thread = 0;
delete record_monitor; record_monitor = 0;
@@
-588,7
+592,6
@@
void Record::start()
window_lock->unlock();
}
else {
window_lock->unlock();
}
else {
- stop(); join();
init_lock->reset();
Thread::start();
}
init_lock->reset();
Thread::start();
}
@@
-1092,8
+1095,8
@@
void Record::start_writing_file()
if( !writing_file ) {
written_frames = 0;
written_samples = 0;
if( !writing_file ) {
written_frames = 0;
written_samples = 0;
- do_video = File::
supports_video(default_asset->forma
t);
- do_audio = File::
supports_audio(default_asset->forma
t);
+ do_video = File::
renders_video(default_asse
t);
+ do_audio = File::
renders_audio(default_asse
t);
if( single_frame ) do_audio = 0;
if( !do_video && single_frame )
single_frame = 0;
if( single_frame ) do_audio = 0;
if( !do_video && single_frame )
single_frame = 0;