diff options
| author | Yuqing Zhu <b54851@freescale.com> | 2015-08-10 11:41:33 +0800 | 
|---|---|---|
| committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2015-08-11 08:51:56 -0700 | 
| commit | 9f8c49862ee67f7f618f102f29f067ec2d712136 (patch) | |
| tree | 3bbbe0dde336d928d5d4f5b9eba557077f578fdf | |
| parent | efb9e4a752c2f6cb637025409cc1ddadd1714ea5 (diff) | |
| download | openembedded-core-9f8c49862ee67f7f618f102f29f067ec2d712136.tar.gz openembedded-core-9f8c49862ee67f7f618f102f29f067ec2d712136.tar.bz2 openembedded-core-9f8c49862ee67f7f618f102f29f067ec2d712136.zip | |
gstreamer1.0-plugins-base: Bug fix for id3demux issue
Use g_utf16_to_utf8() instead of g_convert to fix the issue that
id3 tags utf16 charaters cannot be extreacted in id3demux when try
to get the id3v2 tag such as TIT2, TALB etc.
Signed-off-by: Yuqing Zhu <b54851@freescale.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
| -rwxr-xr-x | meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/fix-id3demux-utf16-to-utf8-issue.patch | 54 | ||||
| -rw-r--r-- | meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.4.5.bb | 1 | 
2 files changed, 55 insertions, 0 deletions
| diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/fix-id3demux-utf16-to-utf8-issue.patch b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/fix-id3demux-utf16-to-utf8-issue.patch new file mode 100755 index 0000000000..ef3f75fba5 --- /dev/null +++ b/meta/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; diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.4.5.bb b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.4.5.bb index 11cf8b4fde..aaa1ecba77 100644 --- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.4.5.bb +++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.4.5.bb @@ -8,6 +8,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=c54ce9345727175ff66d17b67ff51f58 \  SRC_URI += "file://do-not-change-eos-event-to-gap-event-if.patch \              file://get-caps-from-src-pad-when-query-caps.patch \              file://taglist-not-send-to-down-stream-if-all-the-frame-cor.patch \ +            file://fix-id3demux-utf16-to-utf8-issue.patch \  "  SRC_URI[md5sum] = "357165af625c0ca353ab47c5d843920e" | 
