summaryrefslogtreecommitdiff
path: root/sys
diff options
context:
space:
mode:
authorVíctor Manuel Jáquez Leal <vjaquez@igalia.com>2021-03-31 11:13:52 +0200
committerVíctor Manuel Jáquez Leal <vjaquez@igalia.com>2021-04-02 17:18:10 +0200
commitf987cd8df9222e4aca695e9057d9b92b281ea62c (patch)
treefd08a37bdc4fe5dd5e77032e2a96222d667af0d3 /sys
parent5acd08f4c1610748811c84ad4826c22092848265 (diff)
downloadgstreamer-plugins-bad-f987cd8df9222e4aca695e9057d9b92b281ea62c.tar.gz
va: caps: Add image formats in raw caps only for non-iHD.
This plugin, for decoders more concretely, assumes that a VA config can do certain color conversions when mapping frames onto CPU's memory. This assumption was valid for i965 and Gallium drivers which generates valid outputs in bitstreams testers (v.gr. fluster). Nonetheless, iHD, even when it generates acceptable rendered frames, output's MD5 of tests weren't valid. This patch append the image formats, for color conversion when mapping to memory, for non-iHD drivers. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2128>
Diffstat (limited to 'sys')
-rw-r--r--sys/va/gstvacaps.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/sys/va/gstvacaps.c b/sys/va/gstvacaps.c
index 9a4ccb4ee..e421c812b 100644
--- a/sys/va/gstvacaps.c
+++ b/sys/va/gstvacaps.c
@@ -222,11 +222,19 @@ gst_va_create_raw_caps_from_config (GstVaDisplay * display, VAConfigID config)
}
/* raw caps */
/* XXX(victor): assumption -- drivers can only download to image
- * formats with same chroma of surface's format
+ * formats with same chroma of surface's format.
+ *
+ * This assumption is only valid for i965 and Gallium (so far).
+ * iHD's color space conversor, in decoders, has some problems or
+ * outputs wrong MD5 in tests.
*/
{
GstCaps *raw_caps;
- GArray *image_formats = gst_va_display_get_image_formats (display);
+ GArray *image_formats = NULL;
+
+ if (!gst_va_display_is_implementation (display,
+ GST_VA_IMPLEMENTATION_INTEL_IHD))
+ image_formats = gst_va_display_get_image_formats (display);
if (!image_formats) {
raw_caps = gst_caps_copy (base_caps);