From: Stéphane Cerveau Date: Mon, 29 Mar 2021 10:28:04 +0000 (+0200) Subject: cdio: allow per feature registration X-Git-Tag: 1.19.3~505^2~20 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=3a42409898bdafdb3ce46a950d2207f31c08b903;p=platform%2Fupstream%2Fgstreamer.git cdio: 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: --- diff --git a/ext/cdio/gstcdio.c b/ext/cdio/gstcdio.c index 6d0e559..f091f5b 100644 --- a/ext/cdio/gstcdio.c +++ b/ext/cdio/gstcdio.c @@ -25,6 +25,9 @@ #include #include +GST_DEBUG_CATEGORY_EXTERN (gst_cdio_debug); +#define GST_CAT_DEFAULT gst_cdio_debug + static gboolean plugin_init (GstPlugin * plugin); /* cdio headers redefine VERSION etc., so do this here before including them */ @@ -37,10 +40,6 @@ GST_PLUGIN_DEFINE (GST_VERSION_MAJOR, #include "gstcdio.h" #include "gstcdiocddasrc.h" -#include - -GST_DEBUG_CATEGORY (gst_cdio_debug); - void gst_cdio_add_cdtext_field (GstObject * src, cdtext_t * cdtext, track_t track, cdtext_field_t field, const gchar * gst_tag, GstTagList ** p_tags) @@ -134,7 +133,7 @@ gst_cdio_add_cdtext_album_tags (GstObject * src, CdIo * cdio, GstTagList * tags) GST_DEBUG ("CD-TEXT album tags: %" GST_PTR_FORMAT, tags); } -static void +void gst_cdio_log_handler (cdio_log_level_t level, const char *msg) { const gchar *level_str[] = { "DEBUG", "INFO", "WARN", "ERROR", "ASSERT" }; @@ -147,13 +146,5 @@ gst_cdio_log_handler (cdio_log_level_t level, const char *msg) static gboolean plugin_init (GstPlugin * plugin) { - if (!gst_element_register (plugin, "cdiocddasrc", GST_RANK_SECONDARY - 1, - GST_TYPE_CDIO_CDDA_SRC)) - return FALSE; - - cdio_log_set_handler (gst_cdio_log_handler); - - GST_DEBUG_CATEGORY_INIT (gst_cdio_debug, "cdio", 0, "libcdio elements"); - - return TRUE; + return GST_ELEMENT_REGISTER (cdiocddasrc, plugin); } diff --git a/ext/cdio/gstcdio.h b/ext/cdio/gstcdio.h index 0665781..8571d27 100644 --- a/ext/cdio/gstcdio.h +++ b/ext/cdio/gstcdio.h @@ -24,6 +24,7 @@ #include #include #include +#include #if LIBCDIO_VERSION_NUM <= 83 && LIBCDIO_VERSION_NUM >= 76 #define CDTEXT_FIELD_PERFORMER CDTEXT_PERFORMER @@ -31,8 +32,6 @@ #define CDTEXT_FIELD_TITLE CDTEXT_TITLE #endif -GST_DEBUG_CATEGORY_EXTERN (gst_cdio_debug); -#define GST_CAT_DEFAULT gst_cdio_debug void gst_cdio_add_cdtext_field (GstObject * src, cdtext_t * cdtext, @@ -56,6 +55,7 @@ void gst_cdio_add_cdtext_album_tags (GstObject * src, CdIo * cdio, #endif GstTagList * tags); +void gst_cdio_log_handler (cdio_log_level_t level, const char *msg); #endif /* __GST_CDIO_H__ */ diff --git a/ext/cdio/gstcdiocddasrc.c b/ext/cdio/gstcdiocddasrc.c index c82d0bd..15b044c 100644 --- a/ext/cdio/gstcdiocddasrc.c +++ b/ext/cdio/gstcdiocddasrc.c @@ -85,7 +85,15 @@ enum PROP_READ_SPEED }; +GST_DEBUG_CATEGORY (gst_cdio_debug); + + G_DEFINE_TYPE (GstCdioCddaSrc, gst_cdio_cdda_src, GST_TYPE_AUDIO_CD_SRC); +#define _do_init \ + GST_DEBUG_CATEGORY_INIT (gst_cdio_debug, "cdio", 0, "libcdio elements"); \ + cdio_log_set_handler (gst_cdio_log_handler); +GST_ELEMENT_REGISTER_DEFINE_WITH_CODE (cdiocddasrc, "cdiocddasrc", + GST_RANK_SECONDARY - 1, GST_TYPE_CDIO_CDDA_SRC, _do_init); static void gst_cdio_cdda_src_finalize (GObject * obj); static void gst_cdio_cdda_src_set_property (GObject * object, guint prop_id, diff --git a/ext/cdio/gstcdiocddasrc.h b/ext/cdio/gstcdiocddasrc.h index bee5f6d..478aa5f 100644 --- a/ext/cdio/gstcdiocddasrc.h +++ b/ext/cdio/gstcdiocddasrc.h @@ -49,6 +49,7 @@ struct _GstCdioCddaSrcClass }; GType gst_cdio_cdda_src_get_type (void); +GST_ELEMENT_REGISTER_DECLARE (cdiocddasrc); #endif /* __GST_CDIO_CDDA_SRC_H__ */