summaryrefslogtreecommitdiffstats
path: root/gst/id3demux
diff options
context:
space:
mode:
authorJan Schmidt <thaytan@mad.scientist.com>2006-02-03 13:06:24 +0000
committerJan Schmidt <thaytan@mad.scientist.com>2006-02-03 13:06:24 +0000
commit1d6e1c999a1ff435382ef69e05cc2b460ae5c8aa (patch)
tree1b768f5ddf6002c9a4f2a8b687435f5ab4afe7a5 /gst/id3demux
parent9a64d2bb3a02c34022849921e0dcd097e2eec8a4 (diff)
gst/id3demux/id3v2frames.c: Never output a tag with a null contents string.
Original commit message from CVS: * gst/id3demux/id3v2frames.c: (parse_text_identification_frame), (id3v2_tag_to_taglist), (id3v2_genre_string_to_taglist), (id3v2_genre_fields_to_taglist): Never output a tag with a null contents string.
Diffstat (limited to 'gst/id3demux')
-rw-r--r--gst/id3demux/id3v2frames.c18
1 files changed, 15 insertions, 3 deletions
diff --git a/gst/id3demux/id3v2frames.c b/gst/id3demux/id3v2frames.c
index c4c41ff0..3ebfc07d 100644
--- a/gst/id3demux/id3v2frames.c
+++ b/gst/id3demux/id3v2frames.c
@@ -232,6 +232,16 @@ parse_text_identification_frame (ID3TagsWorking * work)
encoding = work->parse_data[0];
parse_split_strings (encoding, (gchar *) work->parse_data + 1,
work->parse_size - 1, &fields);
+ if (fields) {
+ if (fields->len > 0) {
+ GST_LOG ("Read %d fields from Text ID frame of size %d. First is '%s'",
+ fields->len, work->parse_size - 1,
+ g_array_index (fields, gchar *, 0));
+ } else {
+ GST_LOG ("Read %d fields from Text ID frame of size %d", fields->len,
+ work->parse_size - 1);
+ }
+ }
return fields;
}
@@ -243,6 +253,9 @@ id3v2_tag_to_taglist (ID3TagsWorking * work, const gchar * tag_name,
GType tag_type = gst_tag_get_type (tag_name);
GstTagList *tag_list = work->tags;
+ if (tag_str == NULL)
+ return FALSE;
+
switch (tag_type) {
case G_TYPE_UINT:
{
@@ -371,8 +384,7 @@ id3v2_genre_string_to_taglist (ID3TagsWorking * work, const gchar * tag_name,
/* If it's a number, it might be a defined genre */
if (id3v2_are_digits (tag_str, len)) {
tag_str = gst_tag_id3_genre_get (strtol (tag_str, NULL, 10));
- if (tag_str != NULL)
- return id3v2_tag_to_taglist (work, tag_name, tag_str);
+ return id3v2_tag_to_taglist (work, tag_name, tag_str);
}
/* Otherwise it might be "RX" or "CR" */
if (len == 2) {
@@ -434,7 +446,7 @@ id3v2_genre_fields_to_taglist (ID3TagsWorking * work, const gchar * tag_name,
}
}
- if (len > 0)
+ if (len > 0 && tag_str != NULL)
result |= id3v2_genre_string_to_taglist (work, tag_name, tag_str, len);
}
return result;