I try to mix YUV420P video with RGB overlay with lib IPU (11.09.01) on IMX53 running Linux.
In the final application, video frames will come either from CSI or from VPU in YUV420P format (this part is working, and can be displayed)
RGB overlay will be constructed with cairo in ARGB format (this part is also working, but overlay composition is bugged [wrong colors])
The application will be the only one running on the system (excluding obviously Linux kernel, drivers, daemons...).
For the sake of this discussion, I have built a simple example that can be compiled, based on my actual code (see attachment).
When executed, I expect this code to produce 4 bands of plain color on the (VGA) display : A black band, a blue one, a green one and finally a red one.
But I see a a black band, a green one, a red one and finally a black one again.
Where is my mistake ?
Unfortunately, ARGB seems to be the only format cairo is able to produce, but this one is not supported by the IPU library.
Will I have to modify IPU library and kernel driver (if only it is possible) ?
Original Attachment has been moved to: test_ipu.c.zip
Solved! Go to Solution.
Finally, I have found a solution working directly with <ipu.h> ioctl wrappers instead of high level <mxc_ipu_hl_lib.h>
I didn't saw your post, but I arrived to a similar solution.