Skip to content

Raw_fixes part 2

Alex requested to merge branch/raw_fixes into branch/unified

Change summary:

  • 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).

  • benchmarks for the first two changes: http://www.magiclantern.fm/forum/index.php?topic=17091.msg165829#msg165829 (14E2991 is control, E203CF9 is 64-byte EDMAC instead of 4096, 36B111D also has the 32MB-512B buffer limit)

  • I also tried a small change in buffering heuristics (de4e1d12e24a), 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.

Merge request reports