From 0438b199c826620b7438efd506de52db38b62e66 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Cerveau?= Date: Tue, 16 Feb 2021 13:49:15 +0100 Subject: [PATCH] replaygain: 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/replaygain/gstrganalysis.c | 2 ++ gst/replaygain/gstrglimiter.c | 2 ++ gst/replaygain/gstrglimiter.h | 2 ++ gst/replaygain/gstrgvolume.c | 2 ++ gst/replaygain/gstrgvolume.h | 2 ++ gst/replaygain/replaygain.c | 16 +++++----------- gst/replaygain/rganalysis.h | 2 ++ 7 files changed, 17 insertions(+), 11 deletions(-) diff --git a/gst/replaygain/gstrganalysis.c b/gst/replaygain/gstrganalysis.c index 1f013caa8d..7274749073 100644 --- a/gst/replaygain/gstrganalysis.c +++ b/gst/replaygain/gstrganalysis.c @@ -125,6 +125,8 @@ static GstStaticPadTemplate src_factory = GST_STATIC_PAD_TEMPLATE ("src", #define gst_rg_analysis_parent_class parent_class G_DEFINE_TYPE (GstRgAnalysis, gst_rg_analysis, GST_TYPE_BASE_TRANSFORM); +GST_ELEMENT_REGISTER_DEFINE (rganalysis, "rganalysis", GST_RANK_NONE, + GST_TYPE_RG_ANALYSIS); static void gst_rg_analysis_set_property (GObject * object, guint prop_id, const GValue * value, GParamSpec * pspec); diff --git a/gst/replaygain/gstrglimiter.c b/gst/replaygain/gstrglimiter.c index 0fea9cba10..f55073adf8 100644 --- a/gst/replaygain/gstrglimiter.c +++ b/gst/replaygain/gstrglimiter.c @@ -76,6 +76,8 @@ static GstStaticPadTemplate src_factory = GST_STATIC_PAD_TEMPLATE ("src", #define gst_rg_limiter_parent_class parent_class G_DEFINE_TYPE (GstRgLimiter, gst_rg_limiter, GST_TYPE_BASE_TRANSFORM); +GST_ELEMENT_REGISTER_DEFINE (rglimiter, "rglimiter", GST_RANK_NONE, + GST_TYPE_RG_LIMITER); static void gst_rg_limiter_set_property (GObject * object, guint prop_id, const GValue * value, GParamSpec * pspec); diff --git a/gst/replaygain/gstrglimiter.h b/gst/replaygain/gstrglimiter.h index 63bd8049c9..19c8457eb0 100644 --- a/gst/replaygain/gstrglimiter.h +++ b/gst/replaygain/gstrglimiter.h @@ -61,4 +61,6 @@ struct _GstRgLimiterClass GType gst_rg_limiter_get_type (void); +GST_ELEMENT_REGISTER_DECLARE (rglimiter); + #endif /* __GST_RG_LIMITER_H__ */ diff --git a/gst/replaygain/gstrgvolume.c b/gst/replaygain/gstrgvolume.c index 9b3b48424c..1b8ec9bd82 100644 --- a/gst/replaygain/gstrgvolume.c +++ b/gst/replaygain/gstrgvolume.c @@ -118,6 +118,8 @@ static GstStaticPadTemplate src_template = GST_STATIC_PAD_TEMPLATE ("src", #define gst_rg_volume_parent_class parent_class G_DEFINE_TYPE (GstRgVolume, gst_rg_volume, GST_TYPE_BIN); +GST_ELEMENT_REGISTER_DEFINE (rgvolume, "rgvolume", GST_RANK_NONE, + GST_TYPE_RG_VOLUME); static void gst_rg_volume_set_property (GObject * object, guint prop_id, const GValue * value, GParamSpec * pspec); diff --git a/gst/replaygain/gstrgvolume.h b/gst/replaygain/gstrgvolume.h index a0a5a8ce7b..f63da9d5ae 100644 --- a/gst/replaygain/gstrgvolume.h +++ b/gst/replaygain/gstrgvolume.h @@ -83,6 +83,8 @@ struct _GstRgVolumeClass GType gst_rg_volume_get_type (void); +GST_ELEMENT_REGISTER_DECLARE (rgvolume); + G_END_DECLS #endif /* __GST_RG_VOLUME_H__ */ diff --git a/gst/replaygain/replaygain.c b/gst/replaygain/replaygain.c index cb499ed50f..481544229f 100644 --- a/gst/replaygain/replaygain.c +++ b/gst/replaygain/replaygain.c @@ -33,19 +33,13 @@ static gboolean plugin_init (GstPlugin * plugin) { - if (!gst_element_register (plugin, "rganalysis", GST_RANK_NONE, - GST_TYPE_RG_ANALYSIS)) - return FALSE; + gboolean ret = FALSE; - if (!gst_element_register (plugin, "rglimiter", GST_RANK_NONE, - GST_TYPE_RG_LIMITER)) - return FALSE; + ret |= GST_ELEMENT_REGISTER (rganalysis, plugin); + ret |= GST_ELEMENT_REGISTER (rglimiter, plugin); + ret |= GST_ELEMENT_REGISTER (rgvolume, plugin); - if (!gst_element_register (plugin, "rgvolume", GST_RANK_NONE, - GST_TYPE_RG_VOLUME)) - return FALSE; - - return TRUE; + return ret; } GST_PLUGIN_DEFINE (GST_VERSION_MAJOR, GST_VERSION_MINOR, replaygain, diff --git a/gst/replaygain/rganalysis.h b/gst/replaygain/rganalysis.h index f57ad0a344..67e915017b 100644 --- a/gst/replaygain/rganalysis.h +++ b/gst/replaygain/rganalysis.h @@ -58,6 +58,8 @@ void rg_analysis_reset_album (RgAnalysisCtx * ctx); void rg_analysis_reset (RgAnalysisCtx * ctx); void rg_analysis_destroy (RgAnalysisCtx * ctx); +GST_ELEMENT_REGISTER_DECLARE (rganalysis); + G_END_DECLS #endif /* __RG_ANALYSIS_H__ */