diff options
author | Benjamin Kampmann <benjamin@fluendo.com> | 2008-06-09 20:02:05 +0000 |
---|---|---|
committer | Tim-Philipp Müller <tim@centricular.net> | 2008-06-09 20:02:05 +0000 |
commit | c0da5597153988b62099b78503f0529e554e76e7 (patch) | |
tree | 34e04320c73831f57459c7b24bba7b046c191202 | |
parent | 9838809d933b1de8ce706605a33337af33be62ca (diff) | |
download | gstreamer-plugins-ugly-c0da5597153988b62099b78503f0529e554e76e7.tar.gz |
ext/cdio/: Also extract album title and album genre from CD-TEXT if available (#537021).RELEASE-0_10_10_ROOTRELEASE-0_10_10_BRANCH
Original commit message from CVS:
Patch by: Benjamin Kampmann <benjamin at fluendo dot com>
* ext/cdio/gstcdio.c: (gst_cdio_get_cdtext),
(gst_cdio_add_cdtext_album_tags):
* ext/cdio/gstcdio.h:
* ext/cdio/gstcdiocddasrc.c: (gst_cdio_cdda_src_open):
Also extract album title and album genre from CD-TEXT if
available (#537021).
-rw-r--r-- | ext/cdio/gstcdio.c | 18 | ||||
-rw-r--r-- | ext/cdio/gstcdio.h | 4 | ||||
-rw-r--r-- | ext/cdio/gstcdiocddasrc.c | 3 |
3 files changed, 25 insertions, 0 deletions
diff --git a/ext/cdio/gstcdio.c b/ext/cdio/gstcdio.c index 1534bda3..a18d350f 100644 --- a/ext/cdio/gstcdio.c +++ b/ext/cdio/gstcdio.c @@ -74,6 +74,24 @@ gst_cdio_get_cdtext (GstObject * src, CdIo * cdio, track_t track) return tags; } +void +gst_cdio_add_cdtext_album_tags (GstObject * src, CdIo * cdio, GstTagList * tags) +{ + cdtext_t *t; + + t = cdio_get_cdtext (cdio, 0); + if (t == NULL) { + GST_DEBUG_OBJECT (src, "no CD-TEXT for album %u"); + return; + } + + /* FIXME: map CDTEXT_PERFORMER to GST_TAG_ALBUM_ARTIST once we have that */ + gst_cdio_add_cdtext_field (src, t, CDTEXT_TITLE, GST_TAG_ALBUM, &tags); + gst_cdio_add_cdtext_field (src, t, CDTEXT_GENRE, GST_TAG_GENRE, &tags); + + GST_DEBUG ("CD-TEXT album tags: %" GST_PTR_FORMAT, tags); +} + static void gst_cdio_log_handler (cdio_log_level_t level, const char *msg) { diff --git a/ext/cdio/gstcdio.h b/ext/cdio/gstcdio.h index cbef7d93..ef31ed0f 100644 --- a/ext/cdio/gstcdio.h +++ b/ext/cdio/gstcdio.h @@ -38,5 +38,9 @@ GstTagList * gst_cdio_get_cdtext (GstObject * src, CdIo * cdio, track_t track); +void gst_cdio_add_cdtext_album_tags (GstObject * src, + CdIo * cdio, + GstTagList * tags); + #endif /* __GST_CDIO_H__ */ diff --git a/ext/cdio/gstcdiocddasrc.c b/ext/cdio/gstcdiocddasrc.c index d85e792d..d4a6a54d 100644 --- a/ext/cdio/gstcdiocddasrc.c +++ b/ext/cdio/gstcdiocddasrc.c @@ -248,6 +248,9 @@ gst_cdio_cdda_src_open (GstCddaBaseSrc * cddabasesrc, const gchar * device) if (src->read_speed != -1) cdio_set_speed (src->cdio, src->read_speed); + gst_cdio_add_cdtext_album_tags (GST_OBJECT_CAST (src), src->cdio, + cddabasesrc->tags); + GST_LOG_OBJECT (src, "%u tracks, first track: %d", num_tracks, first_track); for (i = 0; i < num_tracks; ++i) { |