summaryrefslogtreecommitdiffstats
path: root/common/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/fix-id3demux-utf16-to-utf8-issue.patch
diff options
context:
space:
mode:
authorJan-Simon Möller <jsmoeller@linuxfoundation.org>2016-09-01 18:16:16 +0200
committerJan-Simon Möller <jsmoeller@linuxfoundation.org>2016-09-01 23:31:22 +0200
commit770fb50f0ac05731dd1389bfceb171253425855d (patch)
tree2b064bc0596c91f1e0ed3ee2ffd7cb927bf970c9 /common/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/fix-id3demux-utf16-to-utf8-issue.patch
parent82611ccadef36ab0b8a6fd6fb1cf055e115f1ef5 (diff)
Changes to meta-renesas for building with YP 2.1.1 'krogoth'
Notable changes: - We drop old appends (libgcc_4.8.bbappend, qemu_%.bbappends, gtk+_2.24.%.bbappend) - All gstreamer1.0_1.2.3 related recipes are now in meta-reneas and have been heavily massaged to work with YP 2.1.1 . - systemd needs a patch due to the old kernel - linux-libc-headers needed a patch TODO: - Test and fix Signed-off-by: Jan-Simon Möller <jsmoeller@linuxfoundation.org>
Diffstat (limited to 'common/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/fix-id3demux-utf16-to-utf8-issue.patch')
-rwxr-xr-xcommon/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/fix-id3demux-utf16-to-utf8-issue.patch54
1 files changed, 54 insertions, 0 deletions
diff --git a/common/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/fix-id3demux-utf16-to-utf8-issue.patch b/common/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/fix-id3demux-utf16-to-utf8-issue.patch
new file mode 100755
index 0000000..ef3f75f
--- /dev/null
+++ b/common/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/fix-id3demux-utf16-to-utf8-issue.patch
@@ -0,0 +1,54 @@
+Author: Lyon Wang <b12696@freescale.com>
+Date: Thu Oct 9 17:37:43 2014 +0800
+
+[id3v2frames] Bug fix for id3demux issue
+
+Fix the issue that id3 tags utf16 charaters cannot be extreacted in id3demux
+when I tried to get the id3v2 tag such as TIT2, TALB etc. it will return extrac
+failed.
+
+Checked in id3v2frame.c, When parse the UTF-16 streams, it used g_convert() to
+convert the buffer from UTF-16 to UTF-8, however it will return err that this
+conversion is not supported which cause the extraction failed with these UTF-16
+characters.
+
+In the patch, use g_utf16_to_utf8() instead of g_convert, which can convert the
+character format successfully.
+
+https://bugzilla.gnome.org/show_bug.cgi?id=741144
+
+Upstream-Status: Backport [1.5.1]
+
+Signed-off-by: Lyon Wang <b12696@freescale.com>
+
+diff --git a/gst-libs/gst/tag/id3v2frames.c b/gst-libs/gst/tag/id3v2frames.c
+old mode 100644
+new mode 100755
+index 3785c2a..7b9d8ac
+--- a/gst-libs/gst/tag/id3v2frames.c
++++ b/gst-libs/gst/tag/id3v2frames.c
+@@ -1057,14 +1057,17 @@ parse_insert_string_field (guint8 encoding, gchar * data, gint data_size,
+ data_size -= 2;
+ }
+
+- field = g_convert (data, data_size, "UTF-8", in_encode, NULL, NULL, NULL);
+-
+- if (field == NULL || g_utf8_validate (field, -1, NULL) == FALSE) {
+- /* As a fallback, try interpreting UTF-16 in the other endianness */
+- if (in_encode == utf16beenc)
+- field = g_convert (data, data_size, "UTF-8", utf16leenc,
+- NULL, NULL, NULL);
++ if (in_encode == utf16beenc) {
++ gunichar2 *data_utf16;
++ guint i;
++ data_utf16 = (gunichar2 *) data;
++ for (i=0; i<(data_size>>1); i++) {
++ data_utf16[i] = GUINT16_TO_LE (data_utf16[i]);
++ }
+ }
++ //field = g_convert (data, data_size, "UTF-8", in_encode, NULL, NULL, NULL);
++ field = g_utf16_to_utf8((gunichar2 *)data, (glong)(data_size>>1), NULL, NULL, NULL);
++
+ }
+
+ break;