imx6q: imxv4l2sink and overlay fb0/fb1

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

imx6q: imxv4l2sink and overlay fb0/fb1

1,552件の閲覧回数
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 件の賞賛
3 返答(返信)

1,249件の閲覧回数
joanxie
NXP TechSupport
NXP TechSupport

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

0 件の賞賛

1,145件の閲覧回数
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 件の賞賛

1,135件の閲覧回数
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 件の賞賛