diff options
author | Tim-Philipp Müller <tim@centricular.net> | 2006-07-26 10:07:29 +0000 |
---|---|---|
committer | Tim-Philipp Müller <tim@centricular.net> | 2006-07-26 10:07:29 +0000 |
commit | 1adb9122d74ef67a6f8541b7032c2fdd8fbf48f5 (patch) | |
tree | 019a4e1527d71a6aa77a47868526ffceb8ed3624 /ext/taglib | |
parent | c22616258e35568f82195bf95e6cff97e2b4a1e0 (diff) |
ext/taglib/gstid3v2mux.cc: is still sub-optimal though, since we don't retain or extract the comment descriptions pro...
Original commit message from CVS:
* ext/taglib/gstid3v2mux.cc:
Fix writing of comment frames (should be COMM not TCOM),
is still sub-optimal though, since we don't retain or
extract the comment descriptions properly (#334375,
also see #334375).
Diffstat (limited to 'ext/taglib')
-rw-r--r-- | ext/taglib/gstid3v2mux.cc | 34 |
1 files changed, 33 insertions, 1 deletions
diff --git a/ext/taglib/gstid3v2mux.cc b/ext/taglib/gstid3v2mux.cc index 290ee600..00a4c3fa 100644 --- a/ext/taglib/gstid3v2mux.cc +++ b/ext/taglib/gstid3v2mux.cc @@ -60,6 +60,7 @@ #include <textidentificationframe.h> #include <uniquefileidentifierframe.h> #include <attachedpictureframe.h> +#include <commentsframe.h> #include <id3v2tag.h> #include <gst/tag/tag.h> @@ -445,6 +446,37 @@ add_image_tag (ID3v2::Tag * id3v2tag, const GstTagList * list, } static void +add_comment_tag (ID3v2::Tag * id3v2tag, const GstTagList * list, + const gchar * tag, guint num_tags, const gchar * unused) +{ + TagLib::StringList string_list; + guint n; + + GST_LOG ("Adding comment frames"); + for (n = 0; n < num_tags; ++n) { + gchar *s = NULL; + + if (gst_tag_list_get_string_index (list, tag, n, &s) && s != NULL) { + ID3v2::CommentsFrame * f; + gchar *desc; + + GST_LOG ("%s[%u] = '%s'", tag, n, s); + f = new ID3v2::CommentsFrame (String::UTF8); + + /* FIXME: we should somehow try to preserve the original descriptions */ + desc = g_strdup_printf ("c%u", n); + f->setDescription (desc); + g_free (desc); + + f->setText (s); + g_free (s); + + id3v2tag->addFrame (f); + } + } +} + +static void add_text_tag (ID3v2::Tag * id3v2tag, const GstTagList * list, const gchar * tag, guint num_tags, const gchar * frame_id) { @@ -485,9 +517,9 @@ static const struct GST_TAG_ARTIST, add_text_tag, "TPE1"}, { GST_TAG_TITLE, add_text_tag, "TIT2"}, { GST_TAG_ALBUM, add_text_tag, "TALB"}, { - GST_TAG_COMMENT, add_text_tag, "TCOM"}, { GST_TAG_COPYRIGHT, add_text_tag, "TCOP"}, { GST_TAG_GENRE, add_text_tag, "TCON"}, { + GST_TAG_COMMENT, add_comment_tag, ""}, { GST_TAG_DATE, add_date_tag, ""}, { GST_TAG_IMAGE, add_image_tag, ""}, { GST_TAG_PREVIEW_IMAGE, add_image_tag, ""}, { |