I'm starting a project involving video capture and H.264 encoding with i.MX6D/Q on a Qseven form factor board. One option is to use the MIPI CSI-2/PCAM interface, but this is not really an option. This is due to that the camera interface is not on the main connector (230 pin), stated in the Qseven standard. One option is to send video via the PCIe (x1) interface (with a PCIe driver) to the i.MX6D/Q. The max resolution/framerate is 1080p30 and I want to encode using H.264 (BP) and save to SD-card/stream to PC. The OS will be Linux.
Is that doable? Will it be "easy" to tell e.g. gstreamer to fetch video from PCIe? Or do I have to supply with some kind of custom driver?
Thanks in advance!
It depends on the data format of your video data. We had the same configuration (although the video source would be an FPGA) and setup a configuration where we used the FPGA to DMA into the DDR of the i.MX6. After some problems regarding user space mapping of kernel space memory (ARM is a bit different here to x86) we finally got a test running. But the maximum transfer rate we got (measured by putting clock counter into the transfered data) was only ~270MB/s. So in case you have 1920x1080x24x30/8 = 190MB/s it may be possible for you without to much problems.
For us it was to slow.
Increasing the payload size seems to be also no possibility as the i.MX6 seems to be limited to 128bytes (What is the PCIe i.MX6 max payload size ?)