Parallel DMA slave

Just been mucking around with a camera chip and an LCD, DMA for the SPI to the TFT is working nicely but now my frame rate is limited by parallel bit banged bytes from the camera.

DMA graphics courtesy of ILI9341_due

The TFT chip is actually an ILI9340 but all functionality is working fine to date.

So I am hoping to read 8 bit parallel data from the camera module (OV7670). It that can happily provide it at 5Mhz plus, idea being to use DMA to grab at least a line of data and transfer that to the LCD while swapping fresh input to a new buffer.
I looked at a DMA parallel library GitHub - delsauce/ArduinoDueParallel: Library to enable the External Memory Bus/Static Memory Controller on the Arduino Due board. but my almost non-existant C++ skills leave me scratching my head, it does not appear to support a parallel slave mode … could be wrong. The Due needs to be a slave in this case as the pixel clock from the module is the sync source.

This is purely an exercise in having a cheap LCD and camera and seeing if anything comparable to actual video can be achieved. currently at 1.2 seconds (now halved to 1.2) for a 320x240 frame, though some poorly documented registers mean that is receiving 99372 pixels currently of which only 320x240 are valid image data… this could be sped up a little with some windowing but is about the limit bit banging works at.
no luck with a 50khz interrupt yet either…