summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStéphane Cerveau <scerveau@collabora.com>2021-03-29 12:28:04 +0200
committerGStreamer Marge Bot <gitlab-merge-bot@gstreamer-foundation.org>2021-03-29 19:13:36 +0000
commit3a42409898bdafdb3ce46a950d2207f31c08b903 (patch)
treedbfaa5702eda32a6fa1539babd6ba5661e0fea65
parent4873c01b4ab97157f60a8fc91fe5ba7e10e1ae10 (diff)
downloadgstreamer-plugins-ugly-3a42409898bdafdb3ce46a950d2207f31c08b903.tar.gz
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: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-ugly/-/merge_requests/79>
-rw-r--r--ext/cdio/gstcdio.c19
-rw-r--r--ext/cdio/gstcdio.h4
-rw-r--r--ext/cdio/gstcdiocddasrc.c8
-rw-r--r--ext/cdio/gstcdiocddasrc.h1
4 files changed, 16 insertions, 16 deletions
diff --git a/ext/cdio/gstcdio.c b/ext/cdio/gstcdio.c
index 6d0e5593..f091f5b7 100644
--- a/ext/cdio/gstcdio.c
+++ b/ext/cdio/gstcdio.c
@@ -25,6 +25,9 @@
#include <gst/gst.h>
#include <gst/tag/tag.h>
+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 <cdio/logging.h>
-
-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 06657816..8571d271 100644
--- a/ext/cdio/gstcdio.h
+++ b/ext/cdio/gstcdio.h
@@ -24,6 +24,7 @@
#include <gst/gst.h>
#include <cdio/cdio.h>
#include <cdio/cdtext.h>
+#include <cdio/logging.h>
#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 c82d0bd6..15b044ca 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 bee5f6d3..478aa5ff 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__ */