[tracker/tracker-0.10] tracker-extract-mp3: Do not always use guessed encoding for ID3v2



commit 7d0b38c1e87e600bbc6b2ab7658253f673b0f1a1
Author: JÃrg Billeter <j bitron ch>
Date:   Fri Aug 19 11:41:32 2011 +0200

    tracker-extract-mp3: Do not always use guessed encoding for ID3v2
    
    Always using guessed 8-bit encoding for ID3v2 breaks some valid MP3
    files. This commit disables use of guessed encoding for ID3v2 except
    for Cyrillic locales where broken ID3v2 tags appear to be common.
    
    Fixes NB#278171.

 src/tracker-extract/tracker-extract-mp3.c |   15 +++++++++++++++
 1 files changed, 15 insertions(+), 0 deletions(-)
---
diff --git a/src/tracker-extract/tracker-extract-mp3.c b/src/tracker-extract/tracker-extract-mp3.c
index 2de0c81..b2b05b5 100644
--- a/src/tracker-extract/tracker-extract-mp3.c
+++ b/src/tracker-extract/tracker-extract-mp3.c
@@ -2146,6 +2146,21 @@ extract_mp3 (const gchar          *uri,
 
 	g_free (id3v1_buffer);
 
+	if (md.id3v1.encoding != NULL) {
+		gchar *locale;
+
+		locale = tracker_locale_get (TRACKER_LOCALE_LANGUAGE);
+		if (!g_str_has_prefix (locale, "ru") &&
+		    !g_str_has_prefix (locale, "uk")) {
+			/* use guessed encoding for ID3v2 tags only in selected locales
+			   where broken ID3v2 is widespread */
+			g_free (md.id3v1.encoding);
+			md.id3v1.encoding = NULL;
+		}
+		g_free (locale);
+		locale = NULL;
+	}
+
 	/* Get other embedded tags */
 	audio_offset = parse_id3v2 (buffer, buffer_size, &md.id3v1, uri, metadata, &md);
 



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]