From 42a87029190d8b13c8e2040e8b73147765bfd7a1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Cerveau?= Date: Thu, 25 Feb 2021 09:51:52 +0100 Subject: [PATCH] x265: 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/x265/gstx265enc.c | 10 +++++++++- ext/x265/gstx265enc.h | 2 ++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/ext/x265/gstx265enc.c b/ext/x265/gstx265enc.c index d0dc3f7613..eb6552d9a7 100644 --- a/ext/x265/gstx265enc.c +++ b/ext/x265/gstx265enc.c @@ -197,10 +197,12 @@ static void gst_x265_enc_set_property (GObject * object, guint prop_id, const GValue * value, GParamSpec * pspec); static void gst_x265_enc_get_property (GObject * object, guint prop_id, GValue * value, GParamSpec * pspec); +static gboolean x265enc_element_init (GstPlugin * plugin); #define gst_x265_enc_parent_class parent_class G_DEFINE_TYPE_WITH_CODE (GstX265Enc, gst_x265_enc, GST_TYPE_VIDEO_ENCODER, G_IMPLEMENT_INTERFACE (GST_TYPE_PRESET, NULL)); +GST_ELEMENT_REGISTER_DEFINE_CUSTOM (x265enc, x265enc_element_init); static gboolean gst_x265_enc_add_x265_chroma_format (GstStructure * s, @@ -1732,7 +1734,7 @@ gst_x265_enc_get_property (GObject * object, guint prop_id, } static gboolean -plugin_init (GstPlugin * plugin) +x265enc_element_init (GstPlugin * plugin) { GST_DEBUG_CATEGORY_INIT (x265_enc_debug, "x265enc", 0, "h265 encoding element"); @@ -1773,6 +1775,12 @@ plugin_init (GstPlugin * plugin) GST_RANK_PRIMARY, GST_TYPE_X265_ENC); } +static gboolean +plugin_init (GstPlugin * plugin) +{ + return GST_ELEMENT_REGISTER (x265enc, plugin); +} + GST_PLUGIN_DEFINE (GST_VERSION_MAJOR, GST_VERSION_MINOR, x265, diff --git a/ext/x265/gstx265enc.h b/ext/x265/gstx265enc.h index a4b5d1142c..9855c33661 100644 --- a/ext/x265/gstx265enc.h +++ b/ext/x265/gstx265enc.h @@ -84,5 +84,7 @@ struct _GstX265EncClass GType gst_x265_enc_get_type (void); +GST_ELEMENT_REGISTER_DECLARE (x265enc); + G_END_DECLS #endif /* __GST_X265_ENC_H__ */