x265: allow per feature registration
authorStéphane Cerveau <scerveau@collabora.com>
Thu, 25 Feb 2021 08:51:52 +0000 (09:51 +0100)
committerGStreamer Marge Bot <gitlab-merge-bot@gstreamer-foundation.org>
Tue, 23 Mar 2021 14:19:17 +0000 (14:19 +0000)
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: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2038>

ext/x265/gstx265enc.c
ext/x265/gstx265enc.h

index d0dc3f7..eb6552d 100644 (file)
@@ -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,
index a4b5d11..9855c33 100644 (file)
@@ -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__ */