[Bug 764256] New: gstreamer-vaapi fails with 30-bit colour depth display

GStreamer (GNOME Bugzilla) bugzilla at gnome.org
Sun Mar 27 09:11:41 UTC 2016


https://bugzilla.gnome.org/show_bug.cgi?id=764256

            Bug ID: 764256
           Summary: gstreamer-vaapi fails with 30-bit colour depth display
    Classification: Platform
           Product: GStreamer
           Version: 1.6.3
                OS: Linux
            Status: NEW
          Severity: normal
          Priority: Normal
         Component: gstreamer-vaapi
          Assignee: gstreamer-bugs at lists.freedesktop.org
          Reporter: elfarto at elfarto.com
        QA Contact: gstreamer-bugs at lists.freedesktop.org
                CC: bsreerenj at gmail.com, vjaquez at igalia.com
     GNOME version: ---

Created attachment 324831
  --> https://bugzilla.gnome.org/attachment.cgi?id=324831&action=edit
Allows 30-bit colour depth to be used

gstreamer-vaapi fails to open a window when the display is set to 30-bit colour
depth. Here's the output:

[stephen at localhost ~]$ gst-launch-1.0 playbin
uri=rtsp://192.168.0.13/ch0_0.h264
Setting pipeline to PAUSED ...
Pipeline is live and does not need PREROLL ...
Progress: (open) Opening Stream
Progress: (connect) Connecting to rtsp://192.168.0.13/ch0_0.h264
Progress: (open) Retrieving server options
Progress: (open) Retrieving media info
Progress: (request) SETUP stream 0
Progress: (open) Opened Stream
Setting pipeline to PLAYING ...
New clock: GstSystemClock
Progress: (request) Sending PLAY request
Progress: (request) Sending PLAY request
Progress: (request) Sent PLAY request
libva info: VA-API version 0.38.1
libva info: va_getDriverName() returns 0
libva info: Trying to open /usr/lib64/dri/nvidia_drv_video.so
libva info: Found init function __vaDriverInit_0_38
libva info: va_openDriver() returns 0
Got context from element 'vaapidecode': gst.vaapi.Display=context,
gst.vaapi.Display=(GstVaapiDisplay)NULL;
Redistribute latency...
X Error of failed request:  BadMatch (invalid parameter attributes)
  Major opcode of failed request:  1 (X_CreateWindow)
  Serial number of failed request:  25
  Current serial number in output stream:  28


I tracked down the error to this bit of code in gstvaapiutils_x11.c:

  XGetWindowAttributes (dpy, rootwin, &wattr);
  depth = wattr.depth;
  if (depth != 15 && depth != 16 && depth != 24 && depth != 32)
    depth = 24;

which clamps the colour depth to 24, which fails with the NVIDIA binary driver
as it doesn't advertise a TrueColor visual with a depth of 24 (only 30 and 32).
Allowing the depth to be 30, lets everything work as expected.

-- 
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