vaapipostproc: Remove YUV to/from RGB color primary quirk since iHD driver has fixed in
authorUng, Teng En <teng.en.ung@intel.com>
Mon, 21 Dec 2020 05:42:00 +0000 (05:42 +0000)
committerGStreamer Merge Bot <gitlab-merge-bot@gstreamer-foundation.org>
Mon, 11 Jan 2021 11:01:57 +0000 (11:01 +0000)
https://github.com/intel/media-driver/commit/a39fe9bc051a8c3efa8f35122a1585981ec7f816.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/407>

gst-libs/gst/vaapi/gstvaapidisplay.c
gst-libs/gst/vaapi/gstvaapidisplay.h
gst-libs/gst/vaapi/gstvaapifilter.c

index 5e8a135..26c216e 100644 (file)
@@ -805,7 +805,6 @@ set_driver_quirks (GstVaapiDisplay * display)
     /* @XXX(victor): is this string enough to identify it */
     { "AMD", GST_VAAPI_DRIVER_QUIRK_NO_CHECK_SURFACE_PUT_IMAGE },
     { "i965", GST_VAAPI_DRIVER_QUIRK_NO_CHECK_VPP_COLOR_STD },
-    { "iHD", GST_VAAPI_DRIVER_QUIRK_NO_RGBYUV_VPP_COLOR_PRIMARY },
     { "i965", GST_VAAPI_DRIVER_QUIRK_MISSING_RGBA_IMAGE_FORMAT },
     { "iHD", GST_VAAPI_DRIVER_QUIRK_JPEG_ENC_SHIFT_VALUE_BY_50 },
     { "iHD", GST_VAAPI_DRIVER_QUIRK_HEVC_ENC_SLICE_NOT_SPAN_TILE },
index 07ecc82..2ca9bd3 100644 (file)
@@ -94,13 +94,6 @@ typedef struct _GstVaapiDisplay                 GstVaapiDisplay;
  *   https://gitlab.freedesktop.org/mesa/mesa/merge_requests/2016
  * @GST_VAAPI_DRIVER_QUIRK_NO_CHECK_VPP_COLOR_STD: if driver does not
  *   properly report supported vpp color standards.
- * @GST_VAAPI_DRIVER_QUIRK_NO_RGBYUV_VPP_COLOR_PRIMARY: if driver can
- *   only do CSC from YUV to RGB, and vice-versa without changing the
- *   color standard primaries.  This quirk is initially introduced to
- *   work around a problem in the intel-media-driver (iHD) reported here:
- *   https://github.com/intel/media-driver/issues/860.  Once the driver
- *   issue is fixed, we should remove this quirk.  Also see this issue:
- *   https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/issues/238
  * @GST_VAAPI_DRIVER_QUIRK_MISSING_RGBA_IMAGE_FORMAT: i965 driver doesn't
  *   report to support ARGB format, but if it's forced to create a RGBA
  *   surface, it works. Driver issue:
@@ -116,7 +109,6 @@ typedef enum
 {
   GST_VAAPI_DRIVER_QUIRK_NO_CHECK_SURFACE_PUT_IMAGE = (1U << 0),
   GST_VAAPI_DRIVER_QUIRK_NO_CHECK_VPP_COLOR_STD = (1U << 1),
-  GST_VAAPI_DRIVER_QUIRK_NO_RGBYUV_VPP_COLOR_PRIMARY = (1U << 2),
   GST_VAAPI_DRIVER_QUIRK_MISSING_RGBA_IMAGE_FORMAT = (1U << 3),
   GST_VAAPI_DRIVER_QUIRK_JPEG_ENC_SHIFT_VALUE_BY_50 = (1U << 4),
   GST_VAAPI_DRIVER_QUIRK_HEVC_ENC_SLICE_NOT_SPAN_TILE = (1U << 5),
index e3be777..a9443e4 100644 (file)
@@ -1642,22 +1642,6 @@ gst_vaapi_filter_fill_color_standards (GstVaapiFilter * filter,
   fill_color_standard (&filter->output_colorimetry,
       &pipeline_param->output_color_standard,
       &pipeline_param->output_color_properties);
-
-  /* Handle RGB <-> YUV color primary driver quirk */
-  if (gst_vaapi_display_has_driver_quirks (filter->display,
-          GST_VAAPI_DRIVER_QUIRK_NO_RGBYUV_VPP_COLOR_PRIMARY)) {
-    gboolean src_is_rgb = gst_video_colorimetry_matches
-        (&filter->input_colorimetry, GST_VIDEO_COLORIMETRY_SRGB);
-    gboolean dst_is_rgb = gst_video_colorimetry_matches
-        (&filter->output_colorimetry, GST_VIDEO_COLORIMETRY_SRGB);
-
-    if ((!src_is_rgb && dst_is_rgb) || (src_is_rgb && !dst_is_rgb)) {
-      pipeline_param->output_color_standard = VAProcColorStandardExplicit;
-      pipeline_param->output_color_properties.colour_primaries =
-          gst_video_color_primaries_to_iso (filter->
-          input_colorimetry.primaries);
-    }
-  }
 #else
   pipeline_param->surface_color_standard = VAProcColorStandardNone;
   pipeline_param->output_color_standard = VAProcColorStandardNone;