From fb29c4b07ffb9973b3fe348ddbbea0b80f64cd94 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Cerveau?= Date: Fri, 12 Feb 2021 10:33:50 +0100 Subject: [PATCH] libpng: 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/libpng/gstpng.c | 11 ++++------- ext/libpng/gstpngdec.c | 2 ++ ext/libpng/gstpngdec.h | 2 ++ ext/libpng/gstpngenc.c | 2 ++ ext/libpng/gstpngenc.h | 2 ++ 5 files changed, 12 insertions(+), 7 deletions(-) diff --git a/ext/libpng/gstpng.c b/ext/libpng/gstpng.c index 92ff4798f9..8220766aad 100644 --- a/ext/libpng/gstpng.c +++ b/ext/libpng/gstpng.c @@ -29,15 +29,12 @@ static gboolean plugin_init (GstPlugin * plugin) { - if (!gst_element_register (plugin, "pngdec", GST_RANK_PRIMARY, - GST_TYPE_PNGDEC)) - return FALSE; + gboolean ret = FALSE; - if (!gst_element_register (plugin, "pngenc", GST_RANK_PRIMARY, - GST_TYPE_PNGENC)) - return FALSE; + ret |= GST_ELEMENT_REGISTER (pngdec, plugin); + ret |= GST_ELEMENT_REGISTER (pngenc, plugin); - return TRUE; + return ret; } GST_PLUGIN_DEFINE (GST_VERSION_MAJOR, diff --git a/ext/libpng/gstpngdec.c b/ext/libpng/gstpngdec.c index 4592fef06b..804932d905 100644 --- a/ext/libpng/gstpngdec.c +++ b/ext/libpng/gstpngdec.c @@ -62,6 +62,8 @@ static gboolean gst_pngdec_sink_event (GstVideoDecoder * bdec, #define parent_class gst_pngdec_parent_class G_DEFINE_TYPE (GstPngDec, gst_pngdec, GST_TYPE_VIDEO_DECODER); +GST_ELEMENT_REGISTER_DEFINE (pngdec, "pngdec", GST_RANK_PRIMARY, + GST_TYPE_PNGDEC); static GstStaticPadTemplate gst_pngdec_src_pad_template = GST_STATIC_PAD_TEMPLATE ("src", diff --git a/ext/libpng/gstpngdec.h b/ext/libpng/gstpngdec.h index eccdf3e19e..4a8a6f202b 100644 --- a/ext/libpng/gstpngdec.h +++ b/ext/libpng/gstpngdec.h @@ -53,6 +53,8 @@ struct _GstPngDec gsize read_data; }; +GST_ELEMENT_REGISTER_DECLARE (pngdec); + G_END_DECLS #endif /* __GST_PNGDEC_H__ */ diff --git a/ext/libpng/gstpngenc.c b/ext/libpng/gstpngenc.c index bb0c5cb948..25f3714382 100644 --- a/ext/libpng/gstpngenc.c +++ b/ext/libpng/gstpngenc.c @@ -74,6 +74,8 @@ GST_STATIC_PAD_TEMPLATE ("sink", #define parent_class gst_pngenc_parent_class G_DEFINE_TYPE (GstPngEnc, gst_pngenc, GST_TYPE_VIDEO_ENCODER); +GST_ELEMENT_REGISTER_DEFINE (pngenc, "pngenc", GST_RANK_PRIMARY, + GST_TYPE_PNGENC); static void gst_pngenc_set_property (GObject * object, guint prop_id, const GValue * value, GParamSpec * pspec); diff --git a/ext/libpng/gstpngenc.h b/ext/libpng/gstpngenc.h index f068d68a83..878038c082 100644 --- a/ext/libpng/gstpngenc.h +++ b/ext/libpng/gstpngenc.h @@ -50,6 +50,8 @@ struct _GstPngEnc gboolean newmedia; }; +GST_ELEMENT_REGISTER_DECLARE (pngenc); + G_END_DECLS #endif /* __GST_PNGENC_H__ */