The waveform on the timeline is taken from idx file.
I reported a problem:
> Add an ogg music file to the timeline. The status bar indicates that an > idx file is being created, and the progress bar progressively sweeps > from 0 to 100%. Wait until the idx file is produced. The console will > display a message saying that a thread has exited.
> Now try to manipulate the audio scaling on the timeline (it’s the second > up/down arrows on the control bar at the bottom). You will see that the > audio oscilloscope on the timeline disappears. You can still play the
> audio, though. The problem appears to be with some other sound files, too, as reported here on Nov 2015: http://lists.cinelerra-cv.org/pipermail/cinelerra/2015q4/003681.html It is reported to work without problem with MP3 and WAV.
Some of my investigation work:
EDL (Edit Decision List): Cinelerra project files
~/.bcast contain idx files, which is audio data to display the waveform on tracks
Asset::write_index() is what stores some header info and writes Asset::index_buffer(,,,. data_bytes) to file.
IndexThread::run() is what calls write_index().
index_status = INDEX_NOTTESTED | INDEX_BUILDING | INDEX_READY
I am suspicious of mainindexes.C:231, which might always cause the writing of index files.
A problem that I discovered is in asset.C: Asset::write_index(char *path, int data_bytes). At the bottom of the function are the lines: // Force reread of header
index_status = INDEX_NOTTESTED;
// index_status = INDEX_READY;
index_end = audio_length;
old_index_end = 0;
index_start = 0;
Writing the index seems to effectively invalidate it, which causes the timeline to disappear, and the index to be regenerated every time an OGG music file is dragged to the timeline. So that looks wrong in itself, but doesn’t explain why Cinelerra tries to write the index for OGG music files every time, but not MP3 files.
Update 04-Apr-2016: Apparently the problem also exists with .png, .jpg .avi