From c4a1de55108eaabc7c9bd8d2524a908cf5127b30 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Cerveau?= Date: Thu, 18 Feb 2021 15:30:06 +0100 Subject: [PATCH] openjpeg: 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/openjpeg/gstopenjpeg.c | 12 +++++------- ext/openjpeg/gstopenjpegdec.c | 2 ++ ext/openjpeg/gstopenjpegdec.h | 2 ++ ext/openjpeg/gstopenjpegenc.c | 2 ++ ext/openjpeg/gstopenjpegenc.h | 2 ++ 5 files changed, 13 insertions(+), 7 deletions(-) diff --git a/ext/openjpeg/gstopenjpeg.c b/ext/openjpeg/gstopenjpeg.c index 04a970b171..98c6408436 100644 --- a/ext/openjpeg/gstopenjpeg.c +++ b/ext/openjpeg/gstopenjpeg.c @@ -30,14 +30,12 @@ static gboolean plugin_init (GstPlugin * plugin) { - if (!gst_element_register (plugin, "openjpegdec", GST_RANK_PRIMARY, - GST_TYPE_OPENJPEG_DEC)) - return FALSE; - if (!gst_element_register (plugin, "openjpegenc", GST_RANK_PRIMARY, - GST_TYPE_OPENJPEG_ENC)) - return FALSE; + gboolean ret = FALSE; - return TRUE; + ret |= GST_ELEMENT_REGISTER (openjpegdec, plugin); + ret |= GST_ELEMENT_REGISTER (openjpegenc, plugin); + + return ret; } GST_PLUGIN_DEFINE (GST_VERSION_MAJOR, diff --git a/ext/openjpeg/gstopenjpegdec.c b/ext/openjpeg/gstopenjpegdec.c index 20dfeab967..e8dd9ae9a0 100644 --- a/ext/openjpeg/gstopenjpegdec.c +++ b/ext/openjpeg/gstopenjpegdec.c @@ -83,6 +83,8 @@ GST_STATIC_PAD_TEMPLATE ("src", #define parent_class gst_openjpeg_dec_parent_class G_DEFINE_TYPE (GstOpenJPEGDec, gst_openjpeg_dec, GST_TYPE_VIDEO_DECODER); +GST_ELEMENT_REGISTER_DEFINE (openjpegdec, "openjpegdec", + GST_RANK_PRIMARY, GST_TYPE_OPENJPEG_DEC); static void gst_openjpeg_dec_class_init (GstOpenJPEGDecClass * klass) diff --git a/ext/openjpeg/gstopenjpegdec.h b/ext/openjpeg/gstopenjpegdec.h index edb0617751..8d5fd1a7af 100644 --- a/ext/openjpeg/gstopenjpegdec.h +++ b/ext/openjpeg/gstopenjpegdec.h @@ -72,6 +72,8 @@ struct _GstOpenJPEGDecClass GType gst_openjpeg_dec_get_type (void); +GST_ELEMENT_REGISTER_DECLARE (openjpegdec); + G_END_DECLS #endif /* __GST_OPENJPEG_DEC_H__ */ diff --git a/ext/openjpeg/gstopenjpegenc.c b/ext/openjpeg/gstopenjpegenc.c index a758834dd0..2bd5f82f65 100644 --- a/ext/openjpeg/gstopenjpegenc.c +++ b/ext/openjpeg/gstopenjpegenc.c @@ -134,6 +134,8 @@ static GstStaticPadTemplate gst_openjpeg_enc_src_template = #define parent_class gst_openjpeg_enc_parent_class G_DEFINE_TYPE (GstOpenJPEGEnc, gst_openjpeg_enc, GST_TYPE_VIDEO_ENCODER); +GST_ELEMENT_REGISTER_DEFINE (openjpegenc, "openjpegenc", + GST_RANK_PRIMARY, GST_TYPE_OPENJPEG_ENC); static void gst_openjpeg_enc_class_init (GstOpenJPEGEncClass * klass) diff --git a/ext/openjpeg/gstopenjpegenc.h b/ext/openjpeg/gstopenjpegenc.h index c3393eeb7b..754b3b4cff 100644 --- a/ext/openjpeg/gstopenjpegenc.h +++ b/ext/openjpeg/gstopenjpegenc.h @@ -67,6 +67,8 @@ struct _GstOpenJPEGEncClass GType gst_openjpeg_enc_get_type (void); +GST_ELEMENT_REGISTER_DECLARE (openjpegenc); + G_END_DECLS #endif /* __GST_OPENJPEG_ENC_H__ */