cut with active speed auto correction, add locale pref, mod prores dft profile to...
[goodguy/cinelerra.git] / cinelerra-5.1 / cinelerra / trackcanvas.C
index dda88761e8547bfc9633e3573a84d938d8ac1689..40d87c9cba68013db58a48cef0ea2f2b8b15c4f0 100644 (file)
@@ -781,7 +781,7 @@ void TrackCanvas::draw_resources(int mode,
 
        if(debug) PRINT_TRACE
        if(mode != IGNORE_THREAD)
-               gui->resource_thread->reset(pane->number);
+               gui->resource_thread->reset(pane->number, indexes_only);
 
 // Search every edit
        for(Track *current = mwindow->edl->tracks->first;
@@ -1981,7 +1981,10 @@ void TrackCanvas::draw_drag_handle()
                                        idxbl->get_audio_samples() :
                                edit->track->data_type == TRACK_VIDEO ?
                                        idxbl->get_video_frames() : -1;
-                       if( edit->startsource + edit->length >= source_len )
+                       int64_t speed_start = edit->startproject;
+                       int64_t speed_end = speed_start + edit->length;
+                       int64_t speed_length = track->speed_length(speed_start, speed_end);
+                       if( edit->startsource + speed_length >= source_len )
                                can_drag = 0;
                }
                else if( !edit->startsource )
@@ -3902,7 +3905,7 @@ int TrackCanvas::render_handle_frame(EDL *edl, int64_t pos, int mode)
                        !vrender->process_buffer(&vlt, left, 0) &&
                        !vrender->process_buffer(&vrt, pos , 0) ? 0 : 1;
                delete render_engine;
-               delete video_cache;
+               video_cache->remove_user();
                mwindow->cwindow->gui->lock_window("TrackCanvas::render_handle_frame 0");
                Canvas *canvas = mwindow->cwindow->gui->canvas;
                float ox1, oy1, ox2, oy2, cx1, cy1, cx2, cy2;