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>
This commit is contained in:
Víctor Manuel Jáquez Leal 2021-03-31 11:13:52 +02:00
parent 5acd08f4c1
commit f987cd8df9

View file

@ -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);