realmedia: allow per feature registration
authorStéphane Cerveau <scerveau@collabora.com>
Mon, 29 Mar 2021 11:39:20 +0000 (13:39 +0200)
committerGStreamer Marge Bot <gitlab-merge-bot@gstreamer-foundation.org>
Mon, 29 Mar 2021 19:13:36 +0000 (19:13 +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-ugly/-/merge_requests/79>

13 files changed:
gst/realmedia/pnmsrc.c
gst/realmedia/pnmsrc.h
gst/realmedia/rademux.c
gst/realmedia/rademux.h
gst/realmedia/rdtdepay.c
gst/realmedia/rdtdepay.h
gst/realmedia/rdtmanager.c
gst/realmedia/rdtmanager.h
gst/realmedia/realmedia.c
gst/realmedia/rmdemux.c
gst/realmedia/rmdemux.h
gst/realmedia/rtspreal.c
gst/realmedia/rtspreal.h

index fdd4980..07b25f4 100644 (file)
@@ -58,6 +58,8 @@ static void gst_pnm_src_uri_handler_init (gpointer g_iface,
 #define gst_pnm_src_parent_class parent_class
 G_DEFINE_TYPE_WITH_CODE (GstPNMSrc, gst_pnm_src, GST_TYPE_PUSH_SRC,
     G_IMPLEMENT_INTERFACE (GST_TYPE_URI_HANDLER, gst_pnm_src_uri_handler_init));
+GST_ELEMENT_REGISTER_DEFINE (pnmsrc, "pnmsrc",
+    GST_RANK_MARGINAL, GST_TYPE_PNM_SRC);
 
 static void gst_pnm_src_finalize (GObject * object);
 
@@ -110,13 +112,6 @@ gst_pnm_src_init (GstPNMSrc * pnmsrc)
   pnmsrc->location = g_strdup (DEFAULT_LOCATION);
 }
 
-gboolean
-gst_pnm_src_plugin_init (GstPlugin * plugin)
-{
-  return gst_element_register (plugin, "pnmsrc",
-      GST_RANK_MARGINAL, GST_TYPE_PNM_SRC);
-}
-
 static void
 gst_pnm_src_finalize (GObject * object)
 {
index fa343e7..3077226 100644 (file)
@@ -52,7 +52,7 @@ struct _GstPNMSrcClass
 };
 
 GType gst_pnm_src_get_type (void);
-gboolean gst_pnm_src_plugin_init (GstPlugin * plugin);
+GST_ELEMENT_REGISTER_DECLARE (pnmsrc);
 
 G_END_DECLS
 
index d2ca9ae..aface50 100644 (file)
@@ -61,6 +61,8 @@ GST_DEBUG_CATEGORY_STATIC (real_audio_demux_debug);
 
 #define gst_real_audio_demux_parent_class parent_class
 G_DEFINE_TYPE (GstRealAudioDemux, gst_real_audio_demux, GST_TYPE_ELEMENT);
+GST_ELEMENT_REGISTER_DEFINE (rademux, "rademux",
+    GST_RANK_SECONDARY, GST_TYPE_REAL_AUDIO_DEMUX);
 
 static GstStateChangeReturn gst_real_audio_demux_change_state (GstElement * e,
     GstStateChange transition);
@@ -996,10 +998,3 @@ gst_real_audio_demux_change_state (GstElement * element,
 
   return ret;
 }
-
-gboolean
-gst_rademux_plugin_init (GstPlugin * plugin)
-{
-  return gst_element_register (plugin, "rademux",
-      GST_RANK_SECONDARY, GST_TYPE_REAL_AUDIO_DEMUX);
-}
index 8392d15..666a1e6 100644 (file)
@@ -97,7 +97,7 @@ struct _GstRealAudioDemuxClass {
 
 GType  gst_real_audio_demux_get_type (void);
 
-gboolean gst_rademux_plugin_init (GstPlugin * plugin);
+GST_ELEMENT_REGISTER_DECLARE (rademux);
 
 G_END_DECLS
 
index 5cf5e4a..f0612e7 100644 (file)
@@ -66,6 +66,8 @@ GST_STATIC_PAD_TEMPLATE ("sink",
 
 #define gst_rdt_depay_parent_class parent_class
 G_DEFINE_TYPE (GstRDTDepay, gst_rdt_depay, GST_TYPE_ELEMENT);
+GST_ELEMENT_REGISTER_DEFINE (rdtdepay, "rdtdepay",
+    GST_RANK_MARGINAL, GST_TYPE_RDT_DEPAY);
 
 static void gst_rdt_depay_finalize (GObject * object);
 
@@ -492,10 +494,3 @@ gst_rdt_depay_change_state (GstElement * element, GstStateChange transition)
   }
   return ret;
 }
-
-gboolean
-gst_rdt_depay_plugin_init (GstPlugin * plugin)
-{
-  return gst_element_register (plugin, "rdtdepay",
-      GST_RANK_MARGINAL, GST_TYPE_RDT_DEPAY);
-}
index a4ed291..8b208fc 100644 (file)
@@ -67,7 +67,7 @@ struct _GstRDTDepayClass
 
 GType gst_rdt_depay_get_type (void);
 
-gboolean gst_rdt_depay_plugin_init (GstPlugin * plugin);
+GST_ELEMENT_REGISTER_DECLARE (rdtdepay);
 
 G_END_DECLS
 
index 742a6e2..978bc9e 100644 (file)
@@ -337,6 +337,8 @@ free_session (GstRDTManagerSession * session)
 
 #define gst_rdt_manager_parent_class parent_class
 G_DEFINE_TYPE (GstRDTManager, gst_rdt_manager, GST_TYPE_ELEMENT);
+GST_ELEMENT_REGISTER_DEFINE (rdtmanager, "rdtmanager",
+    GST_RANK_NONE, GST_TYPE_RDT_MANAGER);
 
 /* BOXED:UINT,UINT */
 #define g_marshal_value_peek_uint(v)     g_value_get_uint (v)
@@ -1367,10 +1369,3 @@ static void
 gst_rdt_manager_release_pad (GstElement * element, GstPad * pad)
 {
 }
-
-gboolean
-gst_rdt_manager_plugin_init (GstPlugin * plugin)
-{
-  return gst_element_register (plugin, "rdtmanager",
-      GST_RANK_NONE, GST_TYPE_RDT_MANAGER);
-}
index 053953c..d7a60fd 100644 (file)
@@ -86,7 +86,7 @@ struct _GstRDTManagerClass {
 
 GType gst_rdt_manager_get_type(void);
 
-gboolean gst_rdt_manager_plugin_init (GstPlugin * plugin);
+GST_ELEMENT_REGISTER_DECLARE (rdtmanager);
 
 G_END_DECLS
 
index 2b05f54..71749f6 100644 (file)
 static gboolean
 plugin_init (GstPlugin * plugin)
 {
-  if (!gst_rmdemux_plugin_init (plugin))
-    return FALSE;
+  gboolean ret = FALSE;
 
-  if (!gst_rademux_plugin_init (plugin))
-    return FALSE;
+  ret |= GST_ELEMENT_REGISTER (rmdemux, plugin);
+  ret |= GST_ELEMENT_REGISTER (rademux, plugin);
+  ret |= GST_ELEMENT_REGISTER (rdtdepay, plugin);
+  ret |= GST_ELEMENT_REGISTER (rdtmanager, plugin);
+  ret |= GST_ELEMENT_REGISTER (rtspreal, plugin);
+  ret |= GST_ELEMENT_REGISTER (pnmsrc, plugin);
 
-  if (!gst_rdt_depay_plugin_init (plugin))
-    return FALSE;
-
-  if (!gst_rdt_manager_plugin_init (plugin))
-    return FALSE;
-
-  if (!gst_rtsp_real_plugin_init (plugin))
-    return FALSE;
-
-  if (!gst_pnm_src_plugin_init (plugin))
-    return FALSE;
-
-  return TRUE;
+  return ret;
 }
 
 GST_PLUGIN_DEFINE (GST_VERSION_MAJOR,
index 68b0736..f9b6bfa 100644 (file)
@@ -192,6 +192,9 @@ gst_rmdemux_get_type (void)
   return rmdemux_type;
 }
 
+GST_ELEMENT_REGISTER_DEFINE (rmdemux, "rmdemux",
+    GST_RANK_PRIMARY, GST_TYPE_RMDEMUX);
+
 static void
 gst_rmdemux_base_init (GstRMDemuxClass * klass)
 {
@@ -2632,10 +2635,3 @@ not_enough_data:
     return GST_FLOW_OK;
   }
 }
-
-gboolean
-gst_rmdemux_plugin_init (GstPlugin * plugin)
-{
-  return gst_element_register (plugin, "rmdemux",
-      GST_RANK_PRIMARY, GST_TYPE_RMDEMUX);
-}
index 68a1700..5c2fea2 100644 (file)
@@ -158,7 +158,7 @@ struct _GstRMDemuxClass {
 #define GST_RM_AUD_xRA4 GST_MAKE_FOURCC('.','r','a','4') // Not a real audio codec
 #define GST_RM_AUD_xRA5 GST_MAKE_FOURCC('.','r','a','5') // Not a real audio codec
 
-gboolean gst_rmdemux_plugin_init (GstPlugin * plugin);
+GST_ELEMENT_REGISTER_DECLARE (rmdemux);
 
 G_END_DECLS
 
index e0e7a93..2fec037 100644 (file)
@@ -673,6 +673,8 @@ static void gst_rtsp_real_finalize (GObject * obj);
 G_DEFINE_TYPE_WITH_CODE (GstRTSPReal, gst_rtsp_real, GST_TYPE_ELEMENT,
     G_IMPLEMENT_INTERFACE (GST_TYPE_RTSP_EXTENSION,
         gst_rtsp_real_extension_init));
+GST_ELEMENT_REGISTER_DEFINE (rtspreal, "rtspreal",
+    GST_RANK_MARGINAL, GST_TYPE_RTSP_REAL);
 
 static void
 gst_rtsp_real_class_init (GstRTSPRealClass * g_class)
@@ -731,10 +733,3 @@ gst_rtsp_real_extension_init (gpointer g_iface, gpointer iface_data)
   iface->stream_select = rtsp_ext_real_stream_select;
   iface->get_transports = rtsp_ext_real_get_transports;
 }
-
-gboolean
-gst_rtsp_real_plugin_init (GstPlugin * plugin)
-{
-  return gst_element_register (plugin, "rtspreal",
-      GST_RANK_MARGINAL, GST_TYPE_RTSP_REAL);
-}
index fad1427..f5cea96 100644 (file)
@@ -85,7 +85,8 @@ struct _GstRTSPRealClass {
 
 GType gst_rtsp_real_get_type(void);
 
-gboolean gst_rtsp_real_plugin_init (GstPlugin * plugin);
+GST_ELEMENT_REGISTER_DECLARE (rtspreal);
+
 
 G_END_DECLS