X-Git-Url: http://git.cinelerra-gg.org/git/?a=blobdiff_plain;f=cinelerra-5.1%2Fcinelerra%2Findexfile.C;h=61e81cb5e48070f76c3ec0a871d2ba6c883b2275;hb=d26ed189093987978190ee07f485a4840746c13c;hp=02ecb66aceaa8e705e216e997baf712edb49c735;hpb=a4de4732339bf38b5b225c533be1bdf60748f04a;p=goodguy%2Fhistory.git diff --git a/cinelerra-5.1/cinelerra/indexfile.C b/cinelerra-5.1/cinelerra/indexfile.C index 02ecb66a..61e81cb5 100644 --- a/cinelerra-5.1/cinelerra/indexfile.C +++ b/cinelerra-5.1/cinelerra/indexfile.C @@ -141,7 +141,6 @@ IndexFile::IndexFile(MWindow *mwindow, this->mwindow = mwindow; this->indexable = indexable; redraw_timer = new Timer; - if(indexable) { indexable->add_user(); @@ -433,6 +432,9 @@ SET_TRACE // open the source file if(open_source()) return 1; + source_channels = indexable->get_audio_channels(); + source_samplerate = indexable->get_sample_rate(); + source_length = indexable->get_audio_samples(); SET_TRACE @@ -866,16 +868,19 @@ int IndexFile::read_info(Indexable *test_indexable) // Read the file format & index state. if(test_indexable->is_asset) { - Asset asset, *test_asset = (Asset *)test_indexable; - asset.read(&xml); + Asset *test_asset = (Asset *)test_indexable; + Asset *asset = new Asset; + asset->read(&xml); + int ret = 0; //printf("IndexFile::read_info %d %f\n", __LINE__, asset->get_frame_rate()); - if( asset.format == FILE_UNKNOWN || - test_asset->format != asset.format ) - { + if( asset->format == FILE_UNKNOWN || + test_asset->format != asset->format ) { if(debug) printf("IndexFile::read_info %d\n", __LINE__); - return 1; + ret = 1; } + asset->remove_user(); + if( ret ) return ret; } else {