srt: add "empty" subclasses for deprecated srt{client,server}{src,sink}
authorTim-Philipp Müller <tim@centricular.com>
Fri, 19 Jun 2020 16:20:02 +0000 (17:20 +0100)
committerTim-Philipp Müller <tim@centricular.com>
Fri, 19 Jun 2020 16:20:02 +0000 (17:20 +0100)
The doc system gets confused when we register the exact same
class as multiple elements, so make a subclass for each.

Also wrap registration of deprecated elements with #ifndef GST_REMOVE_DEPRECATED.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1354>

docs/plugins/gst_plugins_cache.json
ext/srt/gstsrt.c

index 3c45632..a50f6a4 100644 (file)
                 "author": "Justin Kim <justin.joy.9to5@gmail.com>",
                 "description": "Send data over the network via SRT",
                 "hierarchy": [
+                    "GstSRTClientSink",
                     "GstSRTSink",
                     "GstBaseSink",
                     "GstElement",
                 "author": "Justin Kim <justin.joy.9to5@gmail.com>",
                 "description": "Receive data over the network via SRT",
                 "hierarchy": [
+                    "GstSRTClientSrc",
                     "GstSRTSrc",
                     "GstPushSrc",
                     "GstBaseSrc",
                 "author": "Justin Kim <justin.joy.9to5@gmail.com>",
                 "description": "Send data over the network via SRT",
                 "hierarchy": [
+                    "GstSRTServerSink",
                     "GstSRTSink",
                     "GstBaseSink",
                     "GstElement",
                 "author": "Justin Kim <justin.joy.9to5@gmail.com>",
                 "description": "Receive data over the network via SRT",
                 "hierarchy": [
+                    "GstSRTServerSrc",
                     "GstSRTSrc",
                     "GstPushSrc",
                     "GstBaseSrc",
index 875a4e2..1511f39 100644 (file)
 GST_DEBUG_CATEGORY (gst_debug_srtobject);
 #define GST_CAT_DEFAULT gst_debug_srtobject
 
+#ifndef GST_REMOVE_DEPRECATED
+
+#define GST_TYPE_SRT_CLIENT_SRC gst_srt_client_src_get_type()
+#define GST_TYPE_SRT_SERVER_SRC gst_srt_server_src_get_type()
+
+#define GST_TYPE_SRT_CLIENT_SINK gst_srt_client_sink_get_type()
+#define GST_TYPE_SRT_SERVER_SINK gst_srt_server_sink_get_type()
+
+typedef GstSRTSrc GstSRTClientSrc;
+typedef GstSRTSrcClass GstSRTClientSrcClass;
+
+typedef GstSRTSrc GstSRTServerSrc;
+typedef GstSRTSrcClass GstSRTServerSrcClass;
+
+typedef GstSRTSink GstSRTClientSink;
+typedef GstSRTSinkClass GstSRTClientSinkClass;
+
+typedef GstSRTSink GstSRTServerSink;
+typedef GstSRTSinkClass GstSRTServerSinkClass;
+
+static GType gst_srt_client_src_get_type (void);
+static GType gst_srt_server_src_get_type (void);
+static GType gst_srt_client_sink_get_type (void);
+static GType gst_srt_server_sink_get_type (void);
+
+G_DEFINE_TYPE (GstSRTClientSrc, gst_srt_client_src, GST_TYPE_SRT_SRC);
+G_DEFINE_TYPE (GstSRTServerSrc, gst_srt_server_src, GST_TYPE_SRT_SRC);
+G_DEFINE_TYPE (GstSRTClientSink, gst_srt_client_sink, GST_TYPE_SRT_SINK);
+G_DEFINE_TYPE (GstSRTServerSink, gst_srt_server_sink, GST_TYPE_SRT_SINK);
+
+static void
+gst_srt_client_src_init (GstSRTClientSrc * src)
+{
+}
+
+static void
+gst_srt_client_src_class_init (GstSRTClientSrcClass * klass)
+{
+}
+
+static void
+gst_srt_server_src_init (GstSRTServerSrc * src)
+{
+}
+
+static void
+gst_srt_server_src_class_init (GstSRTServerSrcClass * klass)
+{
+}
+
+static void
+gst_srt_client_sink_init (GstSRTClientSink * sink)
+{
+}
+
+static void
+gst_srt_client_sink_class_init (GstSRTClientSinkClass * klass)
+{
+}
+
+static void
+gst_srt_server_sink_init (GstSRTServerSink * sink)
+{
+}
+
+static void
+gst_srt_server_sink_class_init (GstSRTServerSinkClass * klass)
+{
+}
+
+#endif
+
 static gboolean
 plugin_init (GstPlugin * plugin)
 {
@@ -42,21 +114,23 @@ plugin_init (GstPlugin * plugin)
     return FALSE;
 
   /* deprecated */
+#ifndef GST_REMOVE_DEPRECATED
   if (!gst_element_register (plugin, "srtclientsrc", GST_RANK_NONE,
-          GST_TYPE_SRT_SRC))
+          GST_TYPE_SRT_CLIENT_SRC))
     return FALSE;
 
   if (!gst_element_register (plugin, "srtserversrc", GST_RANK_NONE,
-          GST_TYPE_SRT_SRC))
+          GST_TYPE_SRT_SERVER_SRC))
     return FALSE;
 
   if (!gst_element_register (plugin, "srtclientsink", GST_RANK_NONE,
-          GST_TYPE_SRT_SINK))
+          GST_TYPE_SRT_CLIENT_SINK))
     return FALSE;
 
   if (!gst_element_register (plugin, "srtserversink", GST_RANK_NONE,
-          GST_TYPE_SRT_SINK))
+          GST_TYPE_SRT_SERVER_SINK))
     return FALSE;
+#endif
 
   return TRUE;
 }