summaryrefslogtreecommitdiffstats
path: root/ext/musicbrainz
diff options
context:
space:
mode:
Diffstat (limited to 'ext/musicbrainz')
-rw-r--r--ext/musicbrainz/gsttrm.c230
-rw-r--r--ext/musicbrainz/gsttrm.h59
2 files changed, 144 insertions, 145 deletions
diff --git a/ext/musicbrainz/gsttrm.c b/ext/musicbrainz/gsttrm.c
index d70f0b6e..484be50f 100644
--- a/ext/musicbrainz/gsttrm.c
+++ b/ext/musicbrainz/gsttrm.c
@@ -27,62 +27,58 @@
#include "gsttrm.h"
/* musicbrainz signals and args */
-enum {
+enum
+{
SIGNAL_SIGNATURE_AVAILABLE,
LAST_SIGNAL
};
-enum {
+enum
+{
ARG_0,
ARG_SIGNATURE,
ARG_ASCII_SIGNATURE
};
-GstStaticPadTemplate src_template = GST_STATIC_PAD_TEMPLATE (
- "src",
- GST_PAD_SRC,
- GST_PAD_ALWAYS,
- GST_STATIC_CAPS ("audio/x-raw-int, "
- "endianness = (int) BYTE_ORDER, "
- "signed = (bool) TRUE, "
- "width = (int) { 8, 16 }, "
- "depth = (int) { 8, 16 }, "
- "rate = (int) [ 8000, 96000 ], "
- "channels = (int) [ 1, 2 ]"
- )
-);
-
-
-GstStaticPadTemplate sink_template = GST_STATIC_PAD_TEMPLATE (
- "sink",
- GST_PAD_SINK,
- GST_PAD_ALWAYS,
- GST_STATIC_CAPS ("audio/x-raw-int, "
- "endianness = (int) BYTE_ORDER, "
- "signed = (bool) TRUE, "
- "width = (int) { 8, 16 }, "
- "depth = (int) { 8, 16 }, "
- "rate = (int) [ 8000, 96000 ], "
- "channels = (int) [ 1, 2 ]"
- )
-);
-
-
-static void gst_musicbrainz_class_init (GstMusicBrainzClass *klass);
-static void gst_musicbrainz_base_init (GstMusicBrainzClass *klass);
-static void gst_musicbrainz_init (GstMusicBrainz *musicbrainz);
-
-static void gst_musicbrainz_chain (GstPad *pad, GstData *data);
-
-static void gst_musicbrainz_set_property (GObject *object, guint prop_id,
- const GValue *value, GParamSpec *pspec);
-static void gst_musicbrainz_get_property (GObject *object, guint prop_id,
- GValue *value, GParamSpec *pspec);
-
-static GstElementStateReturn
- gst_musicbrainz_change_state (GstElement *element);
+GstStaticPadTemplate src_template = GST_STATIC_PAD_TEMPLATE ("src",
+ GST_PAD_SRC,
+ GST_PAD_ALWAYS,
+ GST_STATIC_CAPS ("audio/x-raw-int, "
+ "endianness = (int) BYTE_ORDER, "
+ "signed = (bool) TRUE, "
+ "width = (int) { 8, 16 }, "
+ "depth = (int) { 8, 16 }, "
+ "rate = (int) [ 8000, 96000 ], " "channels = (int) [ 1, 2 ]")
+ );
+
+
+GstStaticPadTemplate sink_template = GST_STATIC_PAD_TEMPLATE ("sink",
+ GST_PAD_SINK,
+ GST_PAD_ALWAYS,
+ GST_STATIC_CAPS ("audio/x-raw-int, "
+ "endianness = (int) BYTE_ORDER, "
+ "signed = (bool) TRUE, "
+ "width = (int) { 8, 16 }, "
+ "depth = (int) { 8, 16 }, "
+ "rate = (int) [ 8000, 96000 ], " "channels = (int) [ 1, 2 ]")
+ );
+
+
+static void gst_musicbrainz_class_init (GstMusicBrainzClass * klass);
+static void gst_musicbrainz_base_init (GstMusicBrainzClass * klass);
+static void gst_musicbrainz_init (GstMusicBrainz * musicbrainz);
+
+static void gst_musicbrainz_chain (GstPad * pad, GstData * data);
+
+static void gst_musicbrainz_set_property (GObject * object, guint prop_id,
+ const GValue * value, GParamSpec * pspec);
+static void gst_musicbrainz_get_property (GObject * object, guint prop_id,
+ GValue * value, GParamSpec * pspec);
+
+static GstElementStateReturn
+gst_musicbrainz_change_state (GstElement * element);
static GstElementClass *parent_class = NULL;
@@ -96,26 +92,25 @@ gst_musicbrainz_get_type (void)
if (!musicbrainz_type) {
static const GTypeInfo musicbrainz_info = {
- sizeof(GstMusicBrainzClass),
+ sizeof (GstMusicBrainzClass),
(GBaseInitFunc) gst_musicbrainz_base_init,
NULL,
(GClassInitFunc) gst_musicbrainz_class_init,
NULL,
NULL,
- sizeof(GstMusicBrainz),
+ sizeof (GstMusicBrainz),
0,
- (GInstanceInitFunc)gst_musicbrainz_init,
+ (GInstanceInitFunc) gst_musicbrainz_init,
};
- musicbrainz_type = g_type_register_static (GST_TYPE_ELEMENT,
- "GstMusicBrainz",
- &musicbrainz_info, 0);
+ musicbrainz_type = g_type_register_static (GST_TYPE_ELEMENT,
+ "GstMusicBrainz", &musicbrainz_info, 0);
}
return musicbrainz_type;
}
static void
-gst_musicbrainz_base_init (GstMusicBrainzClass *klass)
+gst_musicbrainz_base_init (GstMusicBrainzClass * klass)
{
GstElementDetails gst_musicbrainz_details = {
"Compute TRM Id",
@@ -126,9 +121,9 @@ gst_musicbrainz_base_init (GstMusicBrainzClass *klass)
GstElementClass *element_class = GST_ELEMENT_CLASS (klass);
gst_element_class_add_pad_template (element_class,
- gst_static_pad_template_get (&src_template));
+ gst_static_pad_template_get (&src_template));
gst_element_class_add_pad_template (element_class,
- gst_static_pad_template_get (&sink_template));
+ gst_static_pad_template_get (&sink_template));
gst_element_class_set_details (element_class, &gst_musicbrainz_details);
}
@@ -136,44 +131,45 @@ gst_musicbrainz_base_init (GstMusicBrainzClass *klass)
static void
-gst_musicbrainz_class_init (GstMusicBrainzClass *klass)
+gst_musicbrainz_class_init (GstMusicBrainzClass * klass)
{
GObjectClass *gobject_class;
GstElementClass *gstelement_class;
- gobject_class = (GObjectClass*)klass;
- gstelement_class = (GstElementClass*)klass;
+ gobject_class = (GObjectClass *) klass;
+ gstelement_class = (GstElementClass *) klass;
parent_class = g_type_class_ref (GST_TYPE_ELEMENT);
- g_object_class_install_property(G_OBJECT_CLASS(klass), ARG_SIGNATURE,
- g_param_spec_string ("signature","signature","signature",
- NULL, G_PARAM_READABLE));
- g_object_class_install_property(G_OBJECT_CLASS(klass), ARG_ASCII_SIGNATURE,
- g_param_spec_string ("ascii_signature","ascii_signature","ascii_signature",
- NULL, G_PARAM_READABLE));
+ g_object_class_install_property (G_OBJECT_CLASS (klass), ARG_SIGNATURE,
+ g_param_spec_string ("signature", "signature", "signature",
+ NULL, G_PARAM_READABLE));
+ g_object_class_install_property (G_OBJECT_CLASS (klass), ARG_ASCII_SIGNATURE,
+ g_param_spec_string ("ascii_signature", "ascii_signature",
+ "ascii_signature", NULL, G_PARAM_READABLE));
gobject_class->set_property = gst_musicbrainz_set_property;
gobject_class->get_property = gst_musicbrainz_get_property;
gst_musicbrainz_signals[SIGNAL_SIGNATURE_AVAILABLE] =
- g_signal_new ("signature-available", G_TYPE_FROM_CLASS(klass), G_SIGNAL_RUN_LAST,
- G_STRUCT_OFFSET (GstMusicBrainzClass, signature_available), NULL, NULL,
- g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
+ g_signal_new ("signature-available", G_TYPE_FROM_CLASS (klass),
+ G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (GstMusicBrainzClass,
+ signature_available), NULL, NULL, g_cclosure_marshal_VOID__VOID,
+ G_TYPE_NONE, 0);
gstelement_class->change_state = gst_musicbrainz_change_state;
}
static GstPadLinkReturn
-gst_musicbrainz_sinkconnect (GstPad *pad, const GstCaps *caps)
+gst_musicbrainz_sinkconnect (GstPad * pad, const GstCaps * caps)
{
GstMusicBrainz *musicbrainz;
GstStructure *structure;
const gchar *mimetype;
gint width;
- musicbrainz = GST_MUSICBRAINZ (gst_pad_get_parent (pad));
-
+ musicbrainz = GST_MUSICBRAINZ (gst_pad_get_parent (pad));
+
musicbrainz->caps = caps;
structure = gst_caps_get_structure (caps, 0);
@@ -181,35 +177,38 @@ gst_musicbrainz_sinkconnect (GstPad *pad, const GstCaps *caps)
if (!gst_structure_get_int (structure, "depth", &musicbrainz->depth) ||
!gst_structure_get_int (structure, "width", &width))
- return GST_PAD_LINK_REFUSED;
+ return GST_PAD_LINK_REFUSED;
if (musicbrainz->depth != width)
- return GST_PAD_LINK_REFUSED;
+ return GST_PAD_LINK_REFUSED;
if (!gst_structure_get_int (structure, "channels", &musicbrainz->channels))
- return GST_PAD_LINK_REFUSED;
+ return GST_PAD_LINK_REFUSED;
if (!gst_structure_get_int (structure, "rate", &musicbrainz->rate))
- return GST_PAD_LINK_REFUSED;
+ return GST_PAD_LINK_REFUSED;
- trm_SetPCMDataInfo (musicbrainz->trm, musicbrainz->rate, musicbrainz->channels, musicbrainz->depth);
- musicbrainz->linked= TRUE;
+ trm_SetPCMDataInfo (musicbrainz->trm, musicbrainz->rate,
+ musicbrainz->channels, musicbrainz->depth);
+ musicbrainz->linked = TRUE;
- return GST_PAD_LINK_OK;
+ return GST_PAD_LINK_OK;
}
static void
-gst_musicbrainz_init (GstMusicBrainz *musicbrainz)
+gst_musicbrainz_init (GstMusicBrainz * musicbrainz)
{
- musicbrainz->sinkpad = gst_pad_new_from_template (
- gst_static_pad_template_get (&sink_template), "sink");
+ musicbrainz->sinkpad =
+ gst_pad_new_from_template (gst_static_pad_template_get (&sink_template),
+ "sink");
gst_element_add_pad (GST_ELEMENT (musicbrainz), musicbrainz->sinkpad);
gst_pad_set_chain_function (musicbrainz->sinkpad, gst_musicbrainz_chain);
gst_pad_set_link_function (musicbrainz->sinkpad, gst_musicbrainz_sinkconnect);
- musicbrainz->srcpad = gst_pad_new_from_template (
- gst_static_pad_template_get (&src_template), "src");
+ musicbrainz->srcpad =
+ gst_pad_new_from_template (gst_static_pad_template_get (&src_template),
+ "src");
gst_element_add_pad (GST_ELEMENT (musicbrainz), musicbrainz->srcpad);
musicbrainz->trm = NULL;
@@ -219,11 +218,11 @@ gst_musicbrainz_init (GstMusicBrainz *musicbrainz)
musicbrainz->signature_available = FALSE;
GST_FLAG_SET (musicbrainz, GST_ELEMENT_EVENT_AWARE);
- /*GST_FLAG_SET(musicbrainz, GST_ELEMENT_THREAD_SUGGESTED);*/
+ /*GST_FLAG_SET(musicbrainz, GST_ELEMENT_THREAD_SUGGESTED); */
}
static void
-gst_trm_handle_event (GstPad *pad, GstData *data)
+gst_trm_handle_event (GstPad * pad, GstData * data)
{
GstEvent *event = GST_EVENT (data);
@@ -231,7 +230,7 @@ gst_trm_handle_event (GstPad *pad, GstData *data)
}
static void
-gst_musicbrainz_chain (GstPad *pad, GstData *data)
+gst_musicbrainz_chain (GstPad * pad, GstData * data)
{
GstMusicBrainz *musicbrainz;
GstBuffer *buf;
@@ -243,33 +242,35 @@ gst_musicbrainz_chain (GstPad *pad, GstData *data)
musicbrainz = GST_MUSICBRAINZ (gst_pad_get_parent (pad));
- if (GST_IS_EVENT (data))
- {
+ if (GST_IS_EVENT (data)) {
gst_trm_handle_event (pad, data);
return;
}
buf = GST_BUFFER (data);
-
+
if (musicbrainz->linked && !musicbrainz->data_available)
- if (gst_pad_query (gst_pad_get_peer (pad), GST_QUERY_TOTAL, &format, &nanos))
- {
+ if (gst_pad_query (gst_pad_get_peer (pad), GST_QUERY_TOTAL, &format,
+ &nanos)) {
musicbrainz->total_time = nanos / GST_SECOND;
- trm_SetSongLength(musicbrainz->trm, musicbrainz->total_time);
+ trm_SetSongLength (musicbrainz->trm, musicbrainz->total_time);
musicbrainz->data_available = TRUE;
gst_pad_try_set_caps (musicbrainz->srcpad, musicbrainz->caps);
}
- if (!musicbrainz->signature_available && trm_GenerateSignature (musicbrainz->trm, GST_BUFFER_DATA (buf), GST_BUFFER_SIZE (buf)))
- {
+ if (!musicbrainz->signature_available
+ && trm_GenerateSignature (musicbrainz->trm, GST_BUFFER_DATA (buf),
+ GST_BUFFER_SIZE (buf))) {
GST_DEBUG ("Signature");
- trm_FinalizeSignature(musicbrainz->trm, musicbrainz->signature, NULL);
- trm_ConvertSigToASCII (musicbrainz->trm, musicbrainz->signature, musicbrainz->ascii_signature);
-g_print ("Signature : %s\n", musicbrainz->ascii_signature);
+ trm_FinalizeSignature (musicbrainz->trm, musicbrainz->signature, NULL);
+ trm_ConvertSigToASCII (musicbrainz->trm, musicbrainz->signature,
+ musicbrainz->ascii_signature);
+ g_print ("Signature : %s\n", musicbrainz->ascii_signature);
musicbrainz->signature_available = TRUE;
- g_signal_emit (G_OBJECT(musicbrainz),gst_musicbrainz_signals[SIGNAL_SIGNATURE_AVAILABLE], 0);
+ g_signal_emit (G_OBJECT (musicbrainz),
+ gst_musicbrainz_signals[SIGNAL_SIGNATURE_AVAILABLE], 0);
GST_DEBUG ("Signature : %s", musicbrainz->ascii_signature);
@@ -281,7 +282,8 @@ g_print ("Signature : %s\n", musicbrainz->ascii_signature);
static void
-gst_musicbrainz_set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec)
+gst_musicbrainz_set_property (GObject * object, guint prop_id,
+ const GValue * value, GParamSpec * pspec)
{
GstMusicBrainz *musicbrainz;
@@ -302,23 +304,24 @@ gst_musicbrainz_set_property (GObject *object, guint prop_id, const GValue *valu
}
static void
-gst_musicbrainz_get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec)
+gst_musicbrainz_get_property (GObject * object, guint prop_id, GValue * value,
+ GParamSpec * pspec)
{
GstMusicBrainz *musicbrainz;
/* it's not null if we got it, but it might not be ours */
- musicbrainz = GST_MUSICBRAINZ(object);
+ musicbrainz = GST_MUSICBRAINZ (object);
switch (prop_id) {
- case ARG_SIGNATURE: {
+ case ARG_SIGNATURE:{
g_value_set_string (value, musicbrainz->signature);
break;
}
- case ARG_ASCII_SIGNATURE: {
+ case ARG_ASCII_SIGNATURE:{
g_value_set_string (value, musicbrainz->ascii_signature);
break;
}
- default: {
+ default:{
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
}
@@ -327,7 +330,7 @@ gst_musicbrainz_get_property (GObject *object, guint prop_id, GValue *value, GPa
static GstElementStateReturn
-gst_musicbrainz_change_state (GstElement *element)
+gst_musicbrainz_change_state (GstElement * element)
{
GstMusicBrainz *musicbrainz;
@@ -358,22 +361,15 @@ gst_musicbrainz_change_state (GstElement *element)
}
static gboolean
-plugin_init (GstPlugin *plugin)
+plugin_init (GstPlugin * plugin)
{
return gst_element_register (plugin, "trm",
- GST_RANK_NONE,
- GST_TYPE_MUSICBRAINZ);
+ GST_RANK_NONE, GST_TYPE_MUSICBRAINZ);
}
-GST_PLUGIN_DEFINE (
- GST_VERSION_MAJOR,
- GST_VERSION_MINOR,
- "trm",
- "A trm signature producer",
- plugin_init,
- VERSION,
- "GPL",
- GST_PACKAGE,
- GST_ORIGIN
-)
+GST_PLUGIN_DEFINE (GST_VERSION_MAJOR,
+ GST_VERSION_MINOR,
+ "trm",
+ "A trm signature producer",
+ plugin_init, VERSION, "GPL", GST_PACKAGE, GST_ORIGIN)
diff --git a/ext/musicbrainz/gsttrm.h b/ext/musicbrainz/gsttrm.h
index 6516f94d..717826b7 100644
--- a/ext/musicbrainz/gsttrm.h
+++ b/ext/musicbrainz/gsttrm.h
@@ -26,8 +26,9 @@
#include <musicbrainz/mb_c.h>
#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
+extern "C"
+{
+#endif /* __cplusplus */
#define GST_TYPE_MUSICBRAINZ \
@@ -42,41 +43,43 @@ extern "C" {
(G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_MUSICBRAINZ))
-typedef struct _GstMusicBrainz GstMusicBrainz;
-typedef struct _GstMusicBrainzClass GstMusicBrainzClass;
+ typedef struct _GstMusicBrainz GstMusicBrainz;
+ typedef struct _GstMusicBrainzClass GstMusicBrainzClass;
-struct _GstMusicBrainz {
- GstElement element;
+ struct _GstMusicBrainz
+ {
+ GstElement element;
- GstPad *sinkpad;
- GstPad *srcpad;
- const GstCaps *caps;
+ GstPad *sinkpad;
+ GstPad *srcpad;
+ const GstCaps *caps;
- trm_t trm;
- gchar signature[17];
- gchar ascii_signature[37];
+ trm_t trm;
+ gchar signature[17];
+ gchar ascii_signature[37];
- guint depth;
- guint rate;
- guint channels;
- gboolean linked;
- gboolean data_available;
- gboolean signature_available;
- guint64 total_time;
-};
+ guint depth;
+ guint rate;
+ guint channels;
+ gboolean linked;
+ gboolean data_available;
+ gboolean signature_available;
+ guint64 total_time;
+ };
-struct _GstMusicBrainzClass {
- GstElementClass parent_class;
+ struct _GstMusicBrainzClass
+ {
+ GstElementClass parent_class;
- /* signals */
- void (*signature_available) (GstElement *element);
-};
+ /* signals */
+ void (*signature_available) (GstElement * element);
+ };
-GType gst_musicbrainz_get_type(void);
+ GType gst_musicbrainz_get_type (void);
#ifdef __cplusplus
}
-#endif /* __cplusplus */
+#endif /* __cplusplus */
-#endif /* __GST_MUSICBRAINZE_H__ */
+#endif /* __GST_MUSICBRAINZE_H__ */