Hi guys!
@Danne
These indexing files. Why are they needed? Or could they be created like dummies? Isn't there enough info in header/footer to just build indexing without chewing each and every frame? Amount of frames are there in header metadata already right? Maybe that is what mlrawviewer does since dng amounts sometimes varies...
I'll try to shortly explain what indexing is:
It is done not just for counting frames.
1. For speeding up reading MLV we _MUST_ find and save into index file (MAPP, MRX, IDX, etc) the physical offsets to the raw data for every video frame in current MLV. Knowing exact offset to the raw data needed (during plaing or moving frame slider) we can access it in the file _instantly_ w/o searching VIDF header over and over again. Example: if needed frame No 507, we get by function offset_to(507) and read frame size amount of bytes into the buffer. Basta

2. Sometimes frames are written in MLV file with wrong order. Example: 1,2,5,3,4,7,8,6,10,9. So they must be ordered correctly according to their timestamp. Before recording the index to MAPP they are sorted with ascending order.
If we are not saving MAPP at all, the indexing is still done in memoy for every MLV over and over again (if mlv is big enough, this takes lot of time). It is just very convenient to save all gathered data to file for getting lately with just one burst read and put to memory. That is what saves a lot of time on slower HDDs and even on SSDs for big files.
One more thing, the frame amount read from MLV header sometimes differ from actual number. So calculating frames according to this value is inaccurate and unreliable.
br,
bb