From 891be511057dbcdf1f38740e55cbd376c4b25894 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Cerveau?= Date: Thu, 25 Feb 2021 15:22:15 +0100 Subject: gst-plugins: allow per feature registration 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: --- gst/siren/gstsiren.c | 11 +++++------ gst/siren/gstsirendec.c | 9 ++------- gst/siren/gstsirendec.h | 3 +-- gst/siren/gstsirenenc.c | 10 ++-------- gst/siren/gstsirenenc.h | 3 +-- 5 files changed, 11 insertions(+), 25 deletions(-) (limited to 'gst/siren') diff --git a/gst/siren/gstsiren.c b/gst/siren/gstsiren.c index 6fde346dc..eb8d1d24a 100644 --- a/gst/siren/gstsiren.c +++ b/gst/siren/gstsiren.c @@ -24,20 +24,19 @@ #include "config.h" #endif +#include "gstsiren.h" #include "gstsirendec.h" #include "gstsirenenc.h" - static gboolean plugin_init (GstPlugin * plugin) { - if (!gst_siren_dec_plugin_init (plugin)) - return FALSE; + gboolean ret = FALSE; - if (!gst_siren_enc_plugin_init (plugin)) - return FALSE; + ret |= GST_ELEMENT_REGISTER (sirendec, plugin); + ret |= GST_ELEMENT_REGISTER (sirenenc, plugin); - return TRUE; + return ret; } GST_PLUGIN_DEFINE (GST_VERSION_MAJOR, diff --git a/gst/siren/gstsirendec.c b/gst/siren/gstsirendec.c index 045bcd668..3e0baae33 100644 --- a/gst/siren/gstsirendec.c +++ b/gst/siren/gstsirendec.c @@ -65,6 +65,8 @@ static GstFlowReturn gst_siren_dec_handle_frame (GstAudioDecoder * dec, G_DEFINE_TYPE (GstSirenDec, gst_siren_dec, GST_TYPE_AUDIO_DECODER); +GST_ELEMENT_REGISTER_DEFINE (sirendec, "sirendec", + GST_RANK_MARGINAL, GST_TYPE_SIREN_DEC); static void gst_siren_dec_class_init (GstSirenDecClass * klass) @@ -248,10 +250,3 @@ decode_error: goto done; } } - -gboolean -gst_siren_dec_plugin_init (GstPlugin * plugin) -{ - return gst_element_register (plugin, "sirendec", - GST_RANK_MARGINAL, GST_TYPE_SIREN_DEC); -} diff --git a/gst/siren/gstsirendec.h b/gst/siren/gstsirendec.h index 27d7c86c8..3b5ed839d 100644 --- a/gst/siren/gstsirendec.h +++ b/gst/siren/gstsirendec.h @@ -60,8 +60,7 @@ struct _GstSirenDecClass }; GType gst_siren_dec_get_type (void); - -gboolean gst_siren_dec_plugin_init (GstPlugin * plugin); +GST_ELEMENT_REGISTER_DECLARE (sirendec); G_END_DECLS diff --git a/gst/siren/gstsirenenc.c b/gst/siren/gstsirenenc.c index b54f29c5e..2392b93ca 100644 --- a/gst/siren/gstsirenenc.c +++ b/gst/siren/gstsirenenc.c @@ -62,7 +62,8 @@ static GstFlowReturn gst_siren_enc_handle_frame (GstAudioEncoder * enc, GstBuffer * in_buf); G_DEFINE_TYPE (GstSirenEnc, gst_siren_enc, GST_TYPE_AUDIO_ENCODER); - +GST_ELEMENT_REGISTER_DEFINE (sirenenc, "sirenenc", + GST_RANK_MARGINAL, GST_TYPE_SIREN_ENC); static void gst_siren_enc_class_init (GstSirenEncClass * klass) @@ -228,10 +229,3 @@ encode_error: goto done; } } - -gboolean -gst_siren_enc_plugin_init (GstPlugin * plugin) -{ - return gst_element_register (plugin, "sirenenc", - GST_RANK_MARGINAL, GST_TYPE_SIREN_ENC); -} diff --git a/gst/siren/gstsirenenc.h b/gst/siren/gstsirenenc.h index acfb5e673..3fe1eaaf3 100644 --- a/gst/siren/gstsirenenc.h +++ b/gst/siren/gstsirenenc.h @@ -60,8 +60,7 @@ struct _GstSirenEncClass }; GType gst_siren_enc_get_type (void); - -gboolean gst_siren_enc_plugin_init (GstPlugin * plugin); +GST_ELEMENT_REGISTER_DECLARE (sirenenc); G_END_DECLS #endif /* __GST_SIREN_ENC_H__ */ -- cgit v1.2.1