summaryrefslogtreecommitdiff
path: root/kde-frameworks/kimageformats
diff options
context:
space:
mode:
Diffstat (limited to 'kde-frameworks/kimageformats')
-rw-r--r--kde-frameworks/kimageformats/Manifest3
-rw-r--r--kde-frameworks/kimageformats/files/kimageformats-5.99.0-jxl-perf.patch116
-rw-r--r--kde-frameworks/kimageformats/kimageformats-5.99.0-r3.ebuild (renamed from kde-frameworks/kimageformats/kimageformats-5.99.0-r2.ebuild)1
3 files changed, 119 insertions, 1 deletions
diff --git a/kde-frameworks/kimageformats/Manifest b/kde-frameworks/kimageformats/Manifest
index 94a5ce147cd5..0bcd22863f2a 100644
--- a/kde-frameworks/kimageformats/Manifest
+++ b/kde-frameworks/kimageformats/Manifest
@@ -2,8 +2,9 @@ AUX kimageformats-5.99.0-avif-0.11.0.patch 1916 BLAKE2B eacae65d69c93e4d4f5f5444
AUX kimageformats-5.99.0-avif-perf-1.patch 932 BLAKE2B 7ba0835e0c21fc65450e8495a209bf11741173dfa147ac9de5cca820e7317960dd98bbf511eec1f9589939db8217581c788084e31e164dd7db41466de9d048bf SHA512 7d35cd83f964ed8bc21d8bec7385dae5f7e822e0f446087d04b1d5da168d7de1815c000479f512bba906ae7087b1a5fb34b5820583cbe9bec12eb724c0bd6133
AUX kimageformats-5.99.0-avif-perf-2.patch 931 BLAKE2B aee4fe26f92a816a484faa25f43c866dcadb003d374364990ea075587f97d09f7b9d6f0cc07b0ad86958d3bd64442a16d74d2660d97f94b7aedd27d867aed759 SHA512 8b007bd6d9a5ba59f8e4ca764849eccd6c92cb3a84a1bf84204bfc2b759c604cb1322f0110b98a9d6dbc75d67c6819c4b90da65f259b6448ec4e1fac12ce4952
AUX kimageformats-5.99.0-avif-perf-3.patch 2384 BLAKE2B 4dcf3b0a1d0300d55b87829dc81109eca3626a499ca81182b23b59e9031f929af727bdf86f984bcee0ffa02dd7b60a2bfab4fc8d2f59abeb37e23eb91741d83b SHA512 7876246e20a8c1203b780f7a0566508801e8cb8ad04059202090559ca8968ac6e4185a458ad67c7a575aa896d001b1eb0aec44c737bd4ba829a6665abdaa7713
+AUX kimageformats-5.99.0-jxl-perf.patch 3437 BLAKE2B 2db2debc1ce40682d310d0fc4c84f29a7f745ec010ca35e07684e221a9d586d2ced559f89ca2d719a2b99cf7d0917678d3b5ca735a75f5794e853d02072dfcde SHA512 3c2033e0d28da88d13b032d84959f49b98cc4677bbd42e5794b0e48a16f8a456569aeebe06a38ff7b5cb1ed3dc0c6fb11ecff7a734c9c94c549a7ee7a9166505
DIST kimageformats-5.96.0.tar.xz 3589112 BLAKE2B 2a9e5f72b09e27ebb561013f816b41e9ef8be9d874074ddd014f631a57f0da79cc2785d3d528f9ea9f76b940075f0f7649aca57c8ff20a376f5ffa3adea80eb1 SHA512 37e51279824df05391647d45125676127d5570d4ed0905d2378dd627c3542d61f6f43bdd4e6f28ef43268127d120c1d2829a5cba34dde1ba7427b9051d241c1c
DIST kimageformats-5.99.0.tar.xz 12298368 BLAKE2B e1ae582992368031212699598b2a38a1010c08d89ca963bda0c39a0bbf954c88efa7ad4fc88019fea68afb328d624667188d82fee4317f4b893a234e66d640c5 SHA512 e6e456915d2ec0f9ef16400b4bb299fda7eaf28d8c66ef8e91fc700a711c65313785b8de64a310031ab362f507ef72922d7769bee232862e25ee8f4d44f45476
EBUILD kimageformats-5.96.0.ebuild 1008 BLAKE2B 881d5e6493a719ba5ab913e114d77bc46fe3c82cb655d1a47db14ab0eb2398cd2d6e4b283c0358dc65076d796ebf3e576155fff28be12f65b9aa3ae0710a9af1 SHA512 bb6b63276e7a97e0aef3cd4f8a83be1e600b4cd793501bcac42559cf00bf3c6b3f4f47163c0718c22a91373dccf5f7dce833f79c699315a2763bc09c2a139bfa
-EBUILD kimageformats-5.99.0-r2.ebuild 1179 BLAKE2B 56b0a96b76f6d55d34cadca83ae78f80fbef1ded0a8e5295feae33d0f1400366795cb4de1dc55408e2876ddcf75d33818cce1cad61e3ef803196ec95e3791342 SHA512 e9796e01a74e67a7db85db0225d2fc1e2e5319db2c861ed64d4487f699da799c47d7e85e8e1ba50bb64d34ed0450773508ee9d1521c3b53dfde8c7541a061bff
+EBUILD kimageformats-5.99.0-r3.ebuild 1214 BLAKE2B ce968a48588810e59ec2e45e7a46840198235bb5a292e6d1a32f2a2d833980d349f5ed6f2383c2209de1afb6f79712620e9e5cdea95a5e73e01e318b799c98d0 SHA512 30491f8c4a8412fbdfeb71db7aa06fe7de8c38168bd7150e9931f494aec7ac3310090e9848af18488d606df7eeaa9fadc71f084f36cdc8d1a0e6957ac8998a2c
MISC metadata.xml 775 BLAKE2B 7a31e17d20aaa7fb530e76ff4cac8f681f81d1229ed6c0b08206de919be074a3fa9667ff7f24c9db674a6950de938b7bddb609cb5c015f1b7072fbd981b56e1a SHA512 80aee93fef37b1ef9a81dba5c77934ec269d44a0016c31b4cd2d855edd607894267ad7c0e39cf795b212b200f433611fc9c7014a97df784879717a46d33ff62a
diff --git a/kde-frameworks/kimageformats/files/kimageformats-5.99.0-jxl-perf.patch b/kde-frameworks/kimageformats/files/kimageformats-5.99.0-jxl-perf.patch
new file mode 100644
index 000000000000..7673c8c33653
--- /dev/null
+++ b/kde-frameworks/kimageformats/files/kimageformats-5.99.0-jxl-perf.patch
@@ -0,0 +1,116 @@
+From d734f2872745dd1ab5aab9dafb144130d7e9fdcc Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Daniel=20Novomesk=C3=BD?= <dnovomesky@gmail.com>
+Date: Tue, 18 Oct 2022 15:20:16 +0200
+Subject: [PATCH] jxl: indicate when all frames have been read
+
+and return correct loop count
+---
+ src/imageformats/jxl.cpp | 23 ++++++++++++++++++++---
+ src/imageformats/jxl_p.h | 1 +
+ 2 files changed, 21 insertions(+), 3 deletions(-)
+
+diff --git a/src/imageformats/jxl.cpp b/src/imageformats/jxl.cpp
+index da2cd2e..2501086 100644
+--- a/src/imageformats/jxl.cpp
++++ b/src/imageformats/jxl.cpp
+@@ -48,6 +48,11 @@ bool QJpegXLHandler::canRead() const
+
+ if (m_parseState != ParseJpegXLError) {
+ setFormat("jxl");
++
++ if (m_parseState == ParseJpegXLFinished) {
++ return false;
++ }
++
+ return true;
+ }
+ return false;
+@@ -72,7 +77,7 @@ bool QJpegXLHandler::canRead(QIODevice *device)
+
+ bool QJpegXLHandler::ensureParsed() const
+ {
+- if (m_parseState == ParseJpegXLSuccess || m_parseState == ParseJpegXLBasicInfoParsed) {
++ if (m_parseState == ParseJpegXLSuccess || m_parseState == ParseJpegXLBasicInfoParsed || m_parseState == ParseJpegXLFinished) {
+ return true;
+ }
+ if (m_parseState == ParseJpegXLError) {
+@@ -90,7 +95,7 @@ bool QJpegXLHandler::ensureALLCounted() const
+ return false;
+ }
+
+- if (m_parseState == ParseJpegXLSuccess) {
++ if (m_parseState == ParseJpegXLSuccess || m_parseState == ParseJpegXLFinished) {
+ return true;
+ }
+
+@@ -401,7 +406,15 @@ bool QJpegXLHandler::decode_one_frame()
+ if (!rewind()) {
+ return false;
+ }
++
++ // all frames in animation have been read
++ m_parseState = ParseJpegXLFinished;
++ } else {
++ m_parseState = ParseJpegXLSuccess;
+ }
++ } else {
++ // the static image has been read
++ m_parseState = ParseJpegXLFinished;
+ }
+
+ return true;
+@@ -860,6 +873,7 @@ bool QJpegXLHandler::jumpToNextImage()
+ }
+ }
+
++ m_parseState = ParseJpegXLSuccess;
+ return true;
+ }
+
+@@ -874,12 +888,14 @@ bool QJpegXLHandler::jumpToImage(int imageNumber)
+ }
+
+ if (imageNumber == m_currentimage_index) {
++ m_parseState = ParseJpegXLSuccess;
+ return true;
+ }
+
+ if (imageNumber > m_currentimage_index) {
+ JxlDecoderSkipFrames(m_decoder, imageNumber - m_currentimage_index);
+ m_currentimage_index = imageNumber;
++ m_parseState = ParseJpegXLSuccess;
+ return true;
+ }
+
+@@ -891,6 +907,7 @@ bool QJpegXLHandler::jumpToImage(int imageNumber)
+ JxlDecoderSkipFrames(m_decoder, imageNumber);
+ }
+ m_currentimage_index = imageNumber;
++ m_parseState = ParseJpegXLSuccess;
+ return true;
+ }
+
+@@ -914,7 +931,7 @@ int QJpegXLHandler::loopCount() const
+ }
+
+ if (m_basicinfo.have_animation) {
+- return 1;
++ return (m_basicinfo.animation.num_loops > 0) ? m_basicinfo.animation.num_loops - 1 : -1;
+ } else {
+ return 0;
+ }
+diff --git a/src/imageformats/jxl_p.h b/src/imageformats/jxl_p.h
+index 8339d7e..7a4af0b 100644
+--- a/src/imageformats/jxl_p.h
++++ b/src/imageformats/jxl_p.h
+@@ -57,6 +57,7 @@ private:
+ ParseJpegXLNotParsed = 0,
+ ParseJpegXLSuccess = 1,
+ ParseJpegXLBasicInfoParsed = 2,
++ ParseJpegXLFinished = 3,
+ };
+
+ ParseJpegXLState m_parseState;
+--
+GitLab
+
diff --git a/kde-frameworks/kimageformats/kimageformats-5.99.0-r2.ebuild b/kde-frameworks/kimageformats/kimageformats-5.99.0-r3.ebuild
index 6be9f5b4f8b1..feebf9696329 100644
--- a/kde-frameworks/kimageformats/kimageformats-5.99.0-r2.ebuild
+++ b/kde-frameworks/kimageformats/kimageformats-5.99.0-r3.ebuild
@@ -32,6 +32,7 @@ DOCS=( src/imageformats/AUTHORS )
PATCHES=(
"${FILESDIR}"/${P}-avif-perf-{1,2,3}.patch
"${FILESDIR}"/${P}-avif-0.11.0.patch
+ "${FILESDIR}"/${P}-jxl-perf.patch
)
src_configure() {