Commit 0c905f15 authored by Eric Nelson's avatar Eric Nelson Committed by Otavio Salvador

qt4-embedded: Allow use of Qt Media Player in multi-headed system

Qt-embedded can be used on multiple screens by using environment variables

The gstreamer element mfw_v4lsink used to accelerate media playback on i.MX
devices can also be pointed at different displays through the 'device'
property, but the current acceleration patch doesn't have a mechanism for
setting the property, and always uses the compiled-in default.

This patch allows userspace startup code to override the default through
the use of the 'v4lsinkdev' environment variable.

Please refer to the Qt4-embedded documentation for proper usage of the
QWS_x environment variables and the Freescale Multimedia documentation
for descriptions of the various gstreamer elements.

A sequence of this for a secondary display might be this:

	export QWS_DISPLAY=linuxfb:/dev/fb2:1
	export v4lsinkdev=/dev/video19
	my-qt-app -qws
Signed-off-by: default avatarEric Nelson <>
parent 4c291af7
......@@ -2,7 +2,10 @@
FILESEXTRAPATHS_prepend := "${THISDIR}/qt4:"
SRC_URI_append_mx5 += "file://0001-Add-support-for-i.MX-codecs-to-phonon.patch"
SRC_URI_append_mx6 += "file://0001-Add-support-for-i.MX-codecs-to-phonon.patch"
SRC_URI_append_mx6 += " \
file://0001-Add-support-for-i.MX-codecs-to-phonon.patch \
file://0002-i.MX-video-renderer-Allow-v4l-device-from-environmen.patch \
DEPENDS_append_mx5 = " virtual/kernel virtual/libgles2"
From 023befba9aad60ef58177fd987a6aa40c357b2b2 Mon Sep 17 00:00:00 2001
From: Eric Nelson <>
Date: Fri, 16 Aug 2013 11:42:23 -0700
Subject: [PATCH] i.MX video renderer: Allow v4l device from environment
The i.MX6 supports multiple IPUs and multiple V4L2 output
devices for each.
Devices are numbered starting with /dev/video16 and defined
for each configured display. In general, /dev/video16 will
correspond to the RGB (background) layer for /dev/fb0.
If a display is the first on an IPU, an additional V4L2
output will be defined that corresponds to the normally
YUV overlay (foreground) layer.
This patch allows association of the proper device for
a particular session for use in multi-headed applications.
The default is /dev/video17:
export v4lsinkdev=/dev/video17
Signed-off-by: Eric Nelson <>
src/3rdparty/phonon/gstreamer/widgetrenderer.cpp | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/src/3rdparty/phonon/gstreamer/widgetrenderer.cpp b/src/3rdparty/phonon/gstreamer/widgetrenderer.cpp
index aa4925a..a502ccd 100644
--- a/src/3rdparty/phonon/gstreamer/widgetrenderer.cpp
+++ b/src/3rdparty/phonon/gstreamer/widgetrenderer.cpp
@@ -58,9 +58,12 @@ WidgetRenderer::WidgetRenderer(VideoWidget *videoWidget)
: AbstractRenderer(videoWidget)
if ((m_videoSink = gst_element_factory_make("mfw_v4lsink", NULL)) && m_videoSink != NULL) {
+ char *videodev;
gst_object_ref (GST_OBJECT (m_videoSink)); //Take ownership
gst_object_sink (GST_OBJECT (m_videoSink));
+ videodev=getenv("v4lsinkdev");
+ if (videodev)
+ g_object_set (G_OBJECT (m_videoSink), "device", videodev, NULL);
// Clear the background with black by default
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment