From d3d8820359ee9b86f9dcad8f9f990ace5964d4f6 Mon Sep 17 00:00:00 2001 From: Seungha Yang Date: Tue, 19 Jul 2022 01:52:48 +0900 Subject: [PATCH] d3d11converter: Use primaries and transfer function compare methods Different enum values could be functionally equal, then we don't need to do full conversion. Part-of: --- subprojects/gst-plugins-bad/sys/d3d11/gstd3d11converter.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/subprojects/gst-plugins-bad/sys/d3d11/gstd3d11converter.cpp b/subprojects/gst-plugins-bad/sys/d3d11/gstd3d11converter.cpp index e2a30d8..086e0a7 100644 --- a/subprojects/gst-plugins-bad/sys/d3d11/gstd3d11converter.cpp +++ b/subprojects/gst-plugins-bad/sys/d3d11/gstd3d11converter.cpp @@ -2947,7 +2947,10 @@ gst_d3d11_converter_new (GstD3D11Device * device, const GstVideoInfo * in_info, if (!GST_VIDEO_INFO_IS_GRAY (in_info) && !GST_VIDEO_INFO_IS_GRAY (out_info)) { if (in_info->colorimetry.transfer != GST_VIDEO_TRANSFER_UNKNOWN && out_info->colorimetry.transfer != GST_VIDEO_TRANSFER_UNKNOWN && - in_info->colorimetry.transfer != out_info->colorimetry.transfer) { + !gst_video_transfer_function_is_equivalent (in_info-> + colorimetry.transfer, GST_VIDEO_INFO_COMP_DEPTH (in_info, 0), + out_info->colorimetry.transfer, GST_VIDEO_INFO_COMP_DEPTH (out_info, + 0))) { GST_DEBUG_OBJECT (self, "Different transfer function %d -> %d", in_info->colorimetry.transfer, out_info->colorimetry.transfer); priv->fast_path = FALSE; @@ -2955,7 +2958,8 @@ gst_d3d11_converter_new (GstD3D11Device * device, const GstVideoInfo * in_info, if (in_info->colorimetry.primaries != GST_VIDEO_COLOR_PRIMARIES_UNKNOWN && out_info->colorimetry.primaries != GST_VIDEO_COLOR_PRIMARIES_UNKNOWN && - in_info->colorimetry.primaries != out_info->colorimetry.primaries) { + !gst_video_color_primaries_is_equivalent (in_info-> + colorimetry.primaries, out_info->colorimetry.primaries)) { GST_DEBUG_OBJECT (self, "Different primaries %d -> %d", in_info->colorimetry.primaries, out_info->colorimetry.primaries); priv->fast_path = FALSE; -- 2.7.4