EDMAC doesn't have to be aligned at 4096 bytes; 64-byte seems to be fine, didn't try lower values. Frame size is still rounded to 512 multiples (card sector size). This trick will allow us to shift the raw buffer address and insert the MLV header before raw data, without increasing frame size.
a small speed-up: fixed a bug introduced with the SRM memory backend, where we've got memory buffers larger than 32MB, which are slower to write (limit is 32MB-512B). The latter is the maximum size that can be written with one DMA transfer, so larger buffers would require two transfers; the second transfer is usually small (slower to write).
I also tried a small change in buffering heuristics (de4e1d1), which I reverted later (benchmarks on the same forum thread didn't show any significant difference).
small cleanups, removed old sound code, the frame skipping "feature"...
P.S. I did not yet exploit the MLV feature of saving the frames in any order (not in the one that was captured), so there's still room for improvement, speed-wise.
I am not able to feel / see any difference on the crippled SL1 but also wasn't able to see any negative effects. Getting the same speeds with the old raw_rec and this one with different resolutions tried.
I have a 500D that I use for planetary imaging and I found the frame skipping feature to allow substantially more data than without the feature enabled, given the slowness of writing to the card on that camera. I discovered it had been removed last night :-(. I can't really tell if the featuring you've added to raw_rec conflicts with the frame skipping feature or whether the perceived value of the feature for the general ML user was low. Any ideas?