diff options
Diffstat (limited to 'ext/musicbrainz')
-rw-r--r-- | ext/musicbrainz/gsttrm.c | 36 | ||||
-rw-r--r-- | ext/musicbrainz/gsttrm.h | 8 |
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; |