Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package gstreamer-plugins-vaapi for openSUSE:Factory checked in at 2021-02-15 23:14:53 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/gstreamer-plugins-vaapi (Old) and /work/SRC/openSUSE:Factory/.gstreamer-plugins-vaapi.new.28504 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "gstreamer-plugins-vaapi" Mon Feb 15 23:14:53 2021 rev:42 rq:871207 version:1.18.3 Changes: -------- --- /work/SRC/openSUSE:Factory/gstreamer-plugins-vaapi/gstreamer-plugins-vaapi.changes 2021-01-21 21:54:24.241771362 +0100 +++ /work/SRC/openSUSE:Factory/.gstreamer-plugins-vaapi.new.28504/gstreamer-plugins-vaapi.changes 2021-02-15 23:16:58.523456305 +0100 @@ -1,0 +2,11 @@ +Thu Jan 21 21:41:35 UTC 2021 - Bj??rn Lie <bjorn....@gmail.com> + +- Add gst-vaapi-glx-iterate-over-FBConfig.patch: glx: Iterate over + FBConfig and select 8 bit color size. Texture upload mechanism + used by gstreamer-vaapi relies on 8 bpc. In latest mesa versions + the first fbconfig might not be 8 bit, so iterate over it to find + the correct config with supported values. This also adds 8 bit + alpha size to the framebuffer configuration which is required to + get it working properly. + +------------------------------------------------------------------- New: ---- gst-vaapi-glx-iterate-over-FBConfig.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ gstreamer-plugins-vaapi.spec ++++++ --- /var/tmp/diff_new_pack.m786cx/_old 2021-02-15 23:16:59.079457135 +0100 +++ /var/tmp/diff_new_pack.m786cx/_new 2021-02-15 23:16:59.079457135 +0100 @@ -26,6 +26,8 @@ Group: Productivity/Multimedia/Other URL: https://gstreamer.freedesktop.org Source0: %{url}/src/gstreamer-vaapi/gstreamer-vaapi-%{version}.tar.xz +# PATCH-FIX-UPSTREAM gst-vaapi-glx-iterate-over-FBConfig.patch -- glx: Iterate over FBConfig and select 8 bit color size +Patch0: gst-vaapi-glx-iterate-over-FBConfig.patch BuildRequires: Mesa-devel BuildRequires: Mesa-libGLESv3-devel @@ -87,7 +89,6 @@ %install %meson_install -find %{buildroot} -type f -name "*.la" -delete -print %post -p /sbin/ldconfig %postun -p /sbin/ldconfig ++++++ gst-vaapi-glx-iterate-over-FBConfig.patch ++++++ >From 0b5c0a36a6fd923f0b2bb11580fd355fb13ce021 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rafa=C5=82=20Dzi=C4=99giel?= <rafostar.git...@gmail.com> Date: Wed, 20 Jan 2021 10:42:09 +0100 Subject: [PATCH] glx: Iterate over FBConfig and select 8 bit color size Texture upload mechanism used by gstreamer-vaapi relies on 8 bpc. In latest mesa versions the first fbconfig might not be 8 bit, so iterate over it to find the correct config with supported values. This also adds 8 bit alpha size to the framebuffer configuration which is required to get it working properly. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/411> --- gst-libs/gst/vaapi/gstvaapiutils_glx.c | 40 ++++++++++++++++++++++++-- 1 file changed, 38 insertions(+), 2 deletions(-) diff --git a/gst-libs/gst/vaapi/gstvaapiutils_glx.c b/gst-libs/gst/vaapi/gstvaapiutils_glx.c index ccd7832b..f73106c2 100644 --- a/gst-libs/gst/vaapi/gstvaapiutils_glx.c +++ b/gst-libs/gst/vaapi/gstvaapiutils_glx.c @@ -301,9 +301,17 @@ gl_create_context (Display * dpy, int screen, GLContextState * parent) GLX_RED_SIZE, 8, GLX_GREEN_SIZE, 8, GLX_BLUE_SIZE, 8, + GLX_ALPHA_SIZE, 8, None }; + const GLint rgba_colors[4] = { + GLX_RED_SIZE, + GLX_GREEN_SIZE, + GLX_BLUE_SIZE, + GLX_ALPHA_SIZE + }; + cs = malloc (sizeof (*cs)); if (!cs) goto error; @@ -333,11 +341,38 @@ gl_create_context (Display * dpy, int screen, GLContextState * parent) if (!fbconfigs) goto error; - /* Find out a GLXFBConfig compatible with the parent context */ + /* Find out a 8 bit GLXFBConfig compatible with the parent context */ for (n = 0; n < n_fbconfigs; n++) { + gboolean sizes_correct = FALSE; + int cn; + status = glXGetFBConfigAttrib (parent->display, fbconfigs[n], GLX_FBCONFIG_ID, &val); - if (status == Success && val == fbconfig_id) + if (status != Success) + goto error; + if (val != fbconfig_id) + continue; + + /* Iterate over RGBA sizes in fbconfig */ + for (cn = 0; cn < 4; cn++) { + int size = 0; + + status = glXGetFBConfigAttrib (parent->display, + fbconfigs[n], rgba_colors[cn], &size); + if (status != Success) + goto error; + + /* Last check is for alpha + * and alpha is optional */ + if (cn == 3) { + if (size == 0 || size == 8) { + sizes_correct = TRUE; + break; + } + } else if (size != 8) + break; + } + if (sizes_correct) break; } if (n == n_fbconfigs) @@ -809,6 +844,7 @@ gl_create_pixmap_object (Display * dpy, guint width, guint height) GLX_RED_SIZE, 8, GLX_GREEN_SIZE, 8, GLX_BLUE_SIZE, 8, + GLX_ALPHA_SIZE, 8, GL_NONE, }; -- GitLab