d3d11: Stop doc for non-default decoder and deinterlacer elements
authorSeungha Yang <seungha@centricular.com>
Thu, 21 Oct 2021 10:41:15 +0000 (19:41 +0900)
committerGStreamer Marge Bot <gitlab-merge-bot@gstreamer-foundation.org>
Fri, 19 Nov 2021 13:38:19 +0000 (13:38 +0000)
Just skip doc for non-default decoder/deinterlacer elements
since there are multiple element in case that system has
multiple GPUs.

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

subprojects/gst-docs/symbols/symbol_index.json
subprojects/gst-plugins-bad/sys/d3d11/gstd3d11av1dec.cpp
subprojects/gst-plugins-bad/sys/d3d11/gstd3d11deinterlace.cpp
subprojects/gst-plugins-bad/sys/d3d11/gstd3d11h264dec.cpp
subprojects/gst-plugins-bad/sys/d3d11/gstd3d11h265dec.cpp
subprojects/gst-plugins-bad/sys/d3d11/gstd3d11mpeg2dec.cpp
subprojects/gst-plugins-bad/sys/d3d11/gstd3d11vp8dec.cpp
subprojects/gst-plugins-bad/sys/d3d11/gstd3d11vp9dec.cpp
subprojects/gst-plugins-bad/sys/d3d11/plugin.cpp

index 873a5a4237db79954b405ec4dd09d62af6a395e7..8702f076cf4dd7c08df393fa93e818aa25cd58f0 100644 (file)
   "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",
   "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",
   "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",
   "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",
   "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",
   "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",
index 290c0b56e397eecded06c65e7fb57545bc97cee3..0ede0fd455560961f1f5f5fb1fccff1e083fb787 100644 (file)
@@ -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 <seungha@centricular.com>");
 
@@ -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);
 
index 99de8437b04de7c2d9bb65f7589c0c10532bbf4c..1dd3a3b03049c486d8a099c601d56fadc6ac1f0a 100644 (file)
@@ -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);
 
index bea4462ef13c28ee8868004fc9b814a427f97ffe..1c5f500a87cd5514c2be3c70f17ba3744d670996 100644 (file)
@@ -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 <seungha.yang@navercorp.com>");
 
@@ -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);
 
index 2ec9b7017c213899316e421d889269b29a2b6d13..fd35b7dee60eabe249555a48d35871cd6c4ba2e3 100644 (file)
@@ -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 <seungha.yang@navercorp.com>");
 
@@ -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);
 
index 145d2f55d7218c4a0850de2ef3b61ac1a9e13125..5f7b153e91f64ad65db262e59f609e58acd214f7 100644 (file)
@@ -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 <seungha@centricular.com>");
 
@@ -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);
 
index e5a55aa0a0e8c93913efa365620ba59597d011ea..a065b4e9936d623d8ccca3eaaccbef020b4441b4 100644 (file)
@@ -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 <seungha.yang@navercorp.com>");
 
@@ -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);
 
index abb666e7b089c6cfe96e64a84f99c8e0f69ded7d..eff86f605368ee3e29bbcafdd6bf82950e1eaba9 100644 (file)
@@ -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 <seungha.yang@navercorp.com>");
 
@@ -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);
 
index 895771a2c693bce399bdcf898ea8e84a3b02c1e8..f5d5694e1e3dc687f4943aa5f8f01362f7260c07 100644 (file)
  * 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