From d731a7c2fc8cf4e1a1ab2e1b87ced9266d5de034 Mon Sep 17 00:00:00 2001 From: Seungha Yang Date: Thu, 21 Sep 2023 20:20:35 +0900 Subject: [PATCH] d3d11: Add support for GBR_16LE format Part-of: --- .../gst-plugins-bad/gst-libs/gst/d3d11/gstd3d11-private.h | 3 ++- .../gst-plugins-bad/gst-libs/gst/d3d11/gstd3d11converter.cpp | 5 +++++ .../gst-plugins-bad/gst-libs/gst/d3d11/gstd3d11device.cpp | 1 + 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/subprojects/gst-plugins-bad/gst-libs/gst/d3d11/gstd3d11-private.h b/subprojects/gst-plugins-bad/gst-libs/gst/d3d11/gstd3d11-private.h index 892416cf07..24e44c7d8b 100644 --- a/subprojects/gst-plugins-bad/gst-libs/gst/d3d11/gstd3d11-private.h +++ b/subprojects/gst-plugins-bad/gst-libs/gst/d3d11/gstd3d11-private.h @@ -34,7 +34,7 @@ G_BEGIN_DECLS "P010_10LE, P012_LE, P016_LE, I420, YV12, I420_10LE, I420_12LE, " \ "Y42B, I422_10LE, I422_12LE, Y444, Y444_10LE, Y444_12LE, Y444_16LE, " \ "GRAY8, GRAY16_LE, AYUV, AYUV64, RGBP, BGRP, GBR, GBR_10LE, GBR_12LE, " \ - "GBRA, GBRA_10LE, GBRA_12LE" + "GBR_16LE, GBRA, GBRA_10LE, GBRA_12LE" #define GST_D3D11_EXTRA_IN_FORMATS \ "Y410, YUY2" @@ -140,6 +140,7 @@ static const GstD3D11Format _gst_d3d11_default_format_map[] = { MAKE_FORMAT_MAP_RGBP (GBR, R8_UNORM, UNKNOWN), MAKE_FORMAT_MAP_RGBP (GBR_10LE, R16_UNORM, UNKNOWN), MAKE_FORMAT_MAP_RGBP (GBR_12LE, R16_UNORM, UNKNOWN), + MAKE_FORMAT_MAP_RGBP (GBR_16LE, R16_UNORM, UNKNOWN), MAKE_FORMAT_MAP_RGBP (GBRA, R8_UNORM, R8_UNORM), MAKE_FORMAT_MAP_RGBP (GBRA_10LE, R16_UNORM, R16_UNORM), MAKE_FORMAT_MAP_RGBP (GBRA_12LE, R16_UNORM, R16_UNORM), diff --git a/subprojects/gst-plugins-bad/gst-libs/gst/d3d11/gstd3d11converter.cpp b/subprojects/gst-plugins-bad/gst-libs/gst/d3d11/gstd3d11converter.cpp index 2034fae777..2a7785a9cb 100644 --- a/subprojects/gst-plugins-bad/gst-libs/gst/d3d11/gstd3d11converter.cpp +++ b/subprojects/gst-plugins-bad/gst-libs/gst/d3d11/gstd3d11converter.cpp @@ -1300,6 +1300,7 @@ get_planar_component (GstVideoFormat format, gchar * x, gchar * y, gchar * z, case GST_VIDEO_FORMAT_GBR: case GST_VIDEO_FORMAT_GBR_10LE: case GST_VIDEO_FORMAT_GBR_12LE: + case GST_VIDEO_FORMAT_GBR_16LE: *x = 'y'; *y = 'z'; *z = 'x'; @@ -1988,6 +1989,7 @@ gst_d3d11_converter_update_dest_rect (GstD3D11Converter * self) case GST_VIDEO_FORMAT_GBR: case GST_VIDEO_FORMAT_GBR_10LE: case GST_VIDEO_FORMAT_GBR_12LE: + case GST_VIDEO_FORMAT_GBR_16LE: case GST_VIDEO_FORMAT_GBRA: case GST_VIDEO_FORMAT_GBRA_10LE: case GST_VIDEO_FORMAT_GBRA_12LE: @@ -2093,6 +2095,7 @@ gst_d3d11_converter_prepare_output (GstD3D11Converter * self, case GST_VIDEO_FORMAT_GBR: case GST_VIDEO_FORMAT_GBR_10LE: case GST_VIDEO_FORMAT_GBR_12LE: + case GST_VIDEO_FORMAT_GBR_16LE: { gchar x, y, z, w; guint scale; @@ -2272,6 +2275,7 @@ gst_d3d11_converter_prepare_sample_texture (GstD3D11Converter * self, case GST_VIDEO_FORMAT_GBR: case GST_VIDEO_FORMAT_GBR_10LE: case GST_VIDEO_FORMAT_GBR_12LE: + case GST_VIDEO_FORMAT_GBR_16LE: case GST_VIDEO_FORMAT_GBRA: case GST_VIDEO_FORMAT_GBRA_10LE: case GST_VIDEO_FORMAT_GBRA_12LE: @@ -3027,6 +3031,7 @@ gst_d3d11_converter_calculate_border_color (GstD3D11Converter * self) case GST_VIDEO_FORMAT_GBR: case GST_VIDEO_FORMAT_GBR_10LE: case GST_VIDEO_FORMAT_GBR_12LE: + case GST_VIDEO_FORMAT_GBR_16LE: priv->clear_color[0][0] = converted[1]; priv->clear_color[1][0] = converted[2]; priv->clear_color[2][0] = converted[0]; diff --git a/subprojects/gst-plugins-bad/gst-libs/gst/d3d11/gstd3d11device.cpp b/subprojects/gst-plugins-bad/gst-libs/gst/d3d11/gstd3d11device.cpp index 01627087f9..93bd366bfc 100644 --- a/subprojects/gst-plugins-bad/gst-libs/gst/d3d11/gstd3d11device.cpp +++ b/subprojects/gst-plugins-bad/gst-libs/gst/d3d11/gstd3d11device.cpp @@ -566,6 +566,7 @@ gst_d3d11_device_setup_format_table (GstD3D11Device * self) case GST_VIDEO_FORMAT_GBR: case GST_VIDEO_FORMAT_GBR_10LE: case GST_VIDEO_FORMAT_GBR_12LE: + case GST_VIDEO_FORMAT_GBR_16LE: case GST_VIDEO_FORMAT_GBRA: case GST_VIDEO_FORMAT_GBRA_10LE: case GST_VIDEO_FORMAT_GBRA_12LE: