I adopted the ov5640 driver to capture custom data from a FPGA connected to the parallel camera interface of an iMX6.
So far, it works well and the debug logs show that my configuration of width/height is taken into account.
End of mxc_v4l_open: v2f pix widthxheight 16 x 16
End of mxc_v4l_open: crop_bounds widthxheight 16 x 16
End of mxc_v4l_open: crop_defrect widthxheight 16 x 16
End of mxc_v4l_open: crop_current widthxheight 16 x 16
The following configs were choosen:
The bus is driven by an 8MHz clock generated within the FPGA, signals were checked by scope.
I am using gstreamer-0.10 libraries and the base plugins are installed.
Now the problem is the following:
When i create the following pipe from my application I am able to capture data, but they are wrong - means that data is not what i expected it to be. For testing purposes we implemented a linear increasing counter that is transfered from FPGA to the mcu.
Pipe: mfw_v4lsrc name=source num-buffers=2 device=/dev/video0 ! appsink name=sink
So, when I capture one buffer and decode my data (MSB,LSB) I got only a frame size of 16 x 12 Pixel containing wrong data.
Someone who has an idea why this happens.
I would also appreciate when someone could take its time to give me a starting point how to get rid of v4l2 overhead and configure the CSI/IPU completely within an own driver.