|
@@ -0,0 +1,82 @@
|
|
|
+From 78571ed421e3fd3d5244cd76670e4e1bab69132f Mon Sep 17 00:00:00 2001
|
|
|
+From: Bernd Kuhls <bernd.kuhls@t-online.de>
|
|
|
+Date: Fri, 27 May 2016 17:30:28 +0200
|
|
|
+Subject: [PATCH 1/1] Fix nullpadding issue when reading certain id3v1 tags
|
|
|
+
|
|
|
+backported from upstream commit to master branch:
|
|
|
+
|
|
|
+https://github.com/xbmc/xbmc/commit/cdabf9dd9e82f4b2d639fb769db08227a7c52046
|
|
|
+
|
|
|
+to fix problems with taglib-1.11:
|
|
|
+
|
|
|
+http://trac.kodi.tv/ticket/16454
|
|
|
+https://github.com/taglib/taglib/issues/741#issuecomment-218059031
|
|
|
+
|
|
|
+Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
|
|
|
+---
|
|
|
+ xbmc/music/tags/TagLoaderTagLib.cpp | 21 ---------------------
|
|
|
+ xbmc/music/tags/TagLoaderTagLib.h | 3 +++
|
|
|
+ 2 files changed, 3 insertions(+), 21 deletions(-)
|
|
|
+
|
|
|
+diff --git a/xbmc/music/tags/TagLoaderTagLib.cpp b/xbmc/music/tags/TagLoaderTagLib.cpp
|
|
|
+index b78a591..0fc346a 100644
|
|
|
+--- a/xbmc/music/tags/TagLoaderTagLib.cpp
|
|
|
++++ b/xbmc/music/tags/TagLoaderTagLib.cpp
|
|
|
+@@ -46,31 +46,12 @@
|
|
|
+ #include "utils/URIUtils.h"
|
|
|
+ #include "utils/log.h"
|
|
|
+ #include "utils/StringUtils.h"
|
|
|
+-#include "utils/CharsetConverter.h"
|
|
|
+ #include "utils/Base64.h"
|
|
|
+ #include "settings/AdvancedSettings.h"
|
|
|
+
|
|
|
+ using namespace TagLib;
|
|
|
+ using namespace MUSIC_INFO;
|
|
|
+
|
|
|
+-template<class T>
|
|
|
+-class TagStringHandler : public T
|
|
|
+-{
|
|
|
+-public:
|
|
|
+- TagStringHandler() {}
|
|
|
+- virtual ~TagStringHandler() {}
|
|
|
+- virtual String parse(const ByteVector &data) const
|
|
|
+- {
|
|
|
+- std::string strSource(data.data(), data.size());
|
|
|
+- std::string strUTF8;
|
|
|
+- g_charsetConverter.unknownToUTF8(strSource, strUTF8);
|
|
|
+- return String(strUTF8, String::UTF8);
|
|
|
+- }
|
|
|
+-};
|
|
|
+-
|
|
|
+-static const TagStringHandler<ID3v1::StringHandler> ID3v1StringHandler;
|
|
|
+-static const TagStringHandler<ID3v2::Latin1StringHandler> ID3v2StringHandler;
|
|
|
+-
|
|
|
+ CTagLoaderTagLib::CTagLoaderTagLib()
|
|
|
+ {
|
|
|
+ }
|
|
|
+@@ -824,8 +805,6 @@ bool CTagLoaderTagLib::Load(const std::string& strFileName, CMusicInfoTag& tag,
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
+- ID3v1::Tag::setStringHandler(&ID3v1StringHandler);
|
|
|
+- ID3v2::Tag::setLatin1StringHandler(&ID3v2StringHandler);
|
|
|
+ TagLib::File* file = NULL;
|
|
|
+ TagLib::APE::File* apeFile = NULL;
|
|
|
+ TagLib::ASF::File* asfFile = NULL;
|
|
|
+diff --git a/xbmc/music/tags/TagLoaderTagLib.h b/xbmc/music/tags/TagLoaderTagLib.h
|
|
|
+index f83ea4f..0edb84f 100644
|
|
|
+--- a/xbmc/music/tags/TagLoaderTagLib.h
|
|
|
++++ b/xbmc/music/tags/TagLoaderTagLib.h
|
|
|
+@@ -44,6 +44,9 @@
|
|
|
+ #include <taglib/mp4tag.h>
|
|
|
+ #include "ImusicInfoTagLoader.h"
|
|
|
+
|
|
|
++#include <string>
|
|
|
++#include <vector>
|
|
|
++
|
|
|
+ namespace MUSIC_INFO
|
|
|
+ {
|
|
|
+ class CMusicInfoTag;
|
|
|
+--
|
|
|
+2.8.1
|
|
|
+
|