X-Git-Url: https://git.cinelerra-gg.org/git/?a=blobdiff_plain;f=cinelerra-5.1%2Fcinelerra%2Findexfile.C;h=e73a87100a8fa56cd769ffc28807e3c2eeec60c0;hb=6f73adad624d1ca2b397791784d0c778fcce8d39;hp=7bbd295586bedb4c85f0f2b897df5f9054e89c35;hpb=8cad02a7b02e4a8543bc5514892b51aed877a193;p=goodguy%2Fcinelerra.git diff --git a/cinelerra-5.1/cinelerra/indexfile.C b/cinelerra-5.1/cinelerra/indexfile.C index 7bbd2955..e73a8710 100644 --- a/cinelerra-5.1/cinelerra/indexfile.C +++ b/cinelerra-5.1/cinelerra/indexfile.C @@ -70,19 +70,22 @@ #include #include +#ifdef HAVE_ISOFS #include +#endif // check for isofs volume_id for dvd/cdrom static int udf_volume_id(const char *path, char *fname) { + int result = 1; +#ifdef HAVE_ISOFS struct stat st; if( stat(path,&st) ) return 1; // search mounted devices FILE *fp = fopen("/proc/mounts","r"); if( !fp ) return 1; - int result = 1; while( result && !feof(fp) && !ferror(fp) ) { char devpath[BCTEXTLEN], mpath[BCTEXTLEN]; char options[BCTEXTLEN], line[BCTEXTLEN]; @@ -122,6 +125,7 @@ static int udf_volume_id(const char *path, char *fname) } fclose(fp); +#endif return result; } @@ -232,6 +236,15 @@ void IndexFile::delete_index(Preferences *preferences, remove_file(index_filename); } +void IndexFile::delete_index_files(Preferences *preferences, + Indexable *indexable) +{ + delete_index(preferences, indexable, ".toc"); + delete_index(preferences, indexable, ".idx"); + delete_index(preferences, indexable, ".mkr"); +} + + int IndexFile::open_file() { int result = 0; @@ -328,6 +341,11 @@ int IndexFile::open_source() FileSystem fs; asset->index_state->index_bytes = fs.get_size(asset->path); source_length = source->get_audio_length(); + int proxy_scale = asset->proxy_scale; + if( proxy_scale > 0 ) { + asset->width = asset->actual_width * proxy_scale; + asset->height = asset->actual_height * proxy_scale; + } } } else @@ -772,7 +790,7 @@ SET_TRACE // A different algorithm has to be used if it's 1 sample per pixel and the // index is used. Now the min and max values are equal so we join the max samples. if(mwindow->edl->local_session->zoom_sample == 1) { - canvas->draw_line(x2 - 1, prev_y1, x2, y1, pixmap); + canvas->draw_bline(x2 - 1, !rect_audio ? prev_y1 : center_pixel, x2, y1, pixmap); } else { // Extend line height if it doesn't connect to previous line @@ -783,7 +801,7 @@ SET_TRACE else { first_frame = 0; } - canvas->draw_line(x2, y1, x2, y2, pixmap); + canvas->draw_bline(x2, y1, x2, !rect_audio ? y2 : center_pixel, pixmap); } prev_y1 = next_y1; prev_y2 = next_y2;