projects
/
goodguy
/
cinelerra.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fix get_auto_at_position equivalence test, fix KeySpeedAutoEdge init toggle value...
[goodguy/cinelerra.git]
/
cinelerra-5.1
/
cinelerra
/
module.C
diff --git
a/cinelerra-5.1/cinelerra/module.C
b/cinelerra-5.1/cinelerra/module.C
index a2e17bb22f085ff2a7ebbb5cc328ad6205378ba6..c6990275851b087474cc839214c18ce7cd144dec 100644
(file)
--- a/
cinelerra-5.1/cinelerra/module.C
+++ b/
cinelerra-5.1/cinelerra/module.C
@@
-50,7
+50,7
@@
Module::Module(RenderEngine *renderengine,
this->commonrender = commonrender;
this->plugin_array = plugin_array;
this->track = track;
this->commonrender = commonrender;
this->plugin_array = plugin_array;
this->track = track;
- transition
= 0
;
+ transition
_id = -1
;
transition_server = 0;
attachments = 0;
total_attachments = 0;
transition_server = 0;
attachments = 0;
total_attachments = 0;
@@
-59,7
+59,6
@@
Module::Module(RenderEngine *renderengine,
nested_edl = 0;
nested_renderengine = 0;
nested_command = 0;
nested_edl = 0;
nested_renderengine = 0;
nested_command = 0;
- private_cache = 0;
cache = 0;
}
cache = 0;
}
@@
-86,7
+85,6
@@
Module::~Module()
delete nested_renderengine;
delete nested_command;
delete nested_renderengine;
delete nested_command;
- if(private_cache) delete cache;
}
void Module::create_objects()
}
void Module::create_objects()
@@
-272,10
+270,9
@@
int Module::test_plugins()
(!attachment && use_plugin)) return 1;
// Plugin not the same
(!attachment && use_plugin)) return 1;
// Plugin not the same
- if(plugin &&
- attachment &&
- attachment->plugin &&
- !plugin->identical(attachment->plugin)) return 1;
+ if( plugin && attachment && attachment->plugin && (
+ plugin->gui_id != attachment->plugin->gui_id ||
+ !plugin->identical(attachment->plugin) ) ) return 1;
}
return 0;
}
return 0;
@@
-284,8
+281,9
@@
int Module::test_plugins()
void Module::update_transition(int64_t current_position,
int direction)
{
void Module::update_transition(int64_t current_position,
int direction)
{
- transition = track->get_current_transition(current_position,
+
Plugin *
transition = track->get_current_transition(current_position,
direction, 0, 0);
direction, 0, 0);
+ transition_id = transition ? transition->orig_id : -1;
// For situations where we had a transition but not anymore,
// keep the server open.
// For situations where we had a transition but not anymore,
// keep the server open.
@@
-296,13
+294,14
@@
void Module::update_transition(int64_t current_position,
// If the current transition differs from the previous transition, delete the
// server.
if (transition && transition_server) {
// If the current transition differs from the previous transition, delete the
// server.
if (transition && transition_server) {
- if (strcmp(transition->title, transition_server->plugin->title)) {
+ Plugin *plugin = transition->edl->tracks->plugin_exists(transition_server->plugin_id);
+ if (!plugin || strcmp(transition->title, plugin->title)) {
transition_server->close_plugin();
delete transition_server;
transition_server = 0;
}
else {
transition_server->close_plugin();
delete transition_server;
transition_server = 0;
}
else {
- transition_server->plugin
= transition
;
+ transition_server->plugin
_id = transition_id
;
}
}
}
}