X-Git-Url: https://git.cinelerra-gg.org/git/?a=blobdiff_plain;f=cinelerra-5.1%2Fcinelerra%2Findexfile.C;h=b8c0af6957a57b2c7eb96df02678e5977e24a8cb;hb=c9c0e07706fad701a70ee0d1ffb0fcb6304f138c;hp=e73a87100a8fa56cd769ffc28807e3c2eeec60c0;hpb=3a7f190f52e534135f81fa84ec7be5a5beac257b;p=goodguy%2Fcinelerra.git diff --git a/cinelerra-5.1/cinelerra/indexfile.C b/cinelerra-5.1/cinelerra/indexfile.C index e73a8710..b8c0af69 100644 --- a/cinelerra-5.1/cinelerra/indexfile.C +++ b/cinelerra-5.1/cinelerra/indexfile.C @@ -374,9 +374,10 @@ void IndexFile::close_source() delete render_engine; render_engine = 0; - - delete cache; - cache = 0; + if( cache ) { + cache->remove_user(); + cache = 0; + } } int64_t IndexFile::get_required_scale() @@ -707,10 +708,9 @@ SET_TRACE // Start and length of fragment to read from file in bytes. float *buffer = 0; int buffer_shared = 0; - int rect_audio = mwindow->preferences->rectify_audio;; - int center_pixel = !rect_audio ? - mwindow->edl->local_session->zoom_track / 2 : - mwindow->edl->local_session->zoom_track; + int rect_audio = mwindow->preferences->rectify_audio; + int data_h = edit->track->data_h; + int center_pixel = !rect_audio ? data_h/2 : data_h; if( edit->track->show_titles() ) center_pixel += mwindow->theme->get_image("title_bg_data")->get_h(); @@ -747,9 +747,9 @@ SET_TRACE int prev_y1 = center_pixel; int prev_y2 = center_pixel; int first_frame = 1; - int zoom_y = !rect_audio ? - mwindow->edl->local_session->zoom_y / 2 : - mwindow->edl->local_session->zoom_y; + int zoom_y = mwindow->edl->local_session->zoom_y * data_h / + mwindow->edl->local_session->zoom_atrack; + if( !rect_audio ) zoom_y /= 2; int max_y = center_pixel + zoom_y - 1; edit_position = (x + pixmap->pixmap_x - virtual_edit_x) * project_zoom; int64_t speed_position = edit->startsource;