Qt and gstreamer - video decoding

  • I want to create a Qt QML GUI with different buttons and a video window. The video is decoded with gstreamer and vpudec.
    Is it possible to run the QML GUI and decode the video directly from e.g. gst-launch on the same display?

    Can the GUI and the video be send to different "layers" which have different transparenties?

    The other idea was to use the qt-gstreamer package, but I guess, that the cpu load would be much higher.

  • Gstreamer is a programming interface. It is the normal way to implement the pipeline in your program. Running a pipeline with gst-launch is just a quick way to test a pipeline, but this not the normal way to show a video as part of an application. When you are using the gstreamer API, you can implement features like pause, fast forward, etc. which are difficult or impossible on the gst-launch command line.

    When using Qt, then there is most probably a class library that wraps the gstreamer API, i.e. that makes gstreamer calls in C++ easier than using the regular C API. I believe this is the qt-gestreamer package that you are talking of. So yes, I believe you need this package.

    On the i.MX6, the first display has a video overlay. This means you can use /dev/fb0 for your regular output and /dev/fb1 for something that should be "on top" of the regular content. By default /dev/fb1 is not visible and will only get visible if you open the device. The size of the overlay can also be set arbitrarily. For example if you show a video with size 320x240, then the overlay can be restricted to that size. There are ioctl() calls to set the size and the position of this overlay window, and also the transparency

    The overlay window may automatically be triggered depending on the sink that you use in gstreamer. If you use the imxv4l2sink, then output is automatically shown on the overlay window and the window is sized to the same size as the desktop window in /dev/fb0. Which means it will cover the regular content completely, which will only be visible again, when the video is stopped, which closes the overlay again. But you can set other parameters in the sink to move it to a different framebuffer or use a different size.

    Your F&S Support Team

    F&S Elektronik Systeme GmbH
    As this is an international forum, please try to post in English.
    Da dies ein internationales Forum ist, bitten wir darum, Beiträge möglichst in Englisch zu verfassen.