Hugo Beauzée-Luyssen pushed to branch master at VideoLAN / VLC
Commits: c651b10d by Hugo Beauzée-Luyssen at 2021-11-23T16:29:13+00:00 contrib: Bump taglib to 1.12 fix #26309 - - - - - 7 changed files: - contrib/src/taglib/0001-Implement-ID3v2-readStyle-avoid-worst-case.patch - − contrib/src/taglib/0001-use-SetFilePointerEx-instead-of-SetFilePointer.patch - − contrib/src/taglib/0002-use-GetFileInformationByHandleEx-on-newer-builds-of-.patch - − contrib/src/taglib/0003-don-t-use-CreateFile-in-UWP-builds.patch - contrib/src/taglib/SHA512SUMS - contrib/src/taglib/rules.mak - − contrib/src/taglib/use_resolvers_on_streams.patch Changes: ===================================== contrib/src/taglib/0001-Implement-ID3v2-readStyle-avoid-worst-case.patch ===================================== @@ -1,4 +1,4 @@ -From 94b8f426233e87c0b3783b743ad5e3ed458147b1 Mon Sep 17 00:00:00 2001 +From be17e6084a151c901c3946ec7b37afabc3b84f5f Mon Sep 17 00:00:00 2001 From: Francois Cartegnie <[email protected]> Date: Tue, 11 Aug 2020 10:53:31 +0200 Subject: [PATCH] Implement ID3v2 readStyle, avoid worst case @@ -10,10 +10,10 @@ Subject: [PATCH] Implement ID3v2 readStyle, avoid worst case 3 files changed, 24 insertions(+), 14 deletions(-) diff --git a/taglib/mpeg/mpegfile.cpp b/taglib/mpeg/mpegfile.cpp -index af7253fa..59443027 100644 +index 5f14e49d..30124e0d 100644 --- a/taglib/mpeg/mpegfile.cpp +++ b/taglib/mpeg/mpegfile.cpp -@@ -80,30 +80,31 @@ public: +@@ -132,30 +132,31 @@ bool MPEG::File::isSupported(IOStream *stream) // public members //////////////////////////////////////////////////////////////////////////////// @@ -51,7 +51,7 @@ index af7253fa..59443027 100644 } MPEG::File::~File() -@@ -441,11 +442,11 @@ bool MPEG::File::hasAPETag() const +@@ -498,11 +499,11 @@ bool MPEG::File::hasAPETag() const // private members //////////////////////////////////////////////////////////////////////////////// @@ -65,7 +65,7 @@ index af7253fa..59443027 100644 if(d->ID3v2Location >= 0) { d->tag.set(ID3v2Index, new ID3v2::Tag(this, d->ID3v2Location, d->ID3v2FrameFactory)); -@@ -478,7 +479,7 @@ void MPEG::File::read(bool readProperties) +@@ -535,7 +536,7 @@ void MPEG::File::read(bool readProperties) ID3v1Tag(true); } @@ -74,21 +74,21 @@ index af7253fa..59443027 100644 { if(!isValid()) return -1; -@@ -499,6 +500,9 @@ long MPEG::File::findID3v2() - if(firstSyncByte(data[0]) && secondSynchByte(data[1])) - return -1; +@@ -558,6 +559,9 @@ long MPEG::File::findID3v2() + ByteVector tagHeaderBytes(3, '\0'); + long position = 0; -+ if(readStyle < Properties::ReadStyle::Accurate) ++ if(readStyle < Properties::Accurate) + return -1; + - // Look for the entire file, if neither an MEPG frame or ID3v2 tag was found - // at the beginning of the file. - // We don't care about the inefficiency of the code, since this is a seldom case. + while(true) { + seek(position); + const ByteVector buffer = readBlock(bufferSize()); diff --git a/taglib/mpeg/mpegfile.h b/taglib/mpeg/mpegfile.h -index e9e97387..fb04c625 100644 +index 3fcb7272..22a282d9 100644 --- a/taglib/mpeg/mpegfile.h +++ b/taglib/mpeg/mpegfile.h -@@ -74,7 +74,8 @@ namespace TagLib { +@@ -76,7 +76,8 @@ namespace TagLib { * Constructs an MPEG file from \a file. If \a readProperties is true the * file's audio properties will also be read. * @@ -98,7 +98,7 @@ index e9e97387..fb04c625 100644 * * \deprecated This constructor will be dropped in favor of the one below * in a future version. -@@ -89,7 +90,8 @@ namespace TagLib { +@@ -91,7 +92,8 @@ namespace TagLib { * If this file contains and ID3v2 tag the frames will be created using * \a frameFactory. * @@ -108,7 +108,7 @@ index e9e97387..fb04c625 100644 */ // BIC: merge with the above constructor File(FileName file, ID3v2::FrameFactory *frameFactory, -@@ -106,7 +108,8 @@ namespace TagLib { +@@ -108,7 +110,8 @@ namespace TagLib { * If this file contains and ID3v2 tag the frames will be created using * \a frameFactory. * @@ -118,7 +118,7 @@ index e9e97387..fb04c625 100644 */ File(IOStream *stream, ID3v2::FrameFactory *frameFactory, bool readProperties = true, -@@ -374,8 +377,8 @@ namespace TagLib { +@@ -375,8 +378,8 @@ namespace TagLib { File(const File &); File &operator=(const File &); @@ -130,11 +130,11 @@ index e9e97387..fb04c625 100644 class FilePrivate; FilePrivate *d; diff --git a/taglib/toolkit/taglib.h b/taglib/toolkit/taglib.h -index bd4886bd..dfabe3d4 100644 +index ffce61f7..38fee5d1 100644 --- a/taglib/toolkit/taglib.h +++ b/taglib/toolkit/taglib.h -@@ -44,6 +44,9 @@ - #define TAGLIB_CONSTRUCT_BITSET(x) static_cast<unsigned long>(x) +@@ -54,6 +54,9 @@ + #define TAGLIB_DEPRECATED #endif +/* VLC Specific patches implementations */ @@ -144,5 +144,5 @@ index bd4886bd..dfabe3d4 100644 //! A namespace for all TagLib related classes and functions -- -2.25.4 +2.33.0 ===================================== contrib/src/taglib/0001-use-SetFilePointerEx-instead-of-SetFilePointer.patch deleted ===================================== @@ -1,40 +0,0 @@ -From d27cc3568c2c04e86a8ec6e29fcdf7e3814b0596 Mon Sep 17 00:00:00 2001 -From: Steve Lhomme <[email protected]> -Date: Fri, 15 May 2020 09:25:40 +0200 -Subject: [PATCH 1/3] use SetFilePointerEx instead of SetFilePointer - -It's available on more Win10 versions with UCRT builds and provides the same -features. The API is available since Windows XP. ---- - taglib/toolkit/tfilestream.cpp | 8 ++++++-- - 1 file changed, 6 insertions(+), 2 deletions(-) - -diff --git a/taglib/toolkit/tfilestream.cpp b/taglib/toolkit/tfilestream.cpp -index 5205bae0..4b448271 100644 ---- a/taglib/toolkit/tfilestream.cpp -+++ b/taglib/toolkit/tfilestream.cpp -@@ -364,7 +364,9 @@ void FileStream::seek(long offset, Position p) - } - - SetLastError(NO_ERROR); -- SetFilePointer(d->file, offset, NULL, whence); -+ LARGE_INTEGER lOffset; -+ lOffset.QuadPart = offset; -+ SetFilePointerEx(d->file, lOffset, NULL, whence); - - const int lastError = GetLastError(); - if(lastError != NO_ERROR && lastError != ERROR_NEGATIVE_SEEK) -@@ -411,7 +413,9 @@ long FileStream::tell() const - #ifdef _WIN32 - - SetLastError(NO_ERROR); -- const DWORD position = SetFilePointer(d->file, 0, NULL, FILE_CURRENT); -+ LARGE_INTEGER lOffset; -+ lOffset.QuadPart = 0; -+ const DWORD position = SetFilePointerEx(d->file, lOffset, NULL, FILE_CURRENT); - if(GetLastError() == NO_ERROR) { - return static_cast<long>(position); - } --- -2.26.0.windows.1 - ===================================== contrib/src/taglib/0002-use-GetFileInformationByHandleEx-on-newer-builds-of-.patch deleted ===================================== @@ -1,39 +0,0 @@ -From 9c02a2c245bed1d70dbd80b0e63abbcdecb74761 Mon Sep 17 00:00:00 2001 -From: Steve Lhomme <[email protected]> -Date: Fri, 15 May 2020 09:29:55 +0200 -Subject: [PATCH 2/3] use GetFileInformationByHandleEx on newer builds of - Windows - -It's available since Vista and UWP builds that don't have GetFileSize. - -See https://docs.microsoft.com/en-us/uwp/win32-and-com/win32-apis ---- - taglib/toolkit/tfilestream.cpp | 8 ++++++++ - 1 file changed, 8 insertions(+) - -diff --git a/taglib/toolkit/tfilestream.cpp b/taglib/toolkit/tfilestream.cpp -index 4b448271..ad4443ea 100644 ---- a/taglib/toolkit/tfilestream.cpp -+++ b/taglib/toolkit/tfilestream.cpp -@@ -441,10 +441,18 @@ long FileStream::length() - #ifdef _WIN32 - - SetLastError(NO_ERROR); -+#if _WIN32_WINNT < _WIN32_WINNT_VISTA - const DWORD fileSize = GetFileSize(d->file, NULL); - if(GetLastError() == NO_ERROR) { - return static_cast<long>(fileSize); - } -+#else // _WIN32_WINNT_VISTA -+ FILE_STANDARD_INFO fStdInfo; -+ BOOL success = GetFileInformationByHandleEx(d->file, FileStandardInfo, (LPVOID)&fStdInfo, sizeof(FILE_STANDARD_INFO)); -+ if(success) { -+ return static_cast<long>(fStdInfo.EndOfFile.LowPart); -+ } -+#endif // _WIN32_WINNT_VISTA - else { - debug("FileStream::length() -- Failed to get the file size."); - return 0; --- -2.26.0.windows.1 - ===================================== contrib/src/taglib/0003-don-t-use-CreateFile-in-UWP-builds.patch deleted ===================================== @@ -1,43 +0,0 @@ -From a9024bd18ce20653616e04702b5e220de56b6b2c Mon Sep 17 00:00:00 2001 -From: Steve Lhomme <[email protected]> -Date: Fri, 15 May 2020 09:32:21 +0200 -Subject: [PATCH 3/3] don't use CreateFile in UWP builds - -CreateFile2 is available for such builds with more internal restrictions.. - -See https://docs.microsoft.com/en-us/uwp/win32-and-com/win32-apis -https://docs.microsoft.com/en-us/windows/win32/api/fileapi/nf-fileapi-createfile2 ---- - taglib/toolkit/tfilestream.cpp | 13 +++++++++++++ - 1 file changed, 13 insertions(+) - -diff --git a/taglib/toolkit/tfilestream.cpp b/taglib/toolkit/tfilestream.cpp -index ad4443ea..10cd8d56 100644 ---- a/taglib/toolkit/tfilestream.cpp -+++ b/taglib/toolkit/tfilestream.cpp -@@ -52,9 +52,22 @@ namespace - const DWORD access = readOnly ? GENERIC_READ : (GENERIC_READ | GENERIC_WRITE); - - if(!path.wstr().empty()) -+#if !WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) -+ { -+ CREATEFILE2_EXTENDED_PARAMETERS createExParams; -+ createExParams.dwSize = sizeof(createExParams); -+ createExParams.dwFileAttributes = FILE_ATTRIBUTE_NORMAL; -+ createExParams.dwFileFlags = 0; -+ createExParams.dwSecurityQosFlags = 0; -+ createExParams.lpSecurityAttributes = NULL; -+ createExParams.hTemplateFile = NULL; -+ return CreateFile2(path.wstr().c_str(), access, FILE_SHARE_READ, OPEN_EXISTING, &createExParams); -+ } -+#else // WINAPI_PARTITION_DESKTOP - return CreateFileW(path.wstr().c_str(), access, FILE_SHARE_READ, NULL, OPEN_EXISTING, 0, NULL); - else if(!path.str().empty()) - return CreateFileA(path.str().c_str(), access, FILE_SHARE_READ, NULL, OPEN_EXISTING, 0, NULL); -+#endif // WINAPI_PARTITION_DESKTOP - else - return InvalidFileHandle; - } --- -2.26.0.windows.1 - ===================================== contrib/src/taglib/SHA512SUMS ===================================== @@ -1 +1 @@ -7846775c4954ea948fe4383e514ba7c11f55d038ee06b6ea5a0a1c1069044b348026e76b27aa4ba1c71539aa8143e1401fab39184cc6e915ba0ae2c06133cb98 taglib-1.11.1.tar.gz +7e369faa5e3c6c6401052b7a19e35b0cf8c1e5ed9597053ac731a7718791d5d4803d1b18a93e903ec8c3fc6cb92e34d9616daa2ae4d326965d4c4d5624dcdaba taglib-1.12.tar.gz ===================================== contrib/src/taglib/rules.mak ===================================== @@ -1,6 +1,6 @@ # TagLib -TAGLIB_VERSION := 1.11.1 +TAGLIB_VERSION := 1.12 TAGLIB_URL := https://taglib.org/releases/taglib-$(TAGLIB_VERSION).tar.gz PKGS += taglib @@ -15,10 +15,6 @@ $(TARBALLS)/taglib-$(TAGLIB_VERSION).tar.gz: taglib: taglib-$(TAGLIB_VERSION).tar.gz .sum-taglib $(UNPACK) - $(APPLY) $(SRC)/taglib/0001-use-SetFilePointerEx-instead-of-SetFilePointer.patch - $(APPLY) $(SRC)/taglib/0002-use-GetFileInformationByHandleEx-on-newer-builds-of-.patch - $(APPLY) $(SRC)/taglib/0003-don-t-use-CreateFile-in-UWP-builds.patch - $(APPLY) $(SRC)/taglib/use_resolvers_on_streams.patch $(APPLY) $(SRC)/taglib/0001-Implement-ID3v2-readStyle-avoid-worst-case.patch $(MOVE) ===================================== contrib/src/taglib/use_resolvers_on_streams.patch deleted ===================================== @@ -1,44 +0,0 @@ -From e648e07b7ebc4a1254a8673388c8f578fedf62a6 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Hugo=20Beauz=C3=A9e-Luyssen?= <[email protected]> -Date: Mon, 18 Mar 2019 15:57:28 +0100 -Subject: [PATCH] fileref: Use user defined resolvers with IOStream - ---- - taglib/fileref.cpp | 14 +++++++------- - 1 file changed, 7 insertions(+), 7 deletions(-) - -diff --git a/taglib/fileref.cpp b/taglib/fileref.cpp -index 3a7f2c65..b0369a0c 100644 ---- a/taglib/fileref.cpp -+++ b/taglib/fileref.cpp -@@ -88,13 +88,6 @@ namespace - return 0; - } - -- template <> -- File *resolveFileType<IOStream *>(IOStream *arg, bool readProperties, -- AudioProperties::ReadStyle style) -- { -- return 0; -- } -- - template <> - File *resolveFileType<FileName>(FileName arg, bool readProperties, - AudioProperties::ReadStyle style) -@@ -109,6 +102,13 @@ namespace - return 0; - } - -+ template <> -+ File *resolveFileType<IOStream *>(IOStream *arg, bool readProperties, -+ AudioProperties::ReadStyle style) -+ { -+ return resolveFileType(arg->name(), readProperties, style); -+ } -+ - template <typename T> - File* createInternal(T arg, bool readAudioProperties, - AudioProperties::ReadStyle audioPropertiesStyle) --- -2.20.1 - View it on GitLab: https://code.videolan.org/videolan/vlc/-/commit/c651b10d33dc0fb7b9670208f93f94f850ba8ca4 -- View it on GitLab: https://code.videolan.org/videolan/vlc/-/commit/c651b10d33dc0fb7b9670208f93f94f850ba8ca4 You're receiving this email because of your account on code.videolan.org.
_______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
