[Bug 768183] New: kmssink: only works on overlay planes
GStreamer (GNOME Bugzilla)
bugzilla at gnome.org
Wed Jun 29 13:21:41 UTC 2016
https://bugzilla.gnome.org/show_bug.cgi?id=768183
Bug ID: 768183
Summary: kmssink: only works on overlay planes
Classification: Platform
Product: GStreamer
Version: git master
OS: Linux
Status: NEW
Severity: normal
Priority: Normal
Component: gst-plugins-bad
Assignee: gstreamer-bugs at lists.freedesktop.org
Reporter: javier at osg.samsung.com
QA Contact: gstreamer-bugs at lists.freedesktop.org
GNOME version: ---
Created attachment 330580
--> https://bugzilla.gnome.org/attachment.cgi?id=330580&action=edit
modetest output for Peach Pi Chromebook
By default, only overlay planes are returned by the
DRM_IOCTL_MODE_GETPLANERESOURCES ioctl unless a client user-space application
sets the DRM_CLIENT_CAP_UNIVERSAL_PLANES capability bit to also get the primary
and cursor planes.
So if a CRTC only has primary planes and not overlay planes associated, kmssink
will fail to find a suitable plane for the CRTC, i.e:
kmssink gstkmssink.c:482:gst_kms_sink_start:<kmssink0> Could not find a plane
for crtc
I'm having this issue when trying to use the CRTC of the HDMI connector in both
an Exynos5422 Odroid XU4 board and an Exynos5800 Peach Pi Chromebook, were the
HDMI CRTC only has a primary plane associated but no overlay plane. I've
attached the modetest output on my Peach Pi Chromebook.
I came up with two possible approaches to solve this:
a) Add a plane-id property so a specific plane can be used instead kmssink
finding the first overlay plane that's possible to use with a CRTC, i.e:
$ gst-launch-1.0 foo ! kmssink connector-id=36 plane-id=30
The disadvantage of this approach is that it won't work automagically as is the
case with overlay planes.
b) Add a universal-planes property to specify that universal planes is
supported and not restrict the output to only overlay planes, i.e:
$ gst-launch-1.0 foo ! kmssink connector-id=36 universal-planes=true
The disadvantage of this approach is that I believe it would be preferable to
use an overlay plane instead of a primary plane but find_plane_for_crtc () will
just return the first possible plane regardless of its type (the type can be
queried but with another ioctl call so maybe as a follow-up patch).
I'll add patches for both approaches but these are also not mutually exclusive.
Even when either of these could solve the issue, I think having both options
makes sense since solve slightly different things: choosing a specific plane to
use vs allowing to use primary planes.
--
You are receiving this mail because:
You are the QA Contact for the bug.
You are the assignee for the bug.
More information about the gstreamer-bugs
mailing list