gs: allow per feature registration
authorStéphane Cerveau <scerveau@collabora.com>
Fri, 26 Mar 2021 10:41:50 +0000 (11:41 +0100)
committerGStreamer Marge Bot <gitlab-merge-bot@gstreamer-foundation.org>
Tue, 30 Mar 2021 09:51:18 +0000 (09:51 +0000)
Split plugin into features including
dynamic types which can be indiviually
registered during a static build.

More details here:

https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661

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

ext/gs/gstgs.cpp
ext/gs/gstgssink.cpp
ext/gs/gstgssink.h
ext/gs/gstgssrc.cpp
ext/gs/gstgssrc.h

index f5c9ddf..94da7ee 100644 (file)
 #include "gstgssink.h"
 #include "gstgssrc.h"
 
-GST_DEBUG_CATEGORY (gst_gs_src_debug);
-
 static gboolean
 plugin_init (GstPlugin * plugin)
 {
-  if (!gst_element_register (plugin, "gssrc", GST_RANK_NONE, GST_TYPE_GS_SRC))
-    return FALSE;
+  gboolean ret = FALSE;
 
-  if (!gst_element_register (plugin, "gssink", GST_RANK_NONE, GST_TYPE_GS_SINK))
-    return FALSE;
+  ret |= GST_ELEMENT_REGISTER (gssrc, plugin);
+  ret |= GST_ELEMENT_REGISTER (gssink, plugin);
 
-  return TRUE;
+  return ret;
 }
 
 GST_PLUGIN_DEFINE (GST_VERSION_MAJOR,
index 3fdb7b0..07e44c7 100644 (file)
@@ -168,6 +168,7 @@ static GType gst_gs_sink_next_get_type(void) {
 
 #define gst_gs_sink_parent_class parent_class
 G_DEFINE_TYPE(GstGsSink, gst_gs_sink, GST_TYPE_BASE_SINK);
+GST_ELEMENT_REGISTER_DEFINE (gssink, "gssink", GST_RANK_NONE, GST_TYPE_GS_SINK)
 
 class GSWriteStream {
  public:
index e93ac4b..2d61134 100644 (file)
@@ -43,5 +43,7 @@ typedef enum {
   GST_GS_SINK_NEXT_NONE,
 } GstGsSinkNext;
 
+GST_ELEMENT_REGISTER_DECLARE (gssink);
+
 G_END_DECLS
 #endif // __GST_GS_SINK_H__
index c37640b..7a8d36b 100644 (file)
@@ -109,6 +109,7 @@ static void gst_gs_src_uri_handler_init(gpointer g_iface, gpointer iface_data);
   GST_DEBUG_CATEGORY_INIT(gst_gs_src_debug, "gssrc", 0, "gssrc element");
 #define gst_gs_src_parent_class parent_class
 G_DEFINE_TYPE_WITH_CODE(GstGsSrc, gst_gs_src, GST_TYPE_BASE_SRC, _do_init);
+GST_ELEMENT_REGISTER_DEFINE (gssrc, "gssrc", GST_RANK_NONE, GST_TYPE_GS_SRC)
 
 namespace gcs = google::cloud::storage;
 
index 717742f..9a30cd9 100644 (file)
@@ -29,6 +29,7 @@ G_BEGIN_DECLS
 
 #define GST_TYPE_GS_SRC (gst_gs_src_get_type())
 G_DECLARE_FINAL_TYPE(GstGsSrc, gst_gs_src, GST, GS_SRC, GstBaseSrc)
+GST_ELEMENT_REGISTER_DECLARE (gssrc);
 
 G_END_DECLS
 #endif // __GST_GS_SRC_H__