summaryrefslogtreecommitdiffstats
path: root/ext/musicbrainz
diff options
context:
space:
mode:
Diffstat (limited to 'ext/musicbrainz')
-rw-r--r--ext/musicbrainz/gsttrm.c36
-rw-r--r--ext/musicbrainz/gsttrm.h8
2 files changed, 44 insertions, 0 deletions
diff --git a/ext/musicbrainz/gsttrm.c b/ext/musicbrainz/gsttrm.c
index 90e93962..4732d73f 100644
--- a/ext/musicbrainz/gsttrm.c
+++ b/ext/musicbrainz/gsttrm.c
@@ -18,6 +18,42 @@
* Boston, MA 02111-1307, USA.
*/
+/**
+ * SECTION:element-trm
+ *
+ * <refsect2>
+ * <para>
+ * GstTRM computes <ulink url="http://www.musicbrainz.org/">MusicBrainz</ulink>
+ * TRM identifiers for audio streams using libmusicbrainz.
+ * </para>
+ * <para>
+ * A TRM identifier is something like an 'acoustic fingerprint', the aim is
+ * to uniquely identify the same song regardless of which source it comes from
+ * or which audio format the stream is in.
+ * </para>
+ * <para>
+ * The TRM element will collect about 30 seconds of audio and let
+ * libmusicbrainz calculate a preliminary audio signature from that. That audio
+ * signature will then be sent over the internet to a musicbrainz.org server
+ * which will calculate the TRM for that signature.
+ * </para>
+ * <para>
+ * The TRM element will post a tag message with a #GST_TAG_MUSICBRAINZ_TRMID
+ * tag on the bus once the TRM has been calculated (and also send a tag event
+ * with that information downstream).
+ * </para>
+ * <title>Example pipeline</title>
+ * <para>
+ * Here is a test pipeline to test the TRM element:
+ * <programlisting>
+ * gst-launch -m filesrc location=somefile.ogg ! decodebin ! audioconvert ! trm ! fakesink
+ * </programlisting>
+ * this should (among many other things) print the tag message with the TRM ID.
+ * </para>
+ * </refsect2>
+ */
+
+
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
diff --git a/ext/musicbrainz/gsttrm.h b/ext/musicbrainz/gsttrm.h
index 9194180c..d66e3567 100644
--- a/ext/musicbrainz/gsttrm.h
+++ b/ext/musicbrainz/gsttrm.h
@@ -38,9 +38,17 @@ G_BEGIN_DECLS
typedef struct _GstTRM GstTRM;
typedef struct _GstTRMClass GstTRMClass;
+/**
+ * GstTRM
+ *
+ * GStreamer TRM element. This structure is opaque (private).
+ *
+ **/
+
struct _GstTRM {
GstElement element;
+ /*< private >*/
GstPad *sinkpad;
GstPad *srcpad;