x264: 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: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-ugly/-/merge_requests/79>
This commit is contained in:
Stéphane Cerveau 2021-03-29 12:39:36 +02:00 committed by GStreamer Marge Bot
parent e3a35c127f
commit 62d914b5b4
2 changed files with 11 additions and 4 deletions

View file

@ -724,6 +724,7 @@ static void gst_x264_enc_set_property (GObject * object, guint prop_id,
const GValue * value, GParamSpec * pspec); const GValue * value, GParamSpec * pspec);
static void gst_x264_enc_get_property (GObject * object, guint prop_id, static void gst_x264_enc_get_property (GObject * object, guint prop_id,
GValue * value, GParamSpec * pspec); GValue * value, GParamSpec * pspec);
static gboolean x264_element_init (GstPlugin * plugin);
typedef gboolean (*LoadPresetFunc) (GstPreset * preset, const gchar * name); typedef gboolean (*LoadPresetFunc) (GstPreset * preset, const gchar * name);
@ -755,10 +756,9 @@ gst_x264_enc_preset_interface_init (GstPresetInterface * iface)
G_DEFINE_TYPE_WITH_CODE (GstX264Enc, gst_x264_enc, GST_TYPE_VIDEO_ENCODER, G_DEFINE_TYPE_WITH_CODE (GstX264Enc, gst_x264_enc, GST_TYPE_VIDEO_ENCODER,
G_IMPLEMENT_INTERFACE (GST_TYPE_PRESET, G_IMPLEMENT_INTERFACE (GST_TYPE_PRESET,
gst_x264_enc_preset_interface_init)); gst_x264_enc_preset_interface_init));
GST_ELEMENT_REGISTER_DEFINE_CUSTOM (x264enc, x264_element_init)
/* don't forget to free the string after use */ /* don't forget to free the string after use */
static const gchar * static const gchar *gst_x264_enc_build_partitions (gint analyse)
gst_x264_enc_build_partitions (gint analyse)
{ {
GString *string; GString *string;
@ -2988,7 +2988,7 @@ gst_x264_enc_get_property (GObject * object, guint prop_id,
} }
static gboolean static gboolean
plugin_init (GstPlugin * plugin) x264_element_init (GstPlugin * plugin)
{ {
GST_DEBUG_CATEGORY_INIT (x264_enc_debug, "x264enc", 0, GST_DEBUG_CATEGORY_INIT (x264_enc_debug, "x264enc", 0,
"h264 encoding element"); "h264 encoding element");
@ -3026,6 +3026,12 @@ plugin_init (GstPlugin * plugin)
GST_RANK_PRIMARY, GST_TYPE_X264_ENC); GST_RANK_PRIMARY, GST_TYPE_X264_ENC);
} }
static gboolean
plugin_init (GstPlugin * plugin)
{
return GST_ELEMENT_REGISTER (x264enc, plugin);
}
GST_PLUGIN_DEFINE (GST_VERSION_MAJOR, GST_PLUGIN_DEFINE (GST_VERSION_MAJOR,
GST_VERSION_MINOR, GST_VERSION_MINOR,
x264, x264,

View file

@ -137,6 +137,7 @@ struct _GstX264EncClass
}; };
GType gst_x264_enc_get_type (void); GType gst_x264_enc_get_type (void);
GST_ELEMENT_REGISTER_DECLARE (x264enc);
G_END_DECLS G_END_DECLS