diff --git a/gst-libs/gst/tag/gstid3tag.c b/gst-libs/gst/tag/gstid3tag.c index 4a528d7ee4..7509b6917b 100644 --- a/gst-libs/gst/tag/gstid3tag.c +++ b/gst-libs/gst/tag/gstid3tag.c @@ -146,16 +146,20 @@ gst_tag_from_id3_tag (const gchar * id3_tag) static const GstTagEntryMatch user_tag_matches[] = { /* musicbrainz identifiers being used in the real world (foobar2000) */ + {GST_TAG_MUSICBRAINZ_RELEASETRACKID, "TXXX|musicbrainz_trackid"}, {GST_TAG_MUSICBRAINZ_ARTISTID, "TXXX|musicbrainz_artistid"}, {GST_TAG_MUSICBRAINZ_ALBUMID, "TXXX|musicbrainz_albumid"}, {GST_TAG_MUSICBRAINZ_ALBUMARTISTID, "TXXX|musicbrainz_albumartistid"}, + {GST_TAG_MUSICBRAINZ_RELEASEGROUPID, "TXXX|musicbrainz_releasegroupid"}, {GST_TAG_MUSICBRAINZ_TRMID, "TXXX|musicbrainz_trmid"}, {GST_TAG_CDDA_MUSICBRAINZ_DISCID, "TXXX|musicbrainz_discid"}, /* musicbrainz identifiers according to spec no one pays * attention to (http://musicbrainz.org/docs/specs/metadata_tags.html) */ + {GST_TAG_MUSICBRAINZ_RELEASETRACKID, "TXXX|MusicBrainz Release Track Id"}, {GST_TAG_MUSICBRAINZ_ARTISTID, "TXXX|MusicBrainz Artist Id"}, {GST_TAG_MUSICBRAINZ_ALBUMID, "TXXX|MusicBrainz Album Id"}, {GST_TAG_MUSICBRAINZ_ALBUMARTISTID, "TXXX|MusicBrainz Album Artist Id"}, + {GST_TAG_MUSICBRAINZ_RELEASEGROUPID, "TXXX|MusicBrainz Release Group Id"}, {GST_TAG_MUSICBRAINZ_TRMID, "TXXX|MusicBrainz TRM Id"}, /* according to: http://wiki.musicbrainz.org/MusicBrainzTag (yes, no space * before 'ID' and not 'Id' either this time, yay for consistency) */ diff --git a/gst-libs/gst/tag/gstvorbistag.c b/gst-libs/gst/tag/gstvorbistag.c index 28c24ab2a8..a9ce48568b 100644 --- a/gst-libs/gst/tag/gstvorbistag.c +++ b/gst-libs/gst/tag/gstvorbistag.c @@ -74,9 +74,11 @@ static const GstTagEntryMatch tag_matches[] = { {GST_TAG_ALBUM_PEAK, "REPLAYGAIN_ALBUM_PEAK"}, {GST_TAG_REFERENCE_LEVEL, "REPLAYGAIN_REFERENCE_LOUDNESS"}, {GST_TAG_MUSICBRAINZ_TRACKID, "MUSICBRAINZ_TRACKID"}, + {GST_TAG_MUSICBRAINZ_RELEASETRACKID, "MUSICBRAINZ_RELEASETRACKID"}, {GST_TAG_MUSICBRAINZ_ARTISTID, "MUSICBRAINZ_ARTISTID"}, {GST_TAG_MUSICBRAINZ_ALBUMID, "MUSICBRAINZ_ALBUMID"}, {GST_TAG_MUSICBRAINZ_ALBUMARTISTID, "MUSICBRAINZ_ALBUMARTISTID"}, + {GST_TAG_MUSICBRAINZ_RELEASEGROUPID, "MUSICBRAINZ_RELEASEGROUPID"}, {GST_TAG_MUSICBRAINZ_TRMID, "MUSICBRAINZ_TRMID"}, {GST_TAG_ARTIST_SORTNAME, "ARTISTSORT"}, {GST_TAG_ARTIST_SORTNAME, "ARTISTSORTORDER"}, diff --git a/gst-libs/gst/tag/tag.h b/gst-libs/gst/tag/tag.h index 1e2eec4ea6..749705e8ce 100644 --- a/gst-libs/gst/tag/tag.h +++ b/gst-libs/gst/tag/tag.h @@ -57,6 +57,18 @@ G_BEGIN_DECLS * MusicBrainz album artist ID */ #define GST_TAG_MUSICBRAINZ_ALBUMARTISTID "musicbrainz-albumartistid" +/** + * GST_TAG_MUSICBRAINZ_RELEASEGROUPID: + * + * MusicBrainz Release Group ID + */ +#define GST_TAG_MUSICBRAINZ_RELEASEGROUPID "musicbrainz-releasegroupid" +/** + * GST_TAG_MUSICBRAINZ_RELEASETRACKID: + * + * MusicBrainz Release Track ID + */ +#define GST_TAG_MUSICBRAINZ_RELEASETRACKID "musicbrainz-releasetrackid" /** * GST_TAG_MUSICBRAINZ_TRMID: * @@ -431,12 +443,12 @@ GST_TAG_API const gchar * gst_tag_to_vorbis_tag (const gchar * gst_tag); GST_TAG_API -void gst_vorbis_tag_add (GstTagList * list, - const gchar * tag, +void gst_vorbis_tag_add (GstTagList * list, + const gchar * tag, const gchar * value); GST_TAG_API -GList * gst_tag_to_vorbis_comments (const GstTagList * list, +GList * gst_tag_to_vorbis_comments (const GstTagList * list, const gchar * tag); /* functions to convert GstBuffers with vorbiscomment contents to GstTagLists and back */ diff --git a/gst-libs/gst/tag/tags.c b/gst-libs/gst/tag/tags.c index 968fcce489..ac94860772 100644 --- a/gst-libs/gst/tag/tags.c +++ b/gst-libs/gst/tag/tags.c @@ -82,6 +82,12 @@ gst_tag_register_tags_internal (gpointer unused) gst_tag_register_static (GST_TAG_MUSICBRAINZ_ALBUMARTISTID, GST_TAG_FLAG_META, G_TYPE_STRING, _("album artist ID"), _("MusicBrainz album artist ID"), NULL); + gst_tag_register_static (GST_TAG_MUSICBRAINZ_RELEASEGROUPID, + GST_TAG_FLAG_META, G_TYPE_STRING, _("release group ID"), + _("MusicBrainz release group ID"), NULL); + gst_tag_register_static (GST_TAG_MUSICBRAINZ_RELEASETRACKID, + GST_TAG_FLAG_META, G_TYPE_STRING, _("release track ID"), + _("MusicBrainz release track ID"), NULL); gst_tag_register_static (GST_TAG_MUSICBRAINZ_TRMID, GST_TAG_FLAG_META, G_TYPE_STRING, _("track TRM ID"), _("MusicBrainz TRM ID"), NULL); diff --git a/tests/check/libs/tag.c b/tests/check/libs/tag.c index 2c069f8218..b3be945bb0 100644 --- a/tests/check/libs/tag.c +++ b/tests/check/libs/tag.c @@ -192,6 +192,8 @@ GST_START_TEST (test_musicbrainz_tag_registration) gst_vorbis_tag_add (list, "MUSICBRAINZ_ARTISTID", "234567"); gst_vorbis_tag_add (list, "MUSICBRAINZ_ALBUMID", "345678"); gst_vorbis_tag_add (list, "MUSICBRAINZ_ALBUMARTISTID", "4567890"); + gst_vorbis_tag_add (list, "MUSICBRAINZ_RELEASETRACKID", "4567891"); + gst_vorbis_tag_add (list, "MUSICBRAINZ_RELEASEGROUPID", "4567892"); gst_vorbis_tag_add (list, "MUSICBRAINZ_TRMID", "5678901"); /* MUSICBRAINZ_SORTNAME = GST_TAG_ARTIST_SORTNAME now */ gst_vorbis_tag_add (list, "MUSICBRAINZ_SORTNAME", "Five, 678901"); @@ -201,6 +203,10 @@ GST_START_TEST (test_musicbrainz_tag_registration) ASSERT_TAG_LIST_HAS_STRING (list, GST_TAG_MUSICBRAINZ_ALBUMID, "345678"); ASSERT_TAG_LIST_HAS_STRING (list, GST_TAG_MUSICBRAINZ_ALBUMARTISTID, "4567890"); + ASSERT_TAG_LIST_HAS_STRING (list, GST_TAG_MUSICBRAINZ_RELEASETRACKID, + "4567891"); + ASSERT_TAG_LIST_HAS_STRING (list, GST_TAG_MUSICBRAINZ_RELEASEGROUPID, + "4567892"); ASSERT_TAG_LIST_HAS_STRING (list, GST_TAG_MUSICBRAINZ_TRMID, "5678901"); ASSERT_TAG_LIST_HAS_STRING (list, GST_TAG_ARTIST_SORTNAME, "Five, 678901");