improve delays created by vicon drawing locks, reset_cache segv fix, gang track toolt...
[goodguy/cinelerra.git] / cinelerra-5.1 / cinelerra / amodule.C
index fb102c5cf703d7ebbdc25fd66f9bf8075659382f..5de58f4e3a49d21e45ea620fe0fed9e84204cf40 100644 (file)
@@ -49,6 +49,7 @@
 #include "theme.h"
 #include "transition.h"
 #include "transportque.h"
+#include "tracks.h"
 #include <string.h>
 
 
@@ -280,13 +281,12 @@ int AModule::import_samples(AEdit *edit,
                edit_sample_rate = nested_edl->session->sample_rate;
                int command = direction == PLAY_REVERSE ?
                        NORMAL_REWIND : NORMAL_FWD;
-               if( !nested_command ) {
+               if( !nested_command )
                        nested_command = new TransportCommand;
-                       nested_command->command = command;
-                       nested_command->get_edl()->copy_all(nested_edl);
-                       nested_command->change_type = CHANGE_ALL;
-                       nested_command->realtime = renderengine->command->realtime;
-               }
+               nested_command->command = command;
+               nested_command->get_edl()->copy_all(nested_edl);
+               nested_command->change_type = CHANGE_ALL;
+               nested_command->realtime = renderengine->command->realtime;
                if( !nested_renderengine ) {
                        nested_renderengine = new RenderEngine(0, get_preferences(), 0, 1);
                        nested_renderengine->set_acache(get_cache());
@@ -501,13 +501,9 @@ if(debug) printf("AModule::render %d %jd\n", __LINE__, fragment_len);
 
 // Clamp to end of transition
                        int64_t transition_len = 0;
-
-                       if(transition &&
-                               previous_edit)
-                       {
-                               transition_len = transition->length *
-                                       sample_rate /
-                                       edl_rate;
+                       Plugin *transition = get_edl()->tracks->plugin_exists(transition_id);
+                       if( transition && previous_edit ) {
+                               transition_len = transition->length * sample_rate / edl_rate;
                                if(direction == PLAY_FORWARD &&
                                        start_position < edit_startproject + transition_len &&
                                        start_position + fragment_len > edit_startproject + transition_len)