diff --git a/id3lib-3.8.3-00-add-libz-to-compilation.patch b/id3lib-3.8.3-00-add-libz-to-compilation.patch deleted file mode 100644 index e937877..0000000 --- a/id3lib-3.8.3-00-add-libz-to-compilation.patch +++ /dev/null @@ -1,14 +0,0 @@ -This patch was first introduced in version 3.8.3-3 - -It fixes http://bugs.debian.org/208672 ---- a/src/Makefile.am -+++ b/src/Makefile.am -@@ -74,6 +74,8 @@ - - if ID3_NEEDZLIB - LDADD = $(top_builddir)/zlib/src/libz.la -+else -+libid3_la_LIBADD = -lz - endif - - libid3_la_LDFLAGS = \ diff --git a/id3lib-3.8.3-05-create-m4-directory.patch b/id3lib-3.8.3-05-create-m4-directory.patch deleted file mode 100644 index d811120..0000000 --- a/id3lib-3.8.3-05-create-m4-directory.patch +++ /dev/null @@ -1,12 +0,0 @@ -Create a local m4 subdirectory ---- a/Makefile.am -+++ b/Makefile.am -@@ -12,6 +12,8 @@ - # require automake 1.5 - AUTOMAKE_OPTIONS = 1.5 - -+ACLOCAL_AMFLAGS = -I m4 -+ - EXTRA_DIST = \ - HISTORY \ - config.h.win32 \ diff --git a/id3lib-3.8.3-10-fix-compilation-with-cpp-headers.patch b/id3lib-3.8.3-10-fix-compilation-with-cpp-headers.patch deleted file mode 100644 index a9b45ab..0000000 --- a/id3lib-3.8.3-10-fix-compilation-with-cpp-headers.patch +++ /dev/null @@ -1,22 +0,0 @@ -This patch imports the proper C++ headers ---- a/include/id3/id3lib_strings.h -+++ b/include/id3/id3lib_strings.h -@@ -30,6 +30,7 @@ - #define _ID3LIB_STRINGS_H_ - - #include -+#include - - #if (defined(__GNUC__) && (__GNUC__ >= 3) || (defined(_MSC_VER) && _MSC_VER > 1000)) - namespace std ---- a/include/id3/writers.h -+++ b/include/id3/writers.h -@@ -30,7 +30,7 @@ - - #include "id3/writer.h" - #include "id3/id3lib_streams.h" --//#include -+#include - - class ID3_CPP_EXPORT ID3_OStreamWriter : public ID3_Writer - { diff --git a/id3lib-3.8.3-15-fix-headers-of-main-functions.patch b/id3lib-3.8.3-15-fix-headers-of-main-functions.patch deleted file mode 100644 index 48e01d1..0000000 --- a/id3lib-3.8.3-15-fix-headers-of-main-functions.patch +++ /dev/null @@ -1,45 +0,0 @@ -This patch fixes some function headers in demo code used during 'make check' ---- a/examples/demo_info.cpp -+++ b/examples/demo_info.cpp -@@ -309,7 +309,7 @@ - - #define DEBUG - --int main( unsigned int argc, char * const argv[]) -+int main(int argc, char * const argv[]) - { - ID3D_INIT_DOUT(); - ---- a/examples/demo_convert.cpp -+++ b/examples/demo_convert.cpp -@@ -84,7 +84,7 @@ - } - } - --int main( unsigned int argc, char * const argv[]) -+int main(int argc, char * const argv[]) - { - flags_t ulFlag = ID3TT_ALL; - gengetopt_args_info args; ---- a/examples/demo_copy.cpp -+++ b/examples/demo_copy.cpp -@@ -81,7 +81,7 @@ - } - } - --int main( unsigned int argc, char * const argv[]) -+int main(int argc, char * const argv[]) - { - int ulFlag = ID3TT_ID3; - ID3D_INIT_DOUT(); ---- a/examples/demo_tag.cpp -+++ b/examples/demo_tag.cpp -@@ -46,7 +46,7 @@ - os << "v2"; - } - --int main( unsigned int argc, char * const argv[]) -+int main(int argc, char * const argv[]) - { - int ulFlag = ID3TT_ID3; - ID3D_INIT_DOUT(); diff --git a/id3lib-3.8.3-30-fix-utf16.patch b/id3lib-3.8.3-30-fix-utf16.patch deleted file mode 100644 index 3d3f50f..0000000 --- a/id3lib-3.8.3-30-fix-utf16.patch +++ /dev/null @@ -1,38 +0,0 @@ -Patch from 'Spoon' to fix issues with writing certain unicode characters ---- a/ChangeLog -+++ b/ChangeLog -@@ -1,3 +1,8 @@ -+2006-02-17 Jerome Couderc -+ -+ * Patch from Spoon to fix UTF-16 writing bug -+ http://sourceforge.net/tracker/index.php?func=detail&aid=1016290&group_id=979&atid=300979 -+ - 2003-03-02 Sunday 17:38 Thijmen Klok - - * THANKS (1.20): added more people ---- a/src/io_helpers.cpp -+++ b/src/io_helpers.cpp -@@ -363,11 +363,22 @@ - // Write the BOM: 0xFEFF - unicode_t BOM = 0xFEFF; - writer.writeChars((const unsigned char*) &BOM, 2); -+ // Patch from Spoon : 2004-08-25 14:17 -+ // http://sourceforge.net/tracker/index.php?func=detail&aid=1016290&group_id=979&atid=300979 -+ // Wrong code -+ //for (size_t i = 0; i < size; i += 2) -+ //{ -+ // unicode_t ch = (data[i] << 8) | data[i+1]; -+ // writer.writeChars((const unsigned char*) &ch, 2); -+ //} -+ // Right code -+ unsigned char *pdata = (unsigned char *) data.c_str(); - for (size_t i = 0; i < size; i += 2) - { -- unicode_t ch = (data[i] << 8) | data[i+1]; -+ unicode_t ch = (pdata[i] << 8) | pdata[i+1]; - writer.writeChars((const unsigned char*) &ch, 2); - } -+ // End patch - } - return writer.getCur() - beg; - } diff --git a/id3lib-3.8.3-31-fix-utf16-stringlists.patch b/id3lib-3.8.3-31-fix-utf16-stringlists.patch deleted file mode 100644 index 3582238..0000000 --- a/id3lib-3.8.3-31-fix-utf16-stringlists.patch +++ /dev/null @@ -1,24 +0,0 @@ -This patch fixes tag corruption after pipe characters. - -Author: Urs Fleisch -Fixes: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=680915 ---- a/src/io_helpers.cpp -+++ b/src/io_helpers.cpp -@@ -373,10 +373,17 @@ - //} - // Right code - unsigned char *pdata = (unsigned char *) data.c_str(); -+ unicode_t lastCh = BOM; - for (size_t i = 0; i < size; i += 2) - { - unicode_t ch = (pdata[i] << 8) | pdata[i+1]; -+ if (lastCh == 0 && ch != BOM) -+ { -+ // Last character was NULL, so start next string with BOM. -+ writer.writeChars((const unsigned char*) &BOM, 2); -+ } - writer.writeChars((const unsigned char*) &ch, 2); -+ lastCh = ch; - } - // End patch - } diff --git a/id3lib-3.8.3-40-deal-with-mkstemp.patch b/id3lib-3.8.3-40-deal-with-mkstemp.patch deleted file mode 100644 index 36c8417..0000000 --- a/id3lib-3.8.3-40-deal-with-mkstemp.patch +++ /dev/null @@ -1,54 +0,0 @@ -This patch fixes an issues where temporary files were created in an insecure -way. - -It was first intruduced in version 3.8.3-7 and fixes -http://bugs.debian.org/438540 ---- a/src/tag_file.cpp -+++ b/src/tag_file.cpp -@@ -242,8 +242,8 @@ - strcpy(sTempFile, filename.c_str()); - strcat(sTempFile, sTmpSuffix.c_str()); - --#if ((defined(__GNUC__) && __GNUC__ >= 3 ) || !defined(HAVE_MKSTEMP)) -- // This section is for Windows folk && gcc 3.x folk -+#if !defined(HAVE_MKSTEMP) -+ // This section is for Windows folk - fstream tmpOut; - createFile(sTempFile, tmpOut); - -@@ -257,7 +257,7 @@ - tmpOut.write((char *)tmpBuffer, nBytes); - } - --#else //((defined(__GNUC__) && __GNUC__ >= 3 ) || !defined(HAVE_MKSTEMP)) -+#else //!defined(HAVE_MKSTEMP) - - // else we gotta make a temp file, copy the tag into it, copy the - // rest of the old file after the tag, delete the old file, rename -@@ -270,7 +270,7 @@ - //ID3_THROW_DESC(ID3E_NoFile, "couldn't open temp file"); - } - -- ofstream tmpOut(fd); -+ ofstream tmpOut(sTempFile); - if (!tmpOut) - { - tmpOut.close(); -@@ -285,14 +285,14 @@ - uchar tmpBuffer[BUFSIZ]; - while (file) - { -- file.read(tmpBuffer, BUFSIZ); -+ file.read((char *)tmpBuffer, BUFSIZ); - size_t nBytes = file.gcount(); -- tmpOut.write(tmpBuffer, nBytes); -+ tmpOut.write((char *)tmpBuffer, nBytes); - } - - close(fd); //closes the file - --#endif ////((defined(__GNUC__) && __GNUC__ >= 3 ) || !defined(HAVE_MKSTEMP)) -+#endif ////!defined(HAVE_MKSTEMP) - - tmpOut.close(); - file.close(); diff --git a/id3lib-3.8.3-50-remove-outdated-check.patch b/id3lib-3.8.3-50-remove-outdated-check.patch deleted file mode 100644 index 386da27..0000000 --- a/id3lib-3.8.3-50-remove-outdated-check.patch +++ /dev/null @@ -1,11 +0,0 @@ -We don't actually need iomanip.h ---- a/configure.in -+++ b/configure.in -@@ -227,7 +227,6 @@ - ) - AC_CHECK_HEADERS( \ - string \ -- iomanip.h \ - ,,AC_MSG_ERROR([Missing a vital header file for id3lib]) - ) - diff --git a/id3lib-3.8.3-50-remove-outdated-check2.patch b/id3lib-3.8.3-50-remove-outdated-check2.patch deleted file mode 100644 index 7c6c31f..0000000 --- a/id3lib-3.8.3-50-remove-outdated-check2.patch +++ /dev/null @@ -1,11 +0,0 @@ -diff -ru id3lib-3.8.3.orig/configure id3lib-3.8.3/configure ---- id3lib-3.8.3.orig/configure 2003-03-02 01:23:00.000000000 +0100 -+++ id3lib-3.8.3/configure 2020-05-17 06:42:49.445115564 +0200 -@@ -10296,7 +10296,6 @@ - - for ac_header in \ - string \ -- iomanip.h \ - - do - as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` diff --git a/id3lib-3.8.3-60-add-c-wrapper-functions.patch b/id3lib-3.8.3-60-add-c-wrapper-functions.patch deleted file mode 100644 index d72e81c..0000000 --- a/id3lib-3.8.3-60-add-c-wrapper-functions.patch +++ /dev/null @@ -1,58 +0,0 @@ -This patch adds C wrapper functions for field encoding. - -It was first introduced in version 3.8.3-8 and fixes -http://bugs.debian.org/281292 ---- a/include/id3.h -+++ b/include/id3.h -@@ -104,6 +104,9 @@ - ID3_C_EXPORT void CCONV ID3Field_GetBINARY (const ID3Field *field, uchar *buffer, size_t buffLength); - ID3_C_EXPORT void CCONV ID3Field_FromFile (ID3Field *field, const char *fileName); - ID3_C_EXPORT void CCONV ID3Field_ToFile (const ID3Field *field, const char *fileName); -+ ID3_C_EXPORT bool CCONV ID3Field_SetEncoding (ID3Field *field, ID3_TextEnc enc); -+ ID3_C_EXPORT ID3_TextEnc CCONV ID3Field_GetEncoding (const ID3Field *field); -+ ID3_C_EXPORT bool CCONV ID3Field_IsEncodable (const ID3Field *field); - - /* field-info wrappers */ - ID3_C_EXPORT char* CCONV ID3FrameInfo_ShortName (ID3_FrameID frameid); ---- a/src/c_wrapper.cpp -+++ b/src/c_wrapper.cpp -@@ -681,6 +681,39 @@ - } - } - -+ ID3_C_EXPORT bool CCONV -+ ID3Field_SetEncoding(ID3Field *field, ID3_TextEnc enc) -+ { -+ bool changed = false; -+ if (field) -+ { -+ ID3_CATCH(changed = reinterpret_cast(field)->SetEncoding(enc)); -+ } -+ return changed; -+ } -+ -+ ID3_C_EXPORT ID3_TextEnc CCONV -+ ID3Field_GetEncoding(const ID3Field *field) -+ { -+ ID3_TextEnc enc = ID3TE_NONE; -+ if (field) -+ { -+ ID3_CATCH(enc = reinterpret_cast(field)->GetEncoding()); -+ } -+ return enc; -+ } -+ -+ ID3_C_EXPORT bool CCONV -+ ID3Field_IsEncodable(const ID3Field *field) -+ { -+ bool isEncodable = false; -+ if (field) -+ { -+ ID3_CATCH(isEncodable = reinterpret_cast(field)->IsEncodable()); -+ } -+ return isEncodable; -+ } -+ - #ifdef __cplusplus - } - #endif /* __cplusplus */ diff --git a/id3lib-3.8.3-60-fix_make_check.patch b/id3lib-3.8.3-60-fix_make_check.patch deleted file mode 100644 index e2bb1b0..0000000 --- a/id3lib-3.8.3-60-fix_make_check.patch +++ /dev/null @@ -1,50 +0,0 @@ -This patch fixes some function headers and imports in order for 'make check' -to work. - -It was first introduced in version 3.8.3-9 -diff -Naur id3lib-3.8.3.orig/examples/findeng.cpp id3lib-3.8.3/examples/findeng.cpp ---- id3lib-3.8.3.orig/examples/findeng.cpp 2003-03-02 01:23:00.000000000 +0100 -+++ id3lib-3.8.3/examples/findeng.cpp 2009-12-10 00:58:12.173795997 +0100 -@@ -9,7 +9,7 @@ - using std::cout; - using std::endl; - --int main(unsigned argc, char* argv[]) -+int main(int argc, char* argv[]) - { - ID3D_INIT_DOUT(); - ID3D_INIT_WARNING(); -diff -Naur id3lib-3.8.3.orig/examples/findstr.cpp id3lib-3.8.3/examples/findstr.cpp ---- id3lib-3.8.3.orig/examples/findstr.cpp 2003-03-02 01:23:00.000000000 +0100 -+++ id3lib-3.8.3/examples/findstr.cpp 2009-12-10 00:57:48.036819825 +0100 -@@ -9,7 +9,7 @@ - using std::cout; - using std::endl; - --int main(unsigned argc, char* argv[]) -+int main(int argc, char* argv[]) - { - ID3D_INIT_DOUT(); - ID3D_INIT_WARNING(); -diff -Naur id3lib-3.8.3.orig/examples/test_io.cpp id3lib-3.8.3/examples/test_io.cpp ---- id3lib-3.8.3.orig/examples/test_io.cpp 2003-03-02 01:23:00.000000000 +0100 -+++ id3lib-3.8.3/examples/test_io.cpp 2009-12-10 00:57:03.612111640 +0100 -@@ -11,6 +11,9 @@ - #include - #include - -+using std::cin; -+using std::hex; -+using std::dec; - using std::cout; - using std::endl; - using std::cerr; -@@ -18,7 +21,7 @@ - using namespace dami; - - int --main(size_t argc, const char** argv) -+main(int argc, const char** argv) - { - ID3D_INIT_DOUT(); - ID3D_INIT_WARNING(); diff --git a/id3lib-3.8.3-60-id3lib-missing-nullpointer-check.patch b/id3lib-3.8.3-60-id3lib-missing-nullpointer-check.patch deleted file mode 100644 index d4ca5d2..0000000 --- a/id3lib-3.8.3-60-id3lib-missing-nullpointer-check.patch +++ /dev/null @@ -1,12 +0,0 @@ -This patch adds a check for a null pointer ---- a/src/header_tag.cpp -+++ b/src/header_tag.cpp -@@ -54,7 +54,7 @@ - { - size_t bytesUsed = ID3_TagHeader::SIZE; - -- if (_info->is_extended) -+ if (_info && _info->is_extended) - { - bytesUsed += _info->extended_bytes; - } diff --git a/id3lib-3.8.3-60-spelling.patch b/id3lib-3.8.3-60-spelling.patch deleted file mode 100644 index 1d9d611..0000000 --- a/id3lib-3.8.3-60-spelling.patch +++ /dev/null @@ -1,64 +0,0 @@ -This patch fixes some minor spelling mistakes -diff -Naur id3lib-3.8.3.orig//ChangeLog id3lib-3.8.3//ChangeLog ---- id3lib-3.8.3.orig//ChangeLog 2010-06-08 05:21:47.817061336 +0200 -+++ id3lib-3.8.3//ChangeLog 2010-06-08 05:21:05.320811354 +0200 -@@ -2266,7 +2266,7 @@ - * examples/demo_info.cpp (1.19): - (PrintInformation): When printing synced lyrics info, now uses a - MemoryReader, BinaryNumberReader, and TextReader to extract the -- infromation from the binary field. This is a cheat, since these -+ information from the binary field. This is a cheat, since these - classes aren't normally exposed to folks using the library. - Hopefully they will be exposed soon enough for the next major - release. -diff -Naur id3lib-3.8.3.orig//include/id3/globals.h id3lib-3.8.3//include/id3/globals.h ---- id3lib-3.8.3.orig//include/id3/globals.h 2010-06-08 05:21:47.818060988 +0200 -+++ id3lib-3.8.3//include/id3/globals.h 2010-06-08 05:22:27.395811102 +0200 -@@ -313,7 +313,7 @@ - /* USER */ ID3FID_TERMSOFUSE, /**< Terms of use */ - /* USLT */ ID3FID_UNSYNCEDLYRICS, /**< Unsynchronized lyric/text transcription */ - /* WCOM */ ID3FID_WWWCOMMERCIALINFO, /**< Commercial information */ -- /* WCOP */ ID3FID_WWWCOPYRIGHT, /**< Copyright/Legal infromation */ -+ /* WCOP */ ID3FID_WWWCOPYRIGHT, /**< Copyright/Legal information */ - /* WOAF */ ID3FID_WWWAUDIOFILE, /**< Official audio file webpage */ - /* WOAR */ ID3FID_WWWARTIST, /**< Official artist/performer webpage */ - /* WOAS */ ID3FID_WWWAUDIOSOURCE, /**< Official audio source webpage */ -@@ -608,7 +608,7 @@ - "Native American", //64 - "Cabaret", //65 - "New Wave", //66 -- "Psychadelic", //67 -+ "Psychedelic", //67 - "Rave", //68 - "Showtunes", //69 - "Trailer", //70 -@@ -686,7 +686,7 @@ - "Christian Rock ", //141 - "Merengue", //142 - "Salsa", //143 -- "Trash Metal", //144 -+ "Thrash Metal", //144 - "Anime", //145 - "JPop", //146 - "Synthpop" //147 -diff -Naur id3lib-3.8.3.orig//src/field.cpp id3lib-3.8.3//src/field.cpp ---- id3lib-3.8.3.orig//src/field.cpp 2010-06-08 05:21:47.818060988 +0200 -+++ id3lib-3.8.3//src/field.cpp 2010-06-08 05:21:05.373811128 +0200 -@@ -719,7 +719,7 @@ - // USER ID3FID_TERMSOFUSE Terms of use - // USLT ULT ID3FID_UNSYNCEDLYRICS Unsynchronized lyric/text transcription - // WCOM WCM ID3FID_WWWCOMMERCIALINFO Commercial information --// WCOP WCM ID3FID_WWWCOPYRIGHT Copyright/Legal infromation -+// WCOP WCM ID3FID_WWWCOPYRIGHT Copyright/Legal information - // WOAF WCP ID3FID_WWWAUDIOFILE Official audio file webpage - // WOAR WAF ID3FID_WWWARTIST Official artist/performer webpage - // WOAS WAR ID3FID_WWWAUDIOSOURCE Official audio source webpage -@@ -813,7 +813,7 @@ - {ID3FID_TERMSOFUSE, "" , "USER", false, false, ID3FD_TermsOfUse, "Terms of use"}, - {ID3FID_UNSYNCEDLYRICS, "ULT", "USLT", false, false, ID3FD_GeneralText, "Unsynchronized lyric/text transcription"}, - {ID3FID_WWWCOMMERCIALINFO, "WCM", "WCOM", false, false, ID3FD_URL, "Commercial information"}, -- {ID3FID_WWWCOPYRIGHT, "WCP", "WCOP", false, false, ID3FD_URL, "Copyright/Legal infromation"}, -+ {ID3FID_WWWCOPYRIGHT, "WCP", "WCOP", false, false, ID3FD_URL, "Copyright/Legal information"}, - {ID3FID_WWWAUDIOFILE, "WAF", "WOAF", false, false, ID3FD_URL, "Official audio file webpage"}, - {ID3FID_WWWARTIST, "WAR", "WOAR", false, false, ID3FD_URL, "Official artist/performer webpage"}, - {ID3FID_WWWAUDIOSOURCE, "WAS", "WOAS", false, false, ID3FD_URL, "Official audio source webpage"}, diff --git a/id3lib-3.8.3-61-fix_vbr_stack_smash.patch b/id3lib-3.8.3-61-fix_vbr_stack_smash.patch deleted file mode 100644 index 9bf33e9..0000000 --- a/id3lib-3.8.3-61-fix_vbr_stack_smash.patch +++ /dev/null @@ -1,19 +0,0 @@ -Description: Fix crashes when reading VBR MP3 file. -Bug-Ubuntu: https://launchpad.net/bugs/444466 -Origin: upstream, http://sourceforge.net/tracker/?func=detail&aid=937707&group_id=979&atid=300979 -Forwarded: yes -Author: Urs Fleisch - -Index: id3lib3.8.3-3.8.3/src/mp3_parse.cpp -=================================================================== ---- id3lib3.8.3-3.8.3.orig/src/mp3_parse.cpp 2009-10-06 23:12:10.381250132 +0200 -+++ id3lib3.8.3-3.8.3/src/mp3_parse.cpp 2009-10-06 23:14:09.545252591 +0200 -@@ -465,7 +465,7 @@ - // from http://www.xingtech.com/developer/mp3/ - - const size_t VBR_HEADER_MIN_SIZE = 8; // "xing" + flags are fixed -- const size_t VBR_HEADER_MAX_SIZE = 116; // frames, bytes, toc and scale are optional -+ const size_t VBR_HEADER_MAX_SIZE = 120; // frames, bytes, toc and scale are optional - - if (mp3size >= vbr_header_offest + VBR_HEADER_MIN_SIZE) - { diff --git a/id3lib-3.8.3-62-remove-remote-icons.patch b/id3lib-3.8.3-62-remove-remote-icons.patch deleted file mode 100644 index 6d92995..0000000 --- a/id3lib-3.8.3-62-remove-remote-icons.patch +++ /dev/null @@ -1,32 +0,0 @@ -This patch removes two icons from the documentation which would be loaded from -remote servers, thereby exposing the reader's IP address to potential tracking -(lintian keywords privacy-breach-logo and privacy-breach-w3c-valid-html). - -Author: Stefan Ott ---- a/doc/index.html -+++ b/doc/index.html -@@ -427,24 +427,5 @@ - - - -- --

-- -- -- -- -- -- --
-- -- SourceForge.net -- -- -- -- Valid HTML 4.01! --
--
- - diff --git a/mp4v2-1.0.0-0001-Fix_mp4tags_corruption.patch b/mp4v2-1.0.0-0001-Fix_mp4tags_corruption.patch deleted file mode 100644 index 182d41b..0000000 --- a/mp4v2-1.0.0-0001-Fix_mp4tags_corruption.patch +++ /dev/null @@ -1,20 +0,0 @@ -From: "Matteo F. Vescovi" -Date: Thu, 5 Nov 2015 15:26:00 +0100 -Subject: Fix_mp4tags_corruption - ---- - util/mp4tags.cpp | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/util/mp4tags.cpp b/util/mp4tags.cpp -index 1b9e866..80e89d4 100644 ---- a/util/mp4tags.cpp -+++ b/util/mp4tags.cpp -@@ -539,6 +539,7 @@ extern "C" int - else { - fprintf( stderr, "Art file %s not found\n", tags[i] ); - } -+ break; - } - case OPT_ALBUM_ARTIST: - MP4TagsSetAlbumArtist( mdata, tags[i] ); diff --git a/mp4v2-1.0.0-0002-Fix_m4_error.patch b/mp4v2-1.0.0-0002-Fix_m4_error.patch deleted file mode 100644 index c17998c..0000000 --- a/mp4v2-1.0.0-0002-Fix_m4_error.patch +++ /dev/null @@ -1,27 +0,0 @@ -From: Sebastian Ramacher -Date: Thu, 5 Nov 2015 20:53:13 +0100 -Subject: Fix_m4_error - -Fix m4 error while running autoreconf - -Origin: upstream, https://code.google.com/p/mp4v2/source/detail?r=496 -Last-Update: 2014-08-30 - -Signed-off-by: Matteo F. Vescovi ---- - configure.ac | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/configure.ac b/configure.ac -index 7c514eb..83e9dce 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -20,7 +20,7 @@ m4_define([PRJ_version_hex],m4_format([0x%04x%02x%02x],PRJ_version_major,PRJ_ver - - m4_define([PRJ_version],ifelse( - PRJ_repo_type,[stable],m4_format([%s],PRJ_repo_branch), -- m4_format([%s-r%d],PRJ_repo_branch,PRJ_repo_rev))) -+ m4_format([%s-r%s],PRJ_repo_branch,PRJ_repo_rev))) - - ############################################################################### - # initialization diff --git a/mp4v2-1.0.0-0003-Reproducible_build.patch b/mp4v2-1.0.0-0003-Reproducible_build.patch deleted file mode 100644 index ef97f6e..0000000 --- a/mp4v2-1.0.0-0003-Reproducible_build.patch +++ /dev/null @@ -1,20 +0,0 @@ -Description: Make the build reproducible -Author: Chris Lamb -Last-Update: 2016-08-12 - ---- mp4v2-2.0.0~dfsg0.orig/configure.ac -+++ mp4v2-2.0.0~dfsg0/configure.ac -@@ -137,7 +137,12 @@ PROJECT_repo_uuid="PRJ_repo_uuid" - PROJECT_repo_rev="PRJ_repo_rev" - PROJECT_repo_date="PRJ_repo_date" - PROJECT_repo_type="PRJ_repo_type" --PROJECT_build="`date`" -+ -+if test -n "$SOURCE_DATE_EPOCH"; then -+ PROJECT_build="`LC_ALL=C date --utc --date="@$SOURCE_DATE_EPOCH"`" -+else -+ PROJECT_build="`date`" -+fi - - test -z "$PROJECT_version_hex" && PROJECT_version_hex="0x0000000000000000LL" - test -z "$PROJECT_version_major" && PROJECT_version_major="0" diff --git a/mp4v2-1.0.0-0004-Pointer_comparison.patch b/mp4v2-1.0.0-0004-Pointer_comparison.patch deleted file mode 100644 index 6dc5919..0000000 --- a/mp4v2-1.0.0-0004-Pointer_comparison.patch +++ /dev/null @@ -1,16 +0,0 @@ -Description: Fix pointer comparison (FTBFS on GCC 7) -Author: Philip Chung -Bug-Debian: https://bugs.debian.org/853560 -Last-Update: 2017-09-04 - ---- mp4v2-2.0.0~dfsg0.orig/src/rtphint.cpp -+++ mp4v2-2.0.0~dfsg0/src/rtphint.cpp -@@ -339,7 +339,7 @@ void MP4RtpHintTrack::GetPayload( - pSlash = strchr(pSlash, '/'); - if (pSlash != NULL) { - pSlash++; -- if (pSlash != '\0') { -+ if (*pSlash != '\0') { - length = (uint32_t)strlen(pRtpMap) - (pSlash - pRtpMap); - *ppEncodingParams = (char *)MP4Calloc(length + 1); - strncpy(*ppEncodingParams, pSlash, length); diff --git a/org.kde.kid3-nightly.remoteapp b/org.kde.kid3-nightly.remoteapp new file mode 100644 index 0000000..324c36f --- /dev/null +++ b/org.kde.kid3-nightly.remoteapp @@ -0,0 +1,3 @@ +ID=org.kde.kid3 +JSON=packaging/flatpak/org.kde.kid3-nightly.json +GITURL=https://invent.kde.org/multimedia/kid3.git diff --git a/org.kde.kid3.json b/org.kde.kid3.json deleted file mode 100755 index 93bb2ed..0000000 --- a/org.kde.kid3.json +++ /dev/null @@ -1,137 +0,0 @@ -{ - "id": "org.kde.kid3", - "branch": "master", - "runtime": "org.kde.Platform", - "runtime-version": "5.14", - "sdk": "org.kde.Sdk", - "command": "kid3", - "rename-icon": "kid3", - "tags": ["nightly"], - "desktop-file-name-suffix": " (Nightly)", - - "finish-args": [ - "--socket=wayland", - "--socket=fallback-x11", - "--socket=pulseaudio", - "--share=ipc", - "--device=dri", - "--share=network", - "--filesystem=xdg-download", - "--filesystem=xdg-music", - "--env=TMPDIR=/var/tmp", - "--own-name=org.mpris.MediaPlayer2.kid3" - ], - - "cleanup": [ - "/man", - "/share/man", - "/include", - "/lib/*.a", - "/lib/*.la", - "/share/**/*-qt.*", - "/share/icons/**/**/**/*-qt.*" - ], - - "modules": [ - { - "name": "chromaprint", - "buildsystem": "cmake-ninja", - "config-opts": [ - "-DCMAKE_BUILD_TYPE=RelWithDebInfo" - ], - "sources": [ - { - "type": "archive", - "url": "https://github.com/acoustid/chromaprint/archive/v1.5.0.tar.gz", - "sha256": "5c8e0d579cb3478900699110aa961c1552a422a18741cf67dd62136b1b877c7b" - } - ] - }, - { - "name": "taglib", - "buildsystem": "cmake-ninja", - "config-opts": [ - "-DCMAKE_BUILD_TYPE=RelWithDebInfo", - "-DBUILD_SHARED_LIBS=ON", - "-DWITH_MP4=ON", - "-DWITH_ASF=ON" - ], - "sources": [ - { - "type": "archive", - "url": "https://taglib.org/releases/taglib-1.11.1.tar.gz", - "sha256": "b6d1a5a610aae6ff39d93de5efd0fdc787aa9e9dc1e7026fa4c961b26563526b" - }, - { "type": "patch", "path": "taglib-1.11.1-mp4shwm.patch" }, - { "type": "patch", "path": "taglib-1.11.1-CVE-2017-12678.patch" }, - { "type": "patch", "path": "taglib-1.11.1-cmID-purl-egid.patch.patch" }, - { "type": "patch", "path": "taglib-1.11.1-CVE-2018-11439.patch" }, - { "type": "patch", "path": "taglib-1.11.1-ogg-packet-loss.patch" }, - { "type": "patch", "path": "taglib-1.11.1-aiff-padding.patch" }, - { "type": "patch", "path": "taglib-1.11.1-grp1.patch" }, - { "type": "patch", "path": "taglib-1.11.1-oggbitrate.patch" } - ] - }, - { - "name": "id3lib", - "buildsystem": "autotools", - "config-opts": [ "--enable-debug=minimum" ], - "cleanup": [ "/bin" ], - "sources": [ - { - "type": "archive", - "url": "http://downloads.sourceforge.net/id3lib/id3lib-3.8.3.tar.gz", - "sha256": "2749cc3c0cd7280b299518b1ddf5a5bcfe2d1100614519b68702230e26c7d079" - }, - { "type": "patch", "path": "id3lib-3.8.3-00-add-libz-to-compilation.patch" }, - { "type": "patch", "path": "id3lib-3.8.3-05-create-m4-directory.patch" }, - { "type": "patch", "path": "id3lib-3.8.3-10-fix-compilation-with-cpp-headers.patch" }, - { "type": "patch", "path": "id3lib-3.8.3-15-fix-headers-of-main-functions.patch" }, - { "type": "patch", "path": "id3lib-3.8.3-30-fix-utf16.patch" }, - { "type": "patch", "path": "id3lib-3.8.3-31-fix-utf16-stringlists.patch" }, - { "type": "patch", "path": "id3lib-3.8.3-40-deal-with-mkstemp.patch" }, - { "type": "patch", "path": "id3lib-3.8.3-50-remove-outdated-check.patch" }, - { "type": "patch", "path": "id3lib-3.8.3-50-remove-outdated-check2.patch" }, - { "type": "patch", "path": "id3lib-3.8.3-60-add-c-wrapper-functions.patch" }, - { "type": "patch", "path": "id3lib-3.8.3-60-fix_make_check.patch" }, - { "type": "patch", "path": "id3lib-3.8.3-60-id3lib-missing-nullpointer-check.patch" }, - { "type": "patch", "path": "id3lib-3.8.3-60-spelling.patch" }, - { "type": "patch", "path": "id3lib-3.8.3-61-fix_vbr_stack_smash.patch" }, - { "type": "patch", "path": "id3lib-3.8.3-62-remove-remote-icons.patch" } - ] - }, - { - "name": "mp4v2", - "buildsystem": "autotools", - "config-opts": [], - "cleanup": [ "/bin" ], - "sources": [ - { - "type": "archive", - "url": "https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/mp4v2/mp4v2-2.0.0.tar.bz2", - "sha256": "0319b9a60b667cf10ee0ec7505eb7bdc0a2e21ca7a93db96ec5bd758e3428338" - }, - { "type": "patch", "path": "mp4v2-1.0.0-0001-Fix_mp4tags_corruption.patch" }, - { "type": "patch", "path": "mp4v2-1.0.0-0002-Fix_m4_error.patch" }, - { "type": "patch", "path": "mp4v2-1.0.0-0003-Reproducible_build.patch" }, - { "type": "patch", "path": "mp4v2-1.0.0-0004-Pointer_comparison.patch" } - ] - }, - { - "name": "kid3", - "buildsystem": "cmake-ninja", - "config-opts": [ - "-DCMAKE_BUILD_TYPE=RelWithDebInfo", - "-DWITH_APPS=KDE;Qt;CLI", - "-DWITH_MP4V2=ON", - "-DDOCBOOK_XSL_DIR=/usr/share/xml/docbook/xml/xsl-stylesheets" - ], - "sources": [ - { - "type": "git", - "url": "https://invent.kde.org/kde/kid3.git" - } - ] - } - ] -} diff --git a/taglib-1.11.1-CVE-2017-12678.patch b/taglib-1.11.1-CVE-2017-12678.patch deleted file mode 100644 index 6291ff0..0000000 --- a/taglib-1.11.1-CVE-2017-12678.patch +++ /dev/null @@ -1,18 +0,0 @@ -Index: b/taglib/mpeg/id3v2/id3v2framefactory.cpp -=================================================================== ---- a/taglib/mpeg/id3v2/id3v2framefactory.cpp -+++ b/taglib/mpeg/id3v2/id3v2framefactory.cpp -@@ -334,10 +334,11 @@ void FrameFactory::rebuildAggregateFrame - tag->frameList("TDAT").size() == 1) - { - TextIdentificationFrame *tdrc = -- static_cast(tag->frameList("TDRC").front()); -+ dynamic_cast(tag->frameList("TDRC").front()); - UnknownFrame *tdat = static_cast(tag->frameList("TDAT").front()); - -- if(tdrc->fieldList().size() == 1 && -+ if(tdrc && -+ tdrc->fieldList().size() == 1 && - tdrc->fieldList().front().size() == 4 && - tdat->data().size() >= 5) - { diff --git a/taglib-1.11.1-CVE-2018-11439.patch b/taglib-1.11.1-CVE-2018-11439.patch deleted file mode 100644 index 71ad717..0000000 --- a/taglib-1.11.1-CVE-2018-11439.patch +++ /dev/null @@ -1,38 +0,0 @@ -From 2c4ae870ec086f2ddd21a47861a3709c36faac45 Mon Sep 17 00:00:00 2001 -From: Scott Gayou -Date: Tue, 9 Oct 2018 18:46:55 -0500 -Subject: Fixed OOB read when loading invalid ogg flac file. (#868) (#869) - -CVE-2018-11439 is caused by a failure to check the minimum length -of a ogg flac header. This header is detailed in full at: -https://xiph.org/flac/ogg_mapping.html. Added more strict checking -for entire header. - -diff --git a/taglib/ogg/flac/oggflacfile.cpp b/taglib/ogg/flac/oggflacfile.cpp -index 53d04508..07ea9dcc 100644 ---- a/taglib/ogg/flac/oggflacfile.cpp -+++ b/taglib/ogg/flac/oggflacfile.cpp -@@ -231,11 +231,21 @@ void Ogg::FLAC::File::scan() - - if(!metadataHeader.startsWith("fLaC")) { - // FLAC 1.1.2+ -+ // See https://xiph.org/flac/ogg_mapping.html for the header specification. -+ if(metadataHeader.size() < 13) -+ return; -+ -+ if(metadataHeader[0] != 0x7f) -+ return; -+ - if(metadataHeader.mid(1, 4) != "FLAC") - return; - -- if(metadataHeader[5] != 1) -- return; // not version 1 -+ if(metadataHeader[5] != 1 && metadataHeader[6] != 0) -+ return; // not version 1.0 -+ -+ if(metadataHeader.mid(9, 4) != "fLaC") -+ return; - - metadataHeader = metadataHeader.mid(13); - } diff --git a/taglib-1.11.1-aiff-padding.patch b/taglib-1.11.1-aiff-padding.patch deleted file mode 100644 index 6eb7e8c..0000000 --- a/taglib-1.11.1-aiff-padding.patch +++ /dev/null @@ -1,26 +0,0 @@ ---- a/taglib/riff/rifffile.cpp -+++ b/taglib/riff/rifffile.cpp -@@ -325,9 +325,20 @@ void RIFF::File::read() - if(offset & 1) { - seek(offset); - const ByteVector iByte = readBlock(1); -- if(iByte.size() == 1 && iByte[0] == '\0') { -- chunk.padding = 1; -- offset++; -+ if(iByte.size() == 1) { -+ bool skipPadding = iByte[0] == '\0'; -+ if(!skipPadding) { -+ // Padding byte is not zero, check if it is good to ignore it -+ const ByteVector fourCcAfterPadding = readBlock(4); -+ if(isValidChunkName(fourCcAfterPadding)) { -+ // Use the padding, it is followed by a valid chunk name. -+ skipPadding = true; -+ } -+ } -+ if(skipPadding) { -+ chunk.padding = 1; -+ offset++; -+ } - } - } - diff --git a/taglib-1.11.1-cmID-purl-egid.patch.patch b/taglib-1.11.1-cmID-purl-egid.patch.patch deleted file mode 100644 index 004f97f..0000000 --- a/taglib-1.11.1-cmID-purl-egid.patch.patch +++ /dev/null @@ -1,43 +0,0 @@ -index 11d3cc51..a3636a9d 100644 ---- a/taglib/mp4/mp4tag.cpp -+++ b/taglib/mp4/mp4tag.cpp -@@ -78,7 +78,8 @@ MP4::Tag::Tag(TagLib::File *file, MP4::Atoms *atoms) : - parseInt(atom); - } - else if(atom->name == "tvsn" || atom->name == "tves" || atom->name == "cnID" || -- atom->name == "sfID" || atom->name == "atID" || atom->name == "geID") { -+ atom->name == "sfID" || atom->name == "atID" || atom->name == "geID" || -+ atom->name == "cmID") { - parseUInt(atom); - } - else if(atom->name == "plID") { -@@ -93,6 +94,9 @@ MP4::Tag::Tag(TagLib::File *file, MP4::Atoms *atoms) : - else if(atom->name == "covr") { - parseCovr(atom); - } -+ else if(atom->name == "purl" || atom->name == "egid") { -+ parseText(atom, -1); -+ } - else { - parseText(atom); - } -@@ -480,7 +484,8 @@ MP4::Tag::save() - data.append(renderInt(name.data(String::Latin1), it->second)); - } - else if(name == "tvsn" || name == "tves" || name == "cnID" || -- name == "sfID" || name == "atID" || name == "geID") { -+ name == "sfID" || name == "atID" || name == "geID" || -+ name == "cmID") { - data.append(renderUInt(name.data(String::Latin1), it->second)); - } - else if(name == "plID") { -@@ -492,6 +497,9 @@ MP4::Tag::save() - else if(name == "covr") { - data.append(renderCovr(name.data(String::Latin1), it->second)); - } -+ else if(name == "purl" || name == "egid") { -+ data.append(renderText(name.data(String::Latin1), it->second, TypeImplicit)); -+ } - else if(name.size() == 4){ - data.append(renderText(name.data(String::Latin1), it->second)); - } diff --git a/taglib-1.11.1-grp1.patch b/taglib-1.11.1-grp1.patch deleted file mode 100644 index 5178e13..0000000 --- a/taglib-1.11.1-grp1.patch +++ /dev/null @@ -1,56 +0,0 @@ -diff --git a/taglib/mpeg/id3v2/id3v2frame.cpp b/taglib/mpeg/id3v2/id3v2frame.cpp -index 4f88dec1..af4136af 100644 ---- a/taglib/mpeg/id3v2/id3v2frame.cpp -+++ b/taglib/mpeg/id3v2/id3v2frame.cpp -@@ -111,8 +111,8 @@ Frame *Frame::createTextualFrame(const String &key, const StringList &values) // - // check if the key is contained in the key<=>frameID mapping - ByteVector frameID = keyToFrameID(key); - if(!frameID.isEmpty()) { -- // Apple proprietary WFED (Podcast URL), MVNM (Movement Name), MVIN (Movement Number) are in fact text frames. -- if(frameID[0] == 'T' || frameID == "WFED" || frameID == "MVNM" || frameID == "MVIN"){ // text frame -+ // Apple proprietary WFED (Podcast URL), MVNM (Movement Name), MVIN (Movement Number), GRP1 (Grouping) are in fact text frames. -+ if(frameID[0] == 'T' || frameID == "WFED" || frameID == "MVNM" || frameID == "MVIN" || frameID == "GRP1"){ // text frame - TextIdentificationFrame *frame = new TextIdentificationFrame(frameID, String::UTF8); - frame->setText(values); - return frame; -@@ -394,6 +394,7 @@ namespace - { "WFED", "PODCASTURL" }, - { "MVNM", "MOVEMENTNAME" }, - { "MVIN", "MOVEMENTNUMBER" }, -+ { "GRP1", "GROUPING" }, - }; - const size_t frameTranslationSize = sizeof(frameTranslation) / sizeof(frameTranslation[0]); - -@@ -476,8 +477,8 @@ PropertyMap Frame::asProperties() const - // workaround until this function is virtual - if(id == "TXXX") - return dynamic_cast< const UserTextIdentificationFrame* >(this)->asProperties(); -- // Apple proprietary WFED (Podcast URL), MVNM (Movement Name), MVIN (Movement Number) are in fact text frames. -- else if(id[0] == 'T' || id == "WFED" || id == "MVNM" || id == "MVIN") -+ // Apple proprietary WFED (Podcast URL), MVNM (Movement Name), MVIN (Movement Number), GRP1 (Grouping) are in fact text frames. -+ else if(id[0] == 'T' || id == "WFED" || id == "MVNM" || id == "MVIN" || id == "GRP1") - return dynamic_cast< const TextIdentificationFrame* >(this)->asProperties(); - else if(id == "WXXX") - return dynamic_cast< const UserUrlLinkFrame* >(this)->asProperties(); -diff --git a/taglib/mpeg/id3v2/id3v2framefactory.cpp b/taglib/mpeg/id3v2/id3v2framefactory.cpp -index 9347ab86..155d0a9d 100644 ---- a/taglib/mpeg/id3v2/id3v2framefactory.cpp -+++ b/taglib/mpeg/id3v2/id3v2framefactory.cpp -@@ -198,8 +198,8 @@ Frame *FrameFactory::createFrame(const ByteVector &origData, Header *tagHeader) - - // Text Identification (frames 4.2) - -- // Apple proprietary WFED (Podcast URL), MVNM (Movement Name), MVIN (Movement Number) are in fact text frames. -- if(frameID.startsWith("T") || frameID == "WFED" || frameID == "MVNM" || frameID == "MVIN") { -+ // Apple proprietary WFED (Podcast URL), MVNM (Movement Name), MVIN (Movement Number), GRP1 (Grouping) are in fact text frames. -+ if(frameID.startsWith("T") || frameID == "WFED" || frameID == "MVNM" || frameID == "MVIN" || frameID == "GRP1") { - - TextIdentificationFrame *f = frameID != "TXXX" - ? new TextIdentificationFrame(data, header) -@@ -459,6 +459,7 @@ namespace - { "WFD", "WFED" }, - { "MVN", "MVNM" }, - { "MVI", "MVIN" }, -+ { "GP1", "GRP1" }, - }; - const size_t frameConversion2Size = sizeof(frameConversion2) / sizeof(frameConversion2[0]); diff --git a/taglib-1.11.1-mp4shwm.patch b/taglib-1.11.1-mp4shwm.patch deleted file mode 100644 index 34ba3c9..0000000 --- a/taglib-1.11.1-mp4shwm.patch +++ /dev/null @@ -1,142 +0,0 @@ -diff --git a/taglib/mp4/mp4tag.cpp b/taglib/mp4/mp4tag.cpp -index a8e2e7d..0c2e5cb 100644 ---- a/taglib/mp4/mp4tag.cpp -+++ b/taglib/mp4/mp4tag.cpp -@@ -71,10 +71,10 @@ MP4::Tag::Tag(TagLib::File *file, MP4::Atoms *atoms) : - parseIntPair(atom); - } - else if(atom->name == "cpil" || atom->name == "pgap" || atom->name == "pcst" || -- atom->name == "hdvd") { -+ atom->name == "hdvd" || atom->name == "shwm") { - parseBool(atom); - } -- else if(atom->name == "tmpo") { -+ else if(atom->name == "tmpo" || atom->name == "\251mvi" || atom->name == "\251mvc") { - parseInt(atom); - } - else if(atom->name == "tvsn" || atom->name == "tves" || atom->name == "cnID" || -@@ -472,10 +472,11 @@ MP4::Tag::save() - else if(name == "disk") { - data.append(renderIntPairNoTrailing(name.data(String::Latin1), it->second)); - } -- else if(name == "cpil" || name == "pgap" || name == "pcst" || name == "hdvd") { -+ else if(name == "cpil" || name == "pgap" || name == "pcst" || name == "hdvd" || -+ name == "shwm") { - data.append(renderBool(name.data(String::Latin1), it->second)); - } -- else if(name == "tmpo") { -+ else if(name == "tmpo" || name == "\251mvi" || name == "\251mvc") { - data.append(renderInt(name.data(String::Latin1), it->second)); - } - else if(name == "tvsn" || name == "tves" || name == "cnID" || -@@ -844,6 +845,11 @@ namespace - { "sonm", "TITLESORT" }, - { "soco", "COMPOSERSORT" }, - { "sosn", "SHOWSORT" }, -+ { "shwm", "SHOWWORKMOVEMENT" }, -+ { "\251wrk", "WORK" }, -+ { "\251mvn", "MOVEMENTNAME" }, -+ { "\251mvi", "MOVEMENTNUMBER" }, -+ { "\251mvc", "MOVEMENTCOUNT" }, - { "----:com.apple.iTunes:MusicBrainz Track Id", "MUSICBRAINZ_TRACKID" }, - { "----:com.apple.iTunes:MusicBrainz Artist Id", "MUSICBRAINZ_ARTISTID" }, - { "----:com.apple.iTunes:MusicBrainz Album Id", "MUSICBRAINZ_ALBUMID" }, -@@ -897,10 +903,10 @@ PropertyMap MP4::Tag::properties() const - } - props[key] = value; - } -- else if(key == "BPM") { -+ else if(key == "BPM" || key == "MOVEMENTNUMBER" || key == "MOVEMENTCOUNT") { - props[key] = String::number(it->second.toInt()); - } -- else if(key == "COMPILATION") { -+ else if(key == "COMPILATION" || key == "SHOWWORKMOVEMENT") { - props[key] = String::number(it->second.toBool()); - } - else { -@@ -952,11 +958,11 @@ PropertyMap MP4::Tag::setProperties(const PropertyMap &props) - d->items[name] = MP4::Item(first, second); - } - } -- else if(it->first == "BPM" && !it->second.isEmpty()) { -+ else if((it->first == "BPM" || it->first == "MOVEMENTNUMBER" || it->first == "MOVEMENTCOUNT") && !it->second.isEmpty()) { - int value = it->second.front().toInt(); - d->items[name] = MP4::Item(value); - } -- else if(it->first == "COMPILATION" && !it->second.isEmpty()) { -+ else if((it->first == "COMPILATION" || it->first == "SHOWWORKMOVEMENT") && !it->second.isEmpty()) { - bool value = (it->second.front().toInt() != 0); - d->items[name] = MP4::Item(value); - } -diff --git a/taglib/mp4/mp4tag.h b/taglib/mp4/mp4tag.h -index d477a86..bca3021 100644 ---- a/taglib/mp4/mp4tag.h -+++ b/taglib/mp4/mp4tag.h -@@ -35,6 +35,8 @@ - #include "mp4atom.h" - #include "mp4item.h" - -+#define TAGLIB_WITH_MP4_SHWM 1 -+ - namespace TagLib { - - namespace MP4 { -diff --git a/taglib/mpeg/id3v2/id3v2frame.cpp b/taglib/mpeg/id3v2/id3v2frame.cpp -index 1f896fa..ec3b931 100644 ---- a/taglib/mpeg/id3v2/id3v2frame.cpp -+++ b/taglib/mpeg/id3v2/id3v2frame.cpp -@@ -111,8 +111,8 @@ Frame *Frame::createTextualFrame(const String &key, const StringList &values) // - // check if the key is contained in the key<=>frameID mapping - ByteVector frameID = keyToFrameID(key); - if(!frameID.isEmpty()) { -- // Apple proprietary WFED (Podcast URL) is in fact a text frame. -- if(frameID[0] == 'T' || frameID == "WFED"){ // text frame -+ // Apple proprietary WFED (Podcast URL), MVNM (Movement Name), MVIN (Movement Number) are in fact text frames. -+ if(frameID[0] == 'T' || frameID == "WFED" || frameID == "MVNM" || frameID == "MVIN"){ // text frame - TextIdentificationFrame *frame = new TextIdentificationFrame(frameID, String::UTF8); - frame->setText(values); - return frame; -@@ -392,6 +392,8 @@ namespace - { "TDES", "PODCASTDESC" }, - { "TGID", "PODCASTID" }, - { "WFED", "PODCASTURL" }, -+ { "MVNM", "MOVEMENTNAME" }, -+ { "MVIN", "MOVEMENTNUMBER" }, - }; - const size_t frameTranslationSize = sizeof(frameTranslation) / sizeof(frameTranslation[0]); - -@@ -474,8 +476,8 @@ PropertyMap Frame::asProperties() const - // workaround until this function is virtual - if(id == "TXXX") - return dynamic_cast< const UserTextIdentificationFrame* >(this)->asProperties(); -- // Apple proprietary WFED (Podcast URL) is in fact a text frame. -- else if(id[0] == 'T' || id == "WFED") -+ // Apple proprietary WFED (Podcast URL), MVNM (Movement Name), MVIN (Movement Number) are in fact text frames. -+ else if(id[0] == 'T' || id == "WFED" || id == "MVNM" || id == "MVIN") - return dynamic_cast< const TextIdentificationFrame* >(this)->asProperties(); - else if(id == "WXXX") - return dynamic_cast< const UserUrlLinkFrame* >(this)->asProperties(); -diff --git a/taglib/mpeg/id3v2/id3v2framefactory.cpp b/taglib/mpeg/id3v2/id3v2framefactory.cpp -index 0fbb87d..759a9b7 100644 ---- a/taglib/mpeg/id3v2/id3v2framefactory.cpp -+++ b/taglib/mpeg/id3v2/id3v2framefactory.cpp -@@ -198,8 +198,8 @@ Frame *FrameFactory::createFrame(const ByteVector &origData, Header *tagHeader) - - // Text Identification (frames 4.2) - -- // Apple proprietary WFED (Podcast URL) is in fact a text frame. -- if(frameID.startsWith("T") || frameID == "WFED") { -+ // Apple proprietary WFED (Podcast URL), MVNM (Movement Name), MVIN (Movement Number) are in fact text frames. -+ if(frameID.startsWith("T") || frameID == "WFED" || frameID == "MVNM" || frameID == "MVIN") { - - TextIdentificationFrame *f = frameID != "TXXX" - ? new TextIdentificationFrame(data, header) -@@ -456,6 +456,8 @@ namespace - { "TDS", "TDES" }, - { "TID", "TGID" }, - { "WFD", "WFED" }, -+ { "MVN", "MVNM" }, -+ { "MVI", "MVIN" }, - }; - const size_t frameConversion2Size = sizeof(frameConversion2) / sizeof(frameConversion2[0]); - diff --git a/taglib-1.11.1-ogg-packet-loss.patch b/taglib-1.11.1-ogg-packet-loss.patch deleted file mode 100644 index b5679d5..0000000 --- a/taglib-1.11.1-ogg-packet-loss.patch +++ /dev/null @@ -1,19 +0,0 @@ -From 9336c82da3a04552168f208cd7a5fa4646701ea4 Mon Sep 17 00:00:00 2001 -From: Tsuda Kageyu -Date: Thu, 1 Dec 2016 11:32:01 +0900 -Subject: Fix possible Ogg packet losses. - - -diff --git a/taglib/ogg/oggfile.cpp b/taglib/ogg/oggfile.cpp -index 86b0b076..c36e4d46 100644 ---- a/taglib/ogg/oggfile.cpp -+++ b/taglib/ogg/oggfile.cpp -@@ -253,7 +253,7 @@ void Ogg::File::writePacket(unsigned int i, const ByteVector &packet) - ByteVectorList packets = firstPage->packets(); - packets[i - firstPage->firstPacketIndex()] = packet; - -- if(firstPage != lastPage && lastPage->packetCount() > 2) { -+ if(firstPage != lastPage && lastPage->packetCount() > 1) { - ByteVectorList lastPagePackets = lastPage->packets(); - lastPagePackets.erase(lastPagePackets.begin()); - packets.append(lastPagePackets); diff --git a/taglib-1.11.1-oggbitrate.patch b/taglib-1.11.1-oggbitrate.patch deleted file mode 100644 index e0fe63b..0000000 --- a/taglib-1.11.1-oggbitrate.patch +++ /dev/null @@ -1,87 +0,0 @@ -diff --git a/taglib/ogg/opus/opusproperties.cpp b/taglib/ogg/opus/opusproperties.cpp -index 537ba166..b60cc01d 100644 ---- a/taglib/ogg/opus/opusproperties.cpp -+++ b/taglib/ogg/opus/opusproperties.cpp -@@ -163,8 +163,14 @@ void Opus::Properties::read(File *file) - - if(frameCount > 0) { - const double length = frameCount * 1000.0 / 48000.0; -+ long fileLengthWithoutOverhead = file->length(); -+ // Ignore the two mandatory header packets, see "3. Packet Organization" -+ // in https://tools.ietf.org/html/rfc7845.html -+ for (unsigned int i = 0; i < 2; ++i) { -+ fileLengthWithoutOverhead -= file->packet(i).size(); -+ } - d->length = static_cast(length + 0.5); -- d->bitrate = static_cast(file->length() * 8.0 / length + 0.5); -+ d->bitrate = static_cast(fileLengthWithoutOverhead * 8.0 / length + 0.5); - } - } - else { -diff --git a/taglib/ogg/speex/speexproperties.cpp b/taglib/ogg/speex/speexproperties.cpp -index fbcc5a4b..b7a11cc6 100644 ---- a/taglib/ogg/speex/speexproperties.cpp -+++ b/taglib/ogg/speex/speexproperties.cpp -@@ -182,8 +182,14 @@ void Speex::Properties::read(File *file) - - if(frameCount > 0) { - const double length = frameCount * 1000.0 / d->sampleRate; -+ long fileLengthWithoutOverhead = file->length(); -+ // Ignore the two header packets, see "Ogg file format" in -+ // https://www.speex.org/docs/manual/speex-manual/node8.html -+ for (unsigned int i = 0; i < 2; ++i) { -+ fileLengthWithoutOverhead -= file->packet(i).size(); -+ } - d->length = static_cast(length + 0.5); -- d->bitrate = static_cast(file->length() * 8.0 / length + 0.5); -+ d->bitrate = static_cast(fileLengthWithoutOverhead * 8.0 / length + 0.5); - } - } - else { -diff --git a/taglib/ogg/vorbis/vorbisproperties.cpp b/taglib/ogg/vorbis/vorbisproperties.cpp -index 981400f0..4000c254 100644 ---- a/taglib/ogg/vorbis/vorbisproperties.cpp -+++ b/taglib/ogg/vorbis/vorbisproperties.cpp -@@ -186,9 +186,14 @@ void Vorbis::Properties::read(File *file) - - if(frameCount > 0) { - const double length = frameCount * 1000.0 / d->sampleRate; -- -+ long fileLengthWithoutOverhead = file->length(); -+ // Ignore the three initial header packets, see "1.3.1. Decode Setup" in -+ // https://xiph.org/vorbis/doc/Vorbis_I_spec.html -+ for (unsigned int i = 0; i < 3; ++i) { -+ fileLengthWithoutOverhead -= file->packet(i).size(); -+ } - d->length = static_cast(length + 0.5); -- d->bitrate = static_cast(file->length() * 8.0 / length + 0.5); -+ d->bitrate = static_cast(fileLengthWithoutOverhead * 8.0 / length + 0.5); - } - } - else { -diff --git a/tests/test_ogg.cpp b/tests/test_ogg.cpp -index 5569e59c..ebb865fd 100644 ---- a/tests/test_ogg.cpp -+++ b/tests/test_ogg.cpp -@@ -191,7 +191,7 @@ public: - CPPUNIT_ASSERT_EQUAL(3, f.audioProperties()->length()); - CPPUNIT_ASSERT_EQUAL(3, f.audioProperties()->lengthInSeconds()); - CPPUNIT_ASSERT_EQUAL(3685, f.audioProperties()->lengthInMilliseconds()); -- CPPUNIT_ASSERT_EQUAL(9, f.audioProperties()->bitrate()); -+ CPPUNIT_ASSERT_EQUAL(1, f.audioProperties()->bitrate()); - CPPUNIT_ASSERT_EQUAL(2, f.audioProperties()->channels()); - CPPUNIT_ASSERT_EQUAL(44100, f.audioProperties()->sampleRate()); - CPPUNIT_ASSERT_EQUAL(0, f.audioProperties()->vorbisVersion()); -diff --git a/tests/test_opus.cpp b/tests/test_opus.cpp -index 9d14df23..cdf77eae 100644 ---- a/tests/test_opus.cpp -+++ b/tests/test_opus.cpp -@@ -53,7 +53,7 @@ public: - CPPUNIT_ASSERT_EQUAL(7, f.audioProperties()->length()); - CPPUNIT_ASSERT_EQUAL(7, f.audioProperties()->lengthInSeconds()); - CPPUNIT_ASSERT_EQUAL(7737, f.audioProperties()->lengthInMilliseconds()); -- CPPUNIT_ASSERT_EQUAL(37, f.audioProperties()->bitrate()); -+ CPPUNIT_ASSERT_EQUAL(36, f.audioProperties()->bitrate()); - CPPUNIT_ASSERT_EQUAL(1, f.audioProperties()->channels()); - CPPUNIT_ASSERT_EQUAL(48000, f.audioProperties()->sampleRate()); - CPPUNIT_ASSERT_EQUAL(48000, f.audioProperties()->inputSampleRate());