[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