diff options
author | Jeremy Simon <jsimon13@yahoo.fr> | 2004-02-02 22:42:42 +0000 |
---|---|---|
committer | Jeremy Simon <jsimon13@yahoo.fr> | 2004-02-02 22:42:42 +0000 |
commit | 99adadce8c425d0b275913ffcd5efe7799bf5c13 (patch) | |
tree | a96ae509133cd3e07b905a520fe543c6512978c2 | |
parent | f921cef74547ae1f81ca32812b801a68cd4923dd (diff) | |
download | gstreamer-plugins-base-99adadce8c425d0b275913ffcd5efe7799bf5c13.tar.gz |
gst/tags/gstvorbistag.c: Add replaygain support to vorbistag
Original commit message from CVS:
2004-02-02 Jeremy Simon <jesimon@libertysurf.fr>
* gst/tags/gstvorbistag.c: (gst_vorbis_tag_add),
(gst_tag_to_vorbis_comments):
Add replaygain support to vorbistag
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | gst/tags/gstvorbistag.c | 44 |
2 files changed, 34 insertions, 16 deletions
@@ -1,4 +1,10 @@ 2004-02-02 Jeremy Simon <jesimon@libertysurf.fr> + + * gst/tags/gstvorbistag.c: (gst_vorbis_tag_add), + (gst_tag_to_vorbis_comments): + Add replaygain support to vorbistag + +2004-02-02 Jeremy Simon <jesimon@libertysurf.fr> * ext/ffmpeg/gstffmpegcodecmap.c: (gst_ffmpeg_codecid_to_caps), (gst_ffmpeg_caps_to_extradata): Fix SVQ3 caps flag properties diff --git a/gst/tags/gstvorbistag.c b/gst/tags/gstvorbistag.c index 673423bde..9df5bf368 100644 --- a/gst/tags/gstvorbistag.c +++ b/gst/tags/gstvorbistag.c @@ -173,22 +173,26 @@ gst_vorbis_tag_init (GTypeInstance *instance, gpointer g_class) gst_element_add_pad (GST_ELEMENT (tag), tag->srcpad); } static GstTagEntryMatch tag_matches[] = { - { GST_TAG_TITLE, "TITLE" }, - { GST_TAG_VERSION, "VERSION" }, - { GST_TAG_ALBUM, "ALBUM" }, - { GST_TAG_TRACK_NUMBER,"TRACKNUMBER" }, - { GST_TAG_ARTIST, "ARTIST" }, - { GST_TAG_PERFORMER, "PERFORMER" }, - { GST_TAG_COPYRIGHT, "COPYRIGHT" }, - { GST_TAG_LICENSE, "LICENSE" }, - { GST_TAG_ORGANIZATION,"ORGANIZATION" }, - { GST_TAG_DESCRIPTION,"DESCRIPTION" }, - { GST_TAG_GENRE, "GENRE" }, - { GST_TAG_DATE, "DATE" }, - { GST_TAG_CONTACT, "CONTACT" }, - { GST_TAG_ISRC, "ISRC" }, - { GST_TAG_COMMENT, "COMMENT" }, - { NULL, NULL } + { GST_TAG_TITLE, "TITLE" }, + { GST_TAG_VERSION, "VERSION" }, + { GST_TAG_ALBUM, "ALBUM" }, + { GST_TAG_TRACK_NUMBER, "TRACKNUMBER" }, + { GST_TAG_ARTIST, "ARTIST" }, + { GST_TAG_PERFORMER, "PERFORMER" }, + { GST_TAG_COPYRIGHT, "COPYRIGHT" }, + { GST_TAG_LICENSE, "LICENSE" }, + { GST_TAG_ORGANIZATION, "ORGANIZATION" }, + { GST_TAG_DESCRIPTION, "DESCRIPTION" }, + { GST_TAG_GENRE, "GENRE" }, + { GST_TAG_DATE, "DATE" }, + { GST_TAG_CONTACT, "CONTACT" }, + { GST_TAG_ISRC, "ISRC" }, + { GST_TAG_COMMENT, "COMMENT" }, + { GST_TAG_TRACK_GAIN, "REPLAYGAIN_TRACK_GAIN" }, + { GST_TAG_TRACK_PEAK, "REPLAYGAIN_TRACK_PEAK" }, + { GST_TAG_ALBUM_GAIN, "REPLAYGAIN_ALBUM_GAIN" }, + { GST_TAG_ALBUM_PEAK, "REPLAYGAIN_ALBUM_PEAK" }, + { NULL, NULL } }; /** * gst_tag_from_vorbis_tag: @@ -288,6 +292,9 @@ gst_vorbis_tag_add (GstTagList *list, const gchar *tag, const gchar *value) case G_TYPE_STRING: gst_tag_list_add (list, GST_TAG_MERGE_APPEND, gst_tag, value, NULL); break; + case G_TYPE_DOUBLE: + gst_tag_list_add (list, GST_TAG_MERGE_APPEND, gst_tag, g_strtod (value, NULL), NULL); + break; default: break; } @@ -409,6 +416,11 @@ gst_tag_to_vorbis_comments (const GstTagList *list, const gchar *tag) result = g_strdup_printf ("%s=%s", vorbis_tag, str); break; } + case G_TYPE_DOUBLE: { + gdouble value; + g_assert (gst_tag_list_get_double_index (list, tag, i, &value)); + result = g_strdup_printf ("%s=%f", vorbis_tag, value); + } default: GST_DEBUG ("Couldn't write tag %s", tag); continue; |