Overlay with Virtual Framebuffer Driver

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Overlay with Virtual Framebuffer Driver

2,100 Views
sebastient
Contributor V

I am attempting to make use of this driver to render OpenVG frames and then blend them using the IPU in a gstreamer pipeline.  It is /mostly/ working correctly but the colour spaces seem to be incompatible and unaffected by changes.  Following the same setup but disabling the overlay parameter in mxc_ipu_lib_task_init the image output is correct but when the overlay is added it falls appart.  The OpenVG overlay does appear as expected but the image suffers from bad colour space, when enabling the global alpha and forcing it to 0 we continue to see this corruption.  It's as if the overlay isn't being converted to match the input or output (whichever is required for overlay).

The issue does not appear to be specific to the virtual_fb but as this is the setup we're working with I figured I'd try posting here for suggestions.  Thank you.

0 Kudos
Reply
4 Replies

1,147 Views
Philip_FSL
Contributor IV

I'm not sure I understand the configuration that you are trying to use.  Which SoC is this (MX53?)  I'm guessing that you are rendering into an virtual framebuffer with OpenVG and then trying to blend it on top of a true framebuffer using the ipu dev.  Could you explain what you are referring to by overlay (is this a blitted overlay using IPU dev or an automatic ovelay using the overlay framebuffer which is automatically blended with the main framebuffer) and how you are exactly using GStreamer.

0 Kudos
Reply

1,147 Views
sebastient
Contributor V

Sorry yes this is on the i.MX53 and rendering into the virtual framebuffer using OpenVG.  Then using the physical memory address provided by the driver I setup an overlay with mxc_ipu_lib_task_init (this is the IPUv3 library).  The implementation is an extension to the gstreamer plugin mfw_ipucsc which allows overlays to be provided.  There is no local display, the video stream is sent over the network.

Where problems arise is that it would seem the IPU is having issues with the input and overlay having different colour spaces.  If I disable the overlay everything looks fine, but if I enable it the corruption is seen.

0 Kudos
Reply

1,147 Views
Philip_FSL
Contributor IV

What is the framebuffer configuration that you are using for the virtual framebuffer?  What are the input and overlay parameters that you are providing to the ipulib?

0 Kudos
Reply

1,147 Views
sebastient
Contributor V

It turns out that for the overlay to work all three buffers need to be the same format.  So I now take the NV12 input and convert it to BGRA32, do the overlay operation, and convert the output from BGRA32 to NV12.  All works well now, except the stride is wrong for the overlay buffer (I'll have to figure that one out next).

0 Kudos
Reply