From 7fe08d8bedadb7cbd0bdf6979ae105dae5469ca7 Mon Sep 17 00:00:00 2001 From: Seungha Yang Date: Thu, 21 Oct 2021 19:41:15 +0900 Subject: [PATCH] d3d11: Stop doc for non-default decoder and deinterlacer elements Just skip doc for non-default decoder/deinterlacer elements since there are multiple element in case that system has multiple GPUs. Part-of: --- subprojects/gst-docs/symbols/symbol_index.json | 88 ---------------------- .../gst-plugins-bad/sys/d3d11/gstd3d11av1dec.cpp | 13 +++- .../sys/d3d11/gstd3d11deinterlace.cpp | 6 ++ .../gst-plugins-bad/sys/d3d11/gstd3d11h264dec.cpp | 11 +++ .../gst-plugins-bad/sys/d3d11/gstd3d11h265dec.cpp | 11 +++ .../gst-plugins-bad/sys/d3d11/gstd3d11mpeg2dec.cpp | 11 +++ .../gst-plugins-bad/sys/d3d11/gstd3d11vp8dec.cpp | 11 +++ .../gst-plugins-bad/sys/d3d11/gstd3d11vp9dec.cpp | 12 +++ subprojects/gst-plugins-bad/sys/d3d11/plugin.cpp | 39 ++++++++++ 9 files changed, 113 insertions(+), 89 deletions(-) diff --git a/subprojects/gst-docs/symbols/symbol_index.json b/subprojects/gst-docs/symbols/symbol_index.json index 873a5a4..8702f07 100644 --- a/subprojects/gst-docs/symbols/symbol_index.json +++ b/subprojects/gst-docs/symbols/symbol_index.json @@ -8187,73 +8187,6 @@ "GstD3D11BaseFilter:adapter", "GstD3D11ColorConvert!sink", "GstD3D11ColorConvert!src", - "GstD3D11Compositor!sink_%u", - "GstD3D11Compositor!src", - "GstD3D11CompositorBackground", - "GstD3D11CompositorBackground::black", - "GstD3D11CompositorBackground::checker", - "GstD3D11CompositorBackground::transparent", - "GstD3D11CompositorBackground::white", - "GstD3D11CompositorBin!sink_%u", - "GstD3D11CompositorBin!src", - "GstD3D11CompositorBinInput", - "GstD3D11CompositorBinInput:alpha", - "GstD3D11CompositorBinInput:blend-dest-alpha", - "GstD3D11CompositorBinInput:blend-dest-rgb", - "GstD3D11CompositorBinInput:blend-factor-alpha", - "GstD3D11CompositorBinInput:blend-factor-blue", - "GstD3D11CompositorBinInput:blend-factor-green", - "GstD3D11CompositorBinInput:blend-factor-red", - "GstD3D11CompositorBinInput:blend-op-alpha", - "GstD3D11CompositorBinInput:blend-op-rgb", - "GstD3D11CompositorBinInput:blend-src-alpha", - "GstD3D11CompositorBinInput:blend-src-rgb", - "GstD3D11CompositorBinInput:height", - "GstD3D11CompositorBinInput:max-last-buffer-repeat", - "GstD3D11CompositorBinInput:repeat-after-eos", - "GstD3D11CompositorBinInput:width", - "GstD3D11CompositorBinInput:xpos", - "GstD3D11CompositorBinInput:ypos", - "GstD3D11CompositorBinInput:zorder", - "GstD3D11CompositorBinPad", - "GstD3D11CompositorBinPad::buffer-consumed", - "GstD3D11CompositorBinPad:emit-signals", - "GstD3D11CompositorBlend", - "GstD3D11CompositorBlend::blend-factor", - "GstD3D11CompositorBlend::dest-alpha", - "GstD3D11CompositorBlend::dest-color", - "GstD3D11CompositorBlend::inv-blend-factor", - "GstD3D11CompositorBlend::inv-dest-alpha", - "GstD3D11CompositorBlend::inv-dest-color", - "GstD3D11CompositorBlend::inv-src-alpha", - "GstD3D11CompositorBlend::inv-src-color", - "GstD3D11CompositorBlend::one", - "GstD3D11CompositorBlend::src-alpha", - "GstD3D11CompositorBlend::src-alpha-sat", - "GstD3D11CompositorBlend::src-color", - "GstD3D11CompositorBlend::zero", - "GstD3D11CompositorBlendOperation", - "GstD3D11CompositorBlendOperation::add", - "GstD3D11CompositorBlendOperation::max", - "GstD3D11CompositorBlendOperation::min", - "GstD3D11CompositorBlendOperation::rev-subtract", - "GstD3D11CompositorBlendOperation::subtract", - "GstD3D11CompositorPad", - "GstD3D11CompositorPad:alpha", - "GstD3D11CompositorPad:blend-dest-alpha", - "GstD3D11CompositorPad:blend-dest-rgb", - "GstD3D11CompositorPad:blend-factor-alpha", - "GstD3D11CompositorPad:blend-factor-blue", - "GstD3D11CompositorPad:blend-factor-green", - "GstD3D11CompositorPad:blend-factor-red", - "GstD3D11CompositorPad:blend-op-alpha", - "GstD3D11CompositorPad:blend-op-rgb", - "GstD3D11CompositorPad:blend-src-alpha", - "GstD3D11CompositorPad:blend-src-rgb", - "GstD3D11CompositorPad:height", - "GstD3D11CompositorPad:width", - "GstD3D11CompositorPad:xpos", - "GstD3D11CompositorPad:ypos", "GstD3D11Convert", "GstD3D11Convert!sink", "GstD3D11Convert!src", @@ -8273,13 +8206,11 @@ "GstD3D11H264Dec", "GstD3D11H264Dec!sink", "GstD3D11H264Dec!src", - "GstD3D11H264Dec:adapter", "GstD3D11H264Dec:device-id", "GstD3D11H264Dec:vendor-id", "GstD3D11H265Dec", "GstD3D11H265Dec!sink", "GstD3D11H265Dec!src", - "GstD3D11H265Dec:adapter", "GstD3D11H265Dec:device-id", "GstD3D11H265Dec:vendor-id", "GstD3D11Mpeg2Dec!sink", @@ -8320,13 +8251,11 @@ "GstD3D11Vp8Dec", "GstD3D11Vp8Dec!sink", "GstD3D11Vp8Dec!src", - "GstD3D11Vp8Dec:adapter", "GstD3D11Vp8Dec:device-id", "GstD3D11Vp8Dec:vendor-id", "GstD3D11Vp9Dec", "GstD3D11Vp9Dec!sink", "GstD3D11Vp9Dec!src", - "GstD3D11Vp9Dec:adapter", "GstD3D11Vp9Dec:device-id", "GstD3D11Vp9Dec:vendor-id", "GstD3D11WindowFullscreenToggleMode", @@ -31832,18 +31761,6 @@ "cvsobel:x-order", "cvsobel:y-order", "d3d11colorconvert", - "d3d11compositor", - "d3d11compositor:adapter", - "d3d11compositor:background", - "d3d11compositor:emit-signals", - "d3d11compositor:latency", - "d3d11compositor:min-upstream-latency", - "d3d11compositor:mixer", - "d3d11compositor:start-time", - "d3d11compositor:start-time-selection", - "d3d11compositorelement", - "d3d11compositorelement:adapter", - "d3d11compositorelement:background", "d3d11convert", "d3d11deinterlace", "d3d11deinterlace:adapter", @@ -31863,15 +31780,12 @@ "d3d11desktopdupsrc:show-cursor", "d3d11download", "d3d11h264dec", - "d3d11h264dec:adapter", "d3d11h264dec:device-id", "d3d11h264dec:vendor-id", "d3d11h265dec", - "d3d11h265dec:adapter", "d3d11h265dec:device-id", "d3d11h265dec:vendor-id", "d3d11mpeg2dec", - "d3d11mpeg2dec:adapter", "d3d11mpeg2dec:device-id", "d3d11mpeg2dec:vendor-id", "d3d11scale", @@ -31906,11 +31820,9 @@ "d3d11videosinkelement:fullscreen", "d3d11videosinkelement:fullscreen-toggle-mode", "d3d11vp8dec", - "d3d11vp8dec:adapter", "d3d11vp8dec:device-id", "d3d11vp8dec:vendor-id", "d3d11vp9dec", - "d3d11vp9dec:adapter", "d3d11vp9dec:device-id", "d3d11vp9dec:vendor-id", "d3dvideosink", diff --git a/subprojects/gst-plugins-bad/sys/d3d11/gstd3d11av1dec.cpp b/subprojects/gst-plugins-bad/sys/d3d11/gstd3d11av1dec.cpp index 290c0b5..0ede0fd 100644 --- a/subprojects/gst-plugins-bad/sys/d3d11/gstd3d11av1dec.cpp +++ b/subprojects/gst-plugins-bad/sys/d3d11/gstd3d11av1dec.cpp @@ -18,7 +18,7 @@ */ /** - * SECTION:element-d3d11av19dec + * SECTION:element-d3d11av1dec * @title: d3d11av1dec * * A Direct3D11/DXVA based AV1 video decoder @@ -440,6 +440,14 @@ gst_d3d11_av1_dec_class_init (GstD3D11AV1DecClass * klass, gpointer data) parent_class = (GstElementClass *) g_type_class_peek_parent (klass); gst_d3d11_decoder_class_data_fill_subclass_data (cdata, &klass->class_data); + + /** + * GstD3D11AV1Dec:adapter-luid: + * + * DXGI Adapter LUID for this elemenet + * + * Since: 1.20 + */ gst_d3d11_decoder_proxy_class_init (element_class, cdata, "Seungha Yang "); @@ -1342,6 +1350,9 @@ gst_d3d11_av1_dec_register (GstPlugin * plugin, GstD3D11Device * device, if (rank > 0 && index != 0) rank--; + if (index != 0) + gst_element_type_set_skip_documentation (type); + if (!gst_element_register (plugin, feature_name, rank, type)) GST_WARNING ("Failed to register plugin '%s'", type_name); diff --git a/subprojects/gst-plugins-bad/sys/d3d11/gstd3d11deinterlace.cpp b/subprojects/gst-plugins-bad/sys/d3d11/gstd3d11deinterlace.cpp index 99de843..1dd3a3b 100644 --- a/subprojects/gst-plugins-bad/sys/d3d11/gstd3d11deinterlace.cpp +++ b/subprojects/gst-plugins-bad/sys/d3d11/gstd3d11deinterlace.cpp @@ -2445,6 +2445,9 @@ gst_d3d11_deinterlace_register (GstPlugin * plugin, GstD3D11Device * device, type_name, &type_info, (GTypeFlags) 0); cdata->deinterlace_type = type; + if (index != 0) + gst_element_type_set_skip_documentation (type); + if (!gst_element_register (plugin, feature_name, GST_RANK_NONE, type)) GST_WARNING ("Failed to register plugin '%s'", type_name); @@ -2471,6 +2474,9 @@ gst_d3d11_deinterlace_register (GstPlugin * plugin, GstD3D11Device * device, if (rank > 0 && index != 0) rank--; + if (index != 0) + gst_element_type_set_skip_documentation (bin_type); + if (!gst_element_register (plugin, feature_name, rank, bin_type)) GST_WARNING ("Failed to register plugin '%s'", type_name); diff --git a/subprojects/gst-plugins-bad/sys/d3d11/gstd3d11h264dec.cpp b/subprojects/gst-plugins-bad/sys/d3d11/gstd3d11h264dec.cpp index bea4462..1c5f500 100644 --- a/subprojects/gst-plugins-bad/sys/d3d11/gstd3d11h264dec.cpp +++ b/subprojects/gst-plugins-bad/sys/d3d11/gstd3d11h264dec.cpp @@ -175,6 +175,14 @@ gst_d3d11_h264_dec_class_init (GstD3D11H264DecClass * klass, gpointer data) parent_class = (GstElementClass *) g_type_class_peek_parent (klass); gst_d3d11_decoder_class_data_fill_subclass_data (cdata, &klass->class_data); + + /** + * GstD3D11H264Dec:adapter-luid: + * + * DXGI Adapter LUID for this elemenet + * + * Since: 1.20 + */ gst_d3d11_decoder_proxy_class_init (element_class, cdata, "Seungha Yang "); @@ -1012,6 +1020,9 @@ gst_d3d11_h264_dec_register (GstPlugin * plugin, GstD3D11Device * device, if (rank > 0 && index != 0) rank--; + if (index != 0) + gst_element_type_set_skip_documentation (type); + if (!gst_element_register (plugin, feature_name, rank, type)) GST_WARNING ("Failed to register plugin '%s'", type_name); diff --git a/subprojects/gst-plugins-bad/sys/d3d11/gstd3d11h265dec.cpp b/subprojects/gst-plugins-bad/sys/d3d11/gstd3d11h265dec.cpp index 2ec9b70..fd35b7d 100644 --- a/subprojects/gst-plugins-bad/sys/d3d11/gstd3d11h265dec.cpp +++ b/subprojects/gst-plugins-bad/sys/d3d11/gstd3d11h265dec.cpp @@ -144,6 +144,14 @@ gst_d3d11_h265_dec_class_init (GstD3D11H265DecClass * klass, gpointer data) parent_class = (GstElementClass *) g_type_class_peek_parent (klass); gst_d3d11_decoder_class_data_fill_subclass_data (cdata, &klass->class_data); + + /** + * GstD3D11H265Dec:adapter-luid: + * + * DXGI Adapter LUID for this elemenet + * + * Since: 1.20 + */ gst_d3d11_decoder_proxy_class_init (element_class, cdata, "Seungha Yang "); @@ -1138,6 +1146,9 @@ gst_d3d11_h265_dec_register (GstPlugin * plugin, GstD3D11Device * device, if (rank > 0 && index != 0) rank--; + if (index != 0) + gst_element_type_set_skip_documentation (type); + if (!gst_element_register (plugin, feature_name, rank, type)) GST_WARNING ("Failed to register plugin '%s'", type_name); diff --git a/subprojects/gst-plugins-bad/sys/d3d11/gstd3d11mpeg2dec.cpp b/subprojects/gst-plugins-bad/sys/d3d11/gstd3d11mpeg2dec.cpp index 145d2f5..5f7b153 100644 --- a/subprojects/gst-plugins-bad/sys/d3d11/gstd3d11mpeg2dec.cpp +++ b/subprojects/gst-plugins-bad/sys/d3d11/gstd3d11mpeg2dec.cpp @@ -153,6 +153,14 @@ gst_d3d11_mpeg2_dec_class_init (GstD3D11Mpeg2DecClass * klass, gpointer data) parent_class = (GstElementClass *) g_type_class_peek_parent (klass); gst_d3d11_decoder_class_data_fill_subclass_data (cdata, &klass->class_data); + + /** + * GstD3D11Mpeg2Dec:adapter-luid: + * + * DXGI Adapter LUID for this elemenet + * + * Since: 1.20 + */ gst_d3d11_decoder_proxy_class_init (element_class, cdata, "Seungha Yang "); @@ -837,6 +845,9 @@ gst_d3d11_mpeg2_dec_register (GstPlugin * plugin, GstD3D11Device * device, if (rank > 0 && index != 0) rank--; + if (index != 0) + gst_element_type_set_skip_documentation (type); + if (!gst_element_register (plugin, feature_name, rank, type)) GST_WARNING ("Failed to register plugin '%s'", type_name); diff --git a/subprojects/gst-plugins-bad/sys/d3d11/gstd3d11vp8dec.cpp b/subprojects/gst-plugins-bad/sys/d3d11/gstd3d11vp8dec.cpp index e5a55aa..a065b4e 100644 --- a/subprojects/gst-plugins-bad/sys/d3d11/gstd3d11vp8dec.cpp +++ b/subprojects/gst-plugins-bad/sys/d3d11/gstd3d11vp8dec.cpp @@ -140,6 +140,14 @@ gst_d3d11_vp8_dec_class_init (GstD3D11Vp8DecClass * klass, gpointer data) parent_class = (GstElementClass *) g_type_class_peek_parent (klass); gst_d3d11_decoder_class_data_fill_subclass_data (cdata, &klass->class_data); + + /** + * GstD3D11Vp8Dec:adapter-luid: + * + * DXGI Adapter LUID for this elemenet + * + * Since: 1.20 + */ gst_d3d11_decoder_proxy_class_init (element_class, cdata, "Seungha Yang "); @@ -748,6 +756,9 @@ gst_d3d11_vp8_dec_register (GstPlugin * plugin, GstD3D11Device * device, if (rank > 0 && index != 0) rank--; + if (index != 0) + gst_element_type_set_skip_documentation (type); + if (!gst_element_register (plugin, feature_name, rank, type)) GST_WARNING ("Failed to register plugin '%s'", type_name); diff --git a/subprojects/gst-plugins-bad/sys/d3d11/gstd3d11vp9dec.cpp b/subprojects/gst-plugins-bad/sys/d3d11/gstd3d11vp9dec.cpp index abb666e..eff86f6 100644 --- a/subprojects/gst-plugins-bad/sys/d3d11/gstd3d11vp9dec.cpp +++ b/subprojects/gst-plugins-bad/sys/d3d11/gstd3d11vp9dec.cpp @@ -173,6 +173,15 @@ gst_d3d11_vp9_dec_class_init (GstD3D11Vp9DecClass * klass, gpointer data) parent_class = (GstElementClass *) g_type_class_peek_parent (klass); gst_d3d11_decoder_class_data_fill_subclass_data (cdata, &klass->class_data); + + /** + * GstD3D11Vp9Dec:adapter-luid: + * + * DXGI Adapter LUID for this elemenet + * + * Since: 1.20 + */ + gst_d3d11_decoder_proxy_class_init (element_class, cdata, "Seungha Yang "); @@ -947,6 +956,9 @@ gst_d3d11_vp9_dec_register (GstPlugin * plugin, GstD3D11Device * device, if (rank > 0 && index != 0) rank--; + if (index != 0) + gst_element_type_set_skip_documentation (type); + if (!gst_element_register (plugin, feature_name, rank, type)) GST_WARNING ("Failed to register plugin '%s'", type_name); diff --git a/subprojects/gst-plugins-bad/sys/d3d11/plugin.cpp b/subprojects/gst-plugins-bad/sys/d3d11/plugin.cpp index 895771a..f5d5694 100644 --- a/subprojects/gst-plugins-bad/sys/d3d11/plugin.cpp +++ b/subprojects/gst-plugins-bad/sys/d3d11/plugin.cpp @@ -17,6 +17,45 @@ * Boston, MA 02110-1301, USA. */ +/** + * SECTION:plugin-d3d11 + * + * Microsoft Direct3D11 plugin. + * + * This plugin consists of various video filter, screen capture source, + * video sink, and video decoder elements. + * + * GstD3D11 plugin supports H.264/AVC, H.265/HEVC, VP8, VP9, H.262/MPEG-2 video, + * and AV1 codecs for decoding as well as hardware-accelerated video + * deinterlacing. Note that minimum required OS version for video decoder and + * deinterlacing elements is Windows 8. + * + * Plugin feature names of decoders: + * - d3d11h264dec + * - d3d11h265dec + * - d3d11vp8dec + * - d3d11vp9dec + * - d3d11mpeg2dec + * - d3d11av1dec + * + * Similar to the video decoder case, deinterlacing element would be registered + * only if its supported by hardware with the feature name `d3d11deinterlace` + * + * However, depending on the hardware it runs on, some elements might not be + * registered in case that underlying hardware doesn't support the feature. + * For a system with multiple Direct3D11 compatible hardwares (i.e., GPU), + * there can be multiple plugin features having the same role. + * The naming rule for the non-primary decoder element is + * `d3d11{codec}device{index}dec` where `index` is an arbitrary index number of + * hardware starting from 1. + * + * To get a list of all available elements, user can run + * ```sh + * gst-inspect-1.0.exe d3d11 + * ``` + * + */ + #ifdef HAVE_CONFIG_H #include "config.h" #endif -- 2.7.4