summaryrefslogtreecommitdiff
path: root/media-gfx/qimgv/files/qimgv-1.0.2-fix-apng-cannot-play.patch
diff options
context:
space:
mode:
Diffstat (limited to 'media-gfx/qimgv/files/qimgv-1.0.2-fix-apng-cannot-play.patch')
-rw-r--r--media-gfx/qimgv/files/qimgv-1.0.2-fix-apng-cannot-play.patch56
1 files changed, 56 insertions, 0 deletions
diff --git a/media-gfx/qimgv/files/qimgv-1.0.2-fix-apng-cannot-play.patch b/media-gfx/qimgv/files/qimgv-1.0.2-fix-apng-cannot-play.patch
new file mode 100644
index 000000000000..7350fb626523
--- /dev/null
+++ b/media-gfx/qimgv/files/qimgv-1.0.2-fix-apng-cannot-play.patch
@@ -0,0 +1,56 @@
+From 0db15e8ae17a03d61652766ffe411c5d010161a1 Mon Sep 17 00:00:00 2001
+From: adonais <hua.andy@gmail.com>
+Date: Mon, 1 Nov 2021 08:50:51 +0800
+Subject: [PATCH] Fix apng cannot play
+
+(cherry picked from commit e9d306ffbf93d4b9d8cfd2906eaebe0fc949930f)
+
+* asturmlechner 2023-06-12: Drop unrelated [...and update translation file]
+ part of this commit.
+---
+ qimgv/sourcecontainers/documentinfo.cpp | 17 +++++++----------
+ 1 file changed, 7 insertions(+), 10 deletions(-)
+
+diff --git a/qimgv/sourcecontainers/documentinfo.cpp b/qimgv/sourcecontainers/documentinfo.cpp
+index 98a68f75..21979f01 100644
+--- a/qimgv/sourcecontainers/documentinfo.cpp
++++ b/qimgv/sourcecontainers/documentinfo.cpp
+@@ -128,10 +128,13 @@ inline
+ // dumb apng detector
+ bool DocumentInfo::detectAPNG() {
+ QFile f(fileInfo.filePath());
+- if(f.open(QFile::ReadOnly | QFile::Text)) {
+- QTextStream in(&f);
+- QString header(in.read(120)); // 120 chars should be sufficient?
+- return header.contains("acTL");
++ if(f.open(QFile::ReadOnly)) {
++ QDataStream in(&f);
++ const int len = 120;
++ QByteArray qbuf("\0", len);
++ if (in.readRawData(qbuf.data(), len) > 0) {
++ return qbuf.contains("acTL");
++ }
+ }
+ return false;
+ }
+@@ -264,17 +267,11 @@ void DocumentInfo::loadExifTags() {
+ comment.remove(0, comment.indexOf(" ") + 1);
+ exifTags.insert("UserComment", comment);
+ }
+-
+- return;
+ }
+ catch (Exiv2::Error& e) {
+ //std::cout << "Caught Exiv2 exception '" << e.what() << "'\n";
+ return;
+ }
+- catch (Exiv2::BasicError<CharType> e) {
+- //std::cout << "Caught BasicError Exiv2 exception '" << e.what() << "'\n";
+- return;
+- }
+ #endif
+ }
+
+--
+2.41.0
+