diff --git a/gdk/gdkdmabuf.c b/gdk/gdkdmabuf.c index 6697934416..862485d470 100644 --- a/gdk/gdkdmabuf.c +++ b/gdk/gdkdmabuf.c @@ -144,8 +144,8 @@ struct _YUVCoefficients }; /* multiplied by 65536 */ -//static const YUVCoefficients itu601_narrow = { 104597, -25675, -53279, 132201 }; -static const YUVCoefficients itu601_wide = { 74711, -25864, -38050, 133176 }; +static const YUVCoefficients itu601_narrow = { 104597, -25675, -53279, 132201 }; +//static const YUVCoefficients itu601_wide = { 74711, -25864, -38050, 133176 }; static inline void get_uv_values (const YUVCoefficients *coeffs, @@ -229,7 +229,7 @@ download_nv12 (guchar *dst_data, int r, g, b; gsize xs, ys; - get_uv_values (&itu601_wide, uv_data[x / X_SUB * 2 + U], uv_data[x / X_SUB * 2 + V], &r, &g, &b); + get_uv_values (&itu601_narrow, uv_data[x / X_SUB * 2 + U], uv_data[x / X_SUB * 2 + V], &r, &g, &b); for (ys = 0; ys < Y_SUB && y + ys < height; ys++) for (xs = 0; xs < X_SUB && x + xs < width; xs++) @@ -309,7 +309,7 @@ download_yuv_3 (guchar *dst_data, int r, g, b; gsize xs, ys; - get_uv_values (&itu601_wide, u_data[x / X_SUB], v_data[x / X_SUB], &r, &g, &b); + get_uv_values (&itu601_narrow, u_data[x / X_SUB], v_data[x / X_SUB], &r, &g, &b); for (ys = 0; ys < Y_SUB && y + ys < height; ys++) for (xs = 0; xs < X_SUB && x + xs < width; xs++) @@ -365,7 +365,7 @@ download_yuyv (guchar *dst_data, { int r, g, b; - get_uv_values (&itu601_wide, src_data[2 * x + U], src_data[2 * x + V], &r, &g, &b); + get_uv_values (&itu601_narrow, src_data[2 * x + U], src_data[2 * x + V], &r, &g, &b); set_rgb_values (&dst_data[3 * x], src_data[2 * x + Y1], r, g, b); if (x + 1 < width) set_rgb_values (&dst_data[3 * (x + 1)], src_data[2 * x + Y2], r, g, b); diff --git a/gdk/gdkdmabufegl.c b/gdk/gdkdmabufegl.c index 96b17018f5..d283f9e992 100644 --- a/gdk/gdkdmabufegl.c +++ b/gdk/gdkdmabufegl.c @@ -239,7 +239,7 @@ gdk_dmabuf_egl_create_image (GdkDisplay *display, attribs[i++] = EGL_YUV_COLOR_SPACE_HINT_EXT; attribs[i++] = EGL_ITU_REC601_EXT; attribs[i++] = EGL_SAMPLE_RANGE_HINT_EXT; - attribs[i++] = EGL_YUV_FULL_RANGE_EXT; + attribs[i++] = EGL_YUV_NARROW_RANGE_EXT; #define ADD_PLANE(plane) \ { \ @@ -265,6 +265,7 @@ gdk_dmabuf_egl_create_image (GdkDisplay *display, if (dmabuf->n_planes > 3) ADD_PLANE (3); attribs[i++] = EGL_NONE; + g_assert (i < G_N_ELEMENTS (attribs)); image = eglCreateImageKHR (egl_display, EGL_NO_CONTEXT, diff --git a/gsk/gpu/gskvulkandevice.c b/gsk/gpu/gskvulkandevice.c index d6905db836..24a5ffcdbe 100644 --- a/gsk/gpu/gskvulkandevice.c +++ b/gsk/gpu/gskvulkandevice.c @@ -787,7 +787,7 @@ gsk_vulkan_device_get_vk_conversion (GskVulkanDevice *self, .sType = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO, .format = vk_format, .ycbcrModel = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601, - .ycbcrRange = VK_SAMPLER_YCBCR_RANGE_ITU_FULL, + .ycbcrRange = VK_SAMPLER_YCBCR_RANGE_ITU_NARROW, .components = (VkComponentMapping) { VK_COMPONENT_SWIZZLE_IDENTITY, VK_COMPONENT_SWIZZLE_IDENTITY,