diff options
| author | Jan Schmidt <thaytan@mad.scientist.com> | 2006-08-22 13:53:34 +0000 | 
|---|---|---|
| committer | Jan Schmidt <thaytan@mad.scientist.com> | 2006-08-22 13:53:34 +0000 | 
| commit | 66bbbfb7692efd242fb5aa7c48daf98818e56d84 (patch) | |
| tree | b2688fda2f2dfb78ffc48ce037b65187f84b22d7 | |
| parent | ad67773c8dbb68281b5dba2ce370e1b97b6dfbba (diff) | |
gst/id3demux/id3v2frames.c: If strings in text fields are marked ISO8859-1, but contain valid UTF-8 already, then han...
Original commit message from CVS:
* gst/id3demux/id3v2frames.c: (parse_text_identification_frame),
(parse_insert_string_field):
If strings in text fields are marked ISO8859-1, but contain
valid UTF-8 already, then handle them as UTF-8 and ignore
the encoding. (#351794)
| -rw-r--r-- | ChangeLog | 8 | ||||
| -rw-r--r-- | gst/id3demux/id3v2frames.c | 15 | 
2 files changed, 17 insertions, 6 deletions
@@ -1,3 +1,11 @@ +2006-08-22  Jan Schmidt  <thaytan@mad.scientist.com> + +	* gst/id3demux/id3v2frames.c: (parse_text_identification_frame), +	(parse_insert_string_field): +	  If strings in text fields are marked ISO8859-1, but contain +	  valid UTF-8 already, then handle them as UTF-8 and ignore +	  the encoding. (#351794) +  2006-08-22  Tim-Philipp Müller  <tim at centricular dot net>  	* ext/flac/gstflacdec.c: (gst_flac_dec_scan_got_frame), diff --git a/gst/id3demux/id3v2frames.c b/gst/id3demux/id3v2frames.c index 4e98a5eb..96fa88ec 100644 --- a/gst/id3demux/id3v2frames.c +++ b/gst/id3demux/id3v2frames.c @@ -273,12 +273,12 @@ parse_text_identification_frame (ID3TagsWorking * work)        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, +      GST_LOG ("Read %d fields from Text ID frame of size %d with encoding %d" +          ". First is '%s'", fields->len, work->parse_size - 1, encoding,            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); +      GST_LOG ("Read 0 fields from Text ID frame of size %d with encoding %d", +          work->parse_size - 1, encoding);      }    } @@ -911,8 +911,11 @@ parse_insert_string_field (guint8 encoding, gchar * data, gint data_size,        break;      case ID3V2_ENCODING_ISO8859: -      field = g_convert (data, data_size, "UTF-8", "ISO-8859-1", -          NULL, NULL, NULL); +      if (g_utf8_validate (data, data_size, NULL)) +        field = g_strndup (data, data_size); +      else +        field = g_convert (data, data_size, "UTF-8", "ISO-8859-1", +            NULL, NULL, NULL);        break;      default:        field = g_strndup (data, data_size);  | 
