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 fdd4980bb41502cdeafa93a2711bd74ae5820880..07b25f42b08342b7c2dabea729a906ed343cf828 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 fa343e7662effdecd39ea1ed1bae5ee41b5ebca9..307722682752ccedfba26c72e2344c52030b7ee5 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 d2ca9ae57e3f21fc57b886683c2806785be762fc..aface5007e20f337ff22449194f64cdc9e81288a 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 8392d15431ebddc1168ba130911289464333aced..666a1e64acd89f1f8464db2bdd6c820fb849126c 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 5cf5e4a5b02d728236037328dbf361a497ab4669..f0612e742e9e7f17d8ff2bd1240a2d3a4e98f81c 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 a4ed2916a8b2d808fea0af57956d82fa0e74aa11..8b208fcd9d73b4f6e81e4994694a1de129e5abc6 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 742a6e2687e256765f64c2a4d4bf613dcadda007..978bc9ee92cac9f2f62722a812f8bcf64795fdc7 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 053953c6dc16f22701bbd064fd38b19010709d25..d7a60fd595a6e001bdc0cd04aaa8d6a88642da55 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 2b05f54835a96c2e668730331636b59e4d0ffe11..71749f63340671e4af33a91f2d9e252dc0bfbc24 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 68b0736b9a1da2ef01e5cedc09374215bea5fa78..f9b6bfaec80781029e215651f9863303bad662de 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 68a170098ca8a93e37053dac84ec9be6a62e2596..5c2fea20549b868c020c0eeaa765f0c8344effe4 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 e0e7a932ea540d812e3fc51f684095cf75efbfbf..2fec03717a9126e6264c8cea1035c8d654fe503a 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 fad1427f7d127d70358422ab81c851fac03ad521..f5cea96d5b0799320740d7f0e1efcd507c594094 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