imx6q: imxv4l2sink and overlay fb0/fb1

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

imx6q: imxv4l2sink and overlay fb0/fb1

1,502 Views
jasonfox
Contributor I

On our device, we need to have our application run on FB1 with a video feed displayed behind it.   Video needs to be on the background because the application is supposed to show other information on top of the video. The video is fed from a camera on demand and is not running all the time.  When we need to have video displayed, we set up a color key with our application and start a gstreamer-1.0 pipeline using imxv4l2sink, with the imxv4l2sink displaying the video on FB0.  All of this works great UNTIL the video ends and we stop the pipeline.  When the pipeline displaying the video is stopped, FB1 is blanked and the application no longer shows.  

Our application is running on Yocto Morty.  I have the gstreamer-imx elements from the github repo.

I can re-enable the global alpha and get the application to show again, but, of course, the blanking of the display is not acceptable.  It seems that imxv4l2sink is determined to shut off the FB1 overlay display when it is done, even though it is displaying to FB0.  (I have tried overlaysink, but that always seems to be displayed on top of the application.  We need the video behind an allowed to show through.) 

Unfortunately, this is a new requirement for our product and no one here is that familiar with how the alpha blending and all is supposed to work.

Is imxv4l2sink the wrong way to do this?  Is there some way to keep imxv4l2sink from turning off FB1?

Thanks for any help and wish I had a better understanding of how this is supposed to work.

0 Kudos
3 Replies

1,199 Views
joanxie
NXP TechSupport
NXP TechSupport

did you try to use "echo "0" > /sys/class/graphics/fb1/blank", does it work for you?

0 Kudos

1,095 Views
vaudoitlaurent
Contributor IV

Hi,

did you solved your problem?

 

i have exactly the same problem, on a board based on yocto warrior with nxp bsp.

 

Regards

 

Laurent

0 Kudos

1,085 Views
vaudoitlaurent
Contributor IV

Hi,

i've gone deeper in my problem and found that:

the problem that when imxv4l2sink is stopped there is a call to gst_imx_v4l2_close_device

and this will set global alpha to 255. if i comment this line, i have no more the problem of fb1 disappearing.

 

after this, when i stop the pipeline, i just have a "reinit" of the screen.

i've seen that when sending v4l2 ioctls STREAMON/STREAMOFF, the dirver mxc_vout will blank/unblanck the framebuffer, and when calling the mxcfb_blank function, the 

screen is "reinit".

Would you have an idea of why when we blanck/unblank on fb0 (even just with an echo in /sys/class/graphics/fb0/blank), it looks like even the fb1 is blanked/unblank?

 

Is there something i'm missing?

Thanks in advance for your help

Regards

Laurent

 

 

0 Kudos