Hi!
I'm developing a simple application on a i.MX6Q based board connected to a 480x234 LVDS primary display (/dev/fb0 background and /dev/fb1 foreground). I'm working directly on framebuffer, no X11 or Wayland. I have these simple requirements:
I'm currently running official NXP Linux 4.1.15_1.2.0 BSP.
When the GUI is running I launch the following gstreamer 1.0 pipeline:
gst-launch-1.0 rtspsrc location=rtsp://192.168.0.102/ch1/sub ! rtpjpegdepay ! vpudec ! overlaysink overlay-width=200 overlay-height=160 overlay-left=50 overlay-top=50
The problem is that when the pipeline goes in PLAY state, the overlay covers the background, with video drawn in the 200x160 rectangle area, and black outside the rectangle. In the past I was running a YOCTO Dora based BSP, kernel 3.0.35, gstreamer-0.10 with an analogous pipeline I had the effect was exactly what I wanted, without problems.
The only way I've found to obtain the effect with the new BSP I want is drawing a 'green back' on the GUI and setting color key 0x00FF00 on /dev/fb1. Is there a simpler way to do that, i.e. simply 'not drawing' on overlay fb1 outside the video rectangle?
Any help will be appreciated. Thank you in advance!
Hi and thanks for you answer. I'm already using those ioctls to achieve the result I'm looking for, but the problem is that I have use those system calls when the gstreamer pipeline goes in play state, and it's quite complicated. I think I have to take a closer look at imx-gst1.0-plugin and imx overlaysink. With gstreamer 0.10 the analogous sink was mfw_isink and I got the result I was looking for out of the box. Probably something changed in handling the blend of fb0 / fb1 when rendering the frames.
Regards
I am facing the same problem and I don't know how to make overlaysink only output to /dev/fb1. There is no such "device" property in the overlaysink plugin. Could help me please?