I have several questions regarding the use of V4L2 vs OpenMax for video capture and processing with the 5.04 (April 30) EZSDK.
The goals are to capture dual video streams using the EVM expansion's board's composite (RS170 NTSC) and component at 480p. Once captured, the video streams will have be deinterlaced (if necessary) and scaled before entering the DSP for additional processing. Post DSP, the image streams will be alpha blended or displayed side by side via HDMI or the onboard LCD screen. After sorting through a mess of wiki documentation, EZSDK documentation, and E2E posts, it appears that OpenMax is the better supported framework for all VPSS components with the exception of the front end A2D converters (currently there appears to be limited format support for the TI 7002 and no support for the TI 5147). Eventually this platform will migrate to parallel digital video without the need for front end A2Ds, so it seems the OpenMax capture interface will be capable regardless.
I have already spent some time down the V4L2 road linking in the necessary kernel modules, changing the M3 loader image, disabling the matrix gui, figuring out to disable the I2C on the load of the M3 firmware (this interface changed recently and no longer matches documentation), adding support in the Kernel, etc. However, I'm not seeing any way to utilize the other VPSS elements through V4L2 in the way that OpenMax is able to.
1. Can I load the OpenMax M3 firmware and disable I2C (thereby bypassing all OpenMax control functions)? This allows me to write user space code to setup the 7002 and 5147 chips via I2C so the video inputs work for my signals. From there, it seems that I should be able to configure the VFCC to capture both channels at set resolution / timing and it should all more or less "just work". Are there any issues in operating in this way?
2. The next steps in the pipeline will use the VFPC to deinterlace and scale the video. Because the DSP algorithm needs an image pyramid (several scaled down versions of the same image), it would be ideal to offload some of that on the VFPC. Is it currently possible to queue up several passes to scale down the incoming stream? Is there any issue in deinterlacing and scaling as a single step?
3. Are there any examples of how to integrate a custom DSP algorithm into an OpenMax video pipeline? Ideally I would like to be able to wrap OpenMax around an existing framework and pass the video through it.
4. Is the source code to the M3 firmware currently available?
Thank you.