vapostproc: Check for colorimetry changes.
authorVíctor Manuel Jáquez Leal <vjaquez@igalia.com>
Tue, 19 Jul 2022 13:10:00 +0000 (15:10 +0200)
committerGStreamer Marge Bot <gitlab-merge-bot@gstreamer-foundation.org>
Tue, 2 Aug 2022 17:39:24 +0000 (17:39 +0000)
It uses what's merged in
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2765

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

subprojects/gst-plugins-bad/sys/va/gstvavpp.c

index b84954b..ac803c9 100644 (file)
@@ -527,8 +527,14 @@ gst_va_vpp_set_info (GstVaBaseTransform * btrans, GstCaps * incaps,
     }
   }
 
-  if (!gst_video_info_is_equal (in_info, out_info)) {
-    if (GST_VIDEO_INFO_FORMAT (in_info) != GST_VIDEO_INFO_FORMAT (out_info))
+  if (gst_video_info_is_equal (in_info, out_info)) {
+    self->op_flags &= ~VPP_CONVERT_FORMAT & ~VPP_CONVERT_SIZE;
+  } else {
+    if ((GST_VIDEO_INFO_FORMAT (in_info) != GST_VIDEO_INFO_FORMAT (out_info))
+        || !gst_video_colorimetry_is_equivalent (&GST_VIDEO_INFO_COLORIMETRY
+            (in_info), GST_VIDEO_INFO_COMP_DEPTH (in_info, 0),
+            &GST_VIDEO_INFO_COLORIMETRY (out_info),
+            GST_VIDEO_INFO_COMP_DEPTH (out_info, 0)))
       self->op_flags |= VPP_CONVERT_FORMAT;
     else
       self->op_flags &= ~VPP_CONVERT_FORMAT;
@@ -539,8 +545,6 @@ gst_va_vpp_set_info (GstVaBaseTransform * btrans, GstCaps * incaps,
       self->op_flags |= VPP_CONVERT_SIZE;
     else
       self->op_flags &= ~VPP_CONVERT_SIZE;
-  } else {
-    self->op_flags &= ~VPP_CONVERT_FORMAT & ~VPP_CONVERT_SIZE;
   }
 
   infeat = gst_caps_get_features (incaps, 0);