Quicker: taking less than 8 years
Having never looked at the MLVFS code, and never worked with FUSE either, I can only wildly speculate. I assume MLVFS translates accesses to the MLV file, by indexing within the file to know where each frame is, checking what's being accessed, and turning that frame into DNG (or whatever, I've never used it).
So, assuming I'm guessing right, somewhere in there it maps access location to frame. You'd want to change that mapping so accesses to frames 1 or 2 returned the data of the dng generated for 1, and you'd want to ensure there's caching. I'd guess the FUSE layer does caching for you.
For example, if we pretend frames are at even 1000 byte offsets, and that 1000 bytes of MLV frame turns into 1000 bytes of DNG, reads from offset 10 and offset 1010 into the MLV should both return the data offset by 10 in the DNG generated for the first frame.
Having never looked at the MLVFS code, and never worked with FUSE either, I can only wildly speculate. I assume MLVFS translates accesses to the MLV file, by indexing within the file to know where each frame is, checking what's being accessed, and turning that frame into DNG (or whatever, I've never used it).
So, assuming I'm guessing right, somewhere in there it maps access location to frame. You'd want to change that mapping so accesses to frames 1 or 2 returned the data of the dng generated for 1, and you'd want to ensure there's caching. I'd guess the FUSE layer does caching for you.
For example, if we pretend frames are at even 1000 byte offsets, and that 1000 bytes of MLV frame turns into 1000 bytes of DNG, reads from offset 10 and offset 1010 into the MLV should both return the data offset by 10 in the DNG generated for the first frame.