From c2f4524e32d9625bb1458654f8cffcde7fc83300 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Cerveau?= Date: Fri, 19 Feb 2021 12:09:18 +0100 Subject: [PATCH] sbc: 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: --- ext/sbc/gstsbcdec.c | 2 ++ ext/sbc/gstsbcdec.h | 2 ++ ext/sbc/gstsbcenc.c | 1 + ext/sbc/gstsbcenc.h | 2 ++ ext/sbc/sbc-plugin.c | 9 +++++---- 5 files changed, 12 insertions(+), 4 deletions(-) diff --git a/ext/sbc/gstsbcdec.c b/ext/sbc/gstsbcdec.c index 84b5157092..c6709f7263 100644 --- a/ext/sbc/gstsbcdec.c +++ b/ext/sbc/gstsbcdec.c @@ -48,6 +48,8 @@ GST_DEBUG_CATEGORY_STATIC (sbc_dec_debug); #define parent_class gst_sbc_dec_parent_class G_DEFINE_TYPE (GstSbcDec, gst_sbc_dec, GST_TYPE_AUDIO_DECODER); +GST_ELEMENT_REGISTER_DEFINE (sbcdec, "sbcdec", GST_RANK_PRIMARY, + GST_TYPE_SBC_DEC); static GstStaticPadTemplate sbc_dec_sink_factory = GST_STATIC_PAD_TEMPLATE ("sink", GST_PAD_SINK, GST_PAD_ALWAYS, diff --git a/ext/sbc/gstsbcdec.h b/ext/sbc/gstsbcdec.h index 10a15ba5c1..d2ea674169 100644 --- a/ext/sbc/gstsbcdec.h +++ b/ext/sbc/gstsbcdec.h @@ -56,4 +56,6 @@ struct _GstSbcDecClass { GType gst_sbc_dec_get_type (void); +GST_ELEMENT_REGISTER_DECLARE (sbcdec); + G_END_DECLS diff --git a/ext/sbc/gstsbcenc.c b/ext/sbc/gstsbcenc.c index 2bd03be937..6dae1bfbb2 100644 --- a/ext/sbc/gstsbcenc.c +++ b/ext/sbc/gstsbcenc.c @@ -47,6 +47,7 @@ GST_DEBUG_CATEGORY_STATIC (sbc_enc_debug); #define GST_CAT_DEFAULT sbc_enc_debug G_DEFINE_TYPE (GstSbcEnc, gst_sbc_enc, GST_TYPE_AUDIO_ENCODER); +GST_ELEMENT_REGISTER_DEFINE (sbcenc, "sbcenc", GST_RANK_NONE, GST_TYPE_SBC_ENC); static GstStaticPadTemplate sbc_enc_sink_factory = GST_STATIC_PAD_TEMPLATE ("sink", GST_PAD_SINK, GST_PAD_ALWAYS, diff --git a/ext/sbc/gstsbcenc.h b/ext/sbc/gstsbcenc.h index 129c6b20d1..fd3c94e6ba 100644 --- a/ext/sbc/gstsbcenc.h +++ b/ext/sbc/gstsbcenc.h @@ -58,4 +58,6 @@ struct _GstSbcEncClass { GType gst_sbc_enc_get_type (void); +GST_ELEMENT_REGISTER_DECLARE (sbcenc); + G_END_DECLS diff --git a/ext/sbc/sbc-plugin.c b/ext/sbc/sbc-plugin.c index 08dd38736b..3761cecde0 100644 --- a/ext/sbc/sbc-plugin.c +++ b/ext/sbc/sbc-plugin.c @@ -24,14 +24,15 @@ #include "gstsbcdec.h" #include "gstsbcenc.h" -#include static gboolean plugin_init (GstPlugin * plugin) { - gst_element_register (plugin, "sbcdec", GST_RANK_PRIMARY, GST_TYPE_SBC_DEC); - gst_element_register (plugin, "sbcenc", GST_RANK_NONE, GST_TYPE_SBC_ENC); - return TRUE; + gboolean ret = FALSE; + + ret |= GST_ELEMENT_REGISTER (sbcdec, plugin); + ret |= GST_ELEMENT_REGISTER (sbcenc, plugin); + return ret; } GST_PLUGIN_DEFINE (GST_VERSION_MAJOR,