Coder Social home page Coder Social logo

novomesk / qt-jpegxl-image-plugin Goto Github PK

View Code? Open in Web Editor NEW
91.0 6.0 8.0 3.44 MB

Qt plug-in to allow Qt and KDE based applications to read/write JXL images.

License: GNU General Public License v3.0

Shell 1.58% QMake 11.44% C++ 81.08% CMake 5.89%
qt jpegxl imageformats kde jpeg-xl

qt-jpegxl-image-plugin's People

Contributors

master-of-zen avatar novomesk avatar tobefree avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

qt-jpegxl-image-plugin's Issues

Compilation fails with "QColorSpace: No such file or directory"

Hi!

I'm getting an error during compilation due to something called "QColorSpace".

./build_libqjpegxl_dynamic.sh
g++ -c -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -O2 -std=c++1z -Wall -W -Wvla -Wdate-time -Wshift-overflow=2 -Wduplicated-cond -Wno-stringop-overflow -Wno-deprecated-copy -Wno-redundant-move -Wno-format-overflow -Wno-init-list-lifetime -fvisibility=hidden -fvisibility-inlines-hidden -fno-exceptions -D_REENTRANT -fPIC -DQT_DEPRECATED_WARNINGS -DQT_NO_NARROWING_CONVERSIONS_IN_CONNECT -DQT_NO_EXCEPTIONS -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -DQT_NO_DEBUG -DQT_PLUGIN -DQT_GUI_LIB -DQT_CORE_LIB -I. -isystem /usr/include/x86_64-linux-gnu/qt5 -isystem /usr/include/x86_64-linux-gnu/qt5/QtGui -isystem /usr/include/x86_64-linux-gnu/qt5/QtCore -I.moc -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -o .obj/qjpegxlhandler.o src/qjpegxlhandler.cpp
src/qjpegxlhandler.cpp:9:10: fatal error: QColorSpace: No such file or directory
    9 | #include <QColorSpace>
      |          ^~~~~~~~~~~~~
compilation terminated.
make: *** [Makefile:373: .obj/qjpegxlhandler.o] Error 1
Failed to build libqjpegxl.so

I'm running Kubuntu 20.04.

  • I compiled and installed libjxl without any errors, and cjxl+djxl work without any issues.
  • I checked that the image-jxl.xml file is in the right directory, then updated the mime database.
  • Couldn't find the "qt5base-dev" package, but I found and installed "qtbase5-dev", which at the time I assumed is the same.
  • Then cloned the code with the --recursive option.
  • When building after this, I get the above error message.

Am I missing some dependencies? Or is qtbase5-dev the wrong package after all?

Edit: I forgot to mention that I managed to compile libjxl without errors and it works without any issues.

ICC profile not working (invalid color profile created)

Environment:

Steps to reproduce:

  1. Convert the jpg files to jxl by cjxl.
  2. Open the JXL (e.g. ICC Rendering Intent Test (cLUT only).jxl) by gwenview.
  3. Open the JPG and PNG by gwenview.

Observed result:

Although the JXL is displayed, the colors are wrong because the ICC profile cannot be applied.

JPG and PNG versions have no such problem.

Console output:

qt.gui.icc: fromIccProfile: Unsupported ICC profile - not three component matrix based
invalid color profile created
full image, format=4

Plugin built with libjxl v0.9.1 doesn't work [msys2]

I'm building qimgv/yacreader along with this plugin in msys2/ucrt64 and msys2/clang64 environments. If the plugin is based on libjxl v0.8.2, it works fine, but if libjxl v0.9.1, the apps simply can't recognize jxl images.

msys2/cmake/qt6 build crashes on vardct and modular

I build the plugin in msys2/ucrt64 using cmake and Qt 6.5.1 since I can no longer do it with qmake-qt6. I use this plugin along with qimgv built in the same environment. Lately I've noticed that everything works correctly on jpeg transcoded jxls, but qimgv crashes on vardct and modular jxls. When building with qmake-qt6 this problem was not observed. Any suggestions?

Part of my script:

# build qjpegxl
if [[ $QJXL == 1 ]] ; then
    printf "\n${MGNT}:: Prepare libjxl ::${RST}\n"
    if [[ ! -d libjxl ]]; then
        git clone --branch v0.8.2 --depth 1 https://github.com/libjxl/libjxl.git
        cd libjxl
    else
        cd libjxl
        git pull
    fi

    cd third_party
    if [[ -z "$(ls -A skcms)" ]]; then git clone --depth 1 https://skia.googlesource.com/skcms
    else cd skcms; git pull; cd ..; fi
    if [[ -z "$(ls -A sjpeg)" ]]; then git clone --depth 1 https://github.com/webmproject/sjpeg.git
    else cd sjpeg; git pull; cd ..; fi
    cd ..
    if [[ -z "$(ls -A testdata)" ]]; then git clone --depth 1 https://github.com/libjxl/testdata
    else cd testdata; git pull; cd ..; fi

    # build libjxl
    printf "\n${MGNT}:: Build libjxl ::${RST}\n"
    rm -rf build
    cmake -B build -G Ninja -S ./ \
        -DCMAKE_INSTALL_PREFIX="$EXTDIR" \
        -DCMAKE_BUILD_TYPE=Release \
        -DBUILD_TESTING=OFF \
        -DJPEGXL_ENABLE_TOOLS=OFF \
        -DJPEGXL_ENABLE_DOXYGEN=OFF \
        -DJPEGXL_ENABLE_MANPAGES=OFF \
        -DJPEGXL_ENABLE_BENCHMARK=OFF \
        -DJPEGXL_ENABLE_EXAMPLES=OFF \
        -DJPEGXL_ENABLE_JNI=OFF \
        -DJPEGXL_ENABLE_OPENEXR=OFF \
        -DJPEGXL_WARNINGS_AS_ERRORS=OFF \
        -DJPEGXL_FORCE_SYSTEM_BROTLI=ON \
        -DJPEGXL_FORCE_SYSTEM_LCMS2=ON \
        -DJPEGXL_FORCE_SYSTEM_HWY=ON \
        -DCMAKE_C_FLAGS="$CFL" -DCMAKE_CXX_FLAGS="$CFL" -DCMAKE_EXE_LINKER_FLAGS="$LFL" \
        -Wno-dev
    ninja install -C build
    cd ..

    # build qjpegxl
    cd qimgv
    printf "\n${MGNT}:: Build qjpegxl-qt6 ::${RST}\n"
    if [[ ! -d qt-jpegxl-image-plugin ]]; then
        git clone --depth 1 https://github.com/novomesk/qt-jpegxl-image-plugin.git
        cd qt-jpegxl-image-plugin
        sed -i 's|set(REQUIRED_QT_VERSION 5.14.0)|set(REQUIRED_QT_VERSION 6.5.1)|' CMakeLists.txt
        sed -i 's|${QT_MAJOR_VERSION}|6|' CMakeLists.txt
        sed -i 's|${QT_MAJOR_VERSION}|6|' src/CMakeLists.txt
    fi
    rm -rf build
    cmake -B build -G Ninja -S ./ -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH="$EXTDIR" \
        -DCMAKE_C_FLAGS="$CFL" -DCMAKE_CXX_FLAGS="$CFL" -DCMAKE_EXE_LINKER_FLAGS="$LFL"
    ninja -C build
    cd ../..
fi

Qt/C++: crash during encode/write jxl image

After installing the plugin, this Qt/C++ code crashes:

// grab a screenshot (X11) and save it to jxl format
QPixmap pixmap(qApp->primaryScreen()->grabWindow(0).copy());
pixmap.save("screenshot.jxl", "JXL");

Console output:

/build/libjxl/src/libjxl/lib/jxl/enc_ac_strategy.h:52: JXL_DASSERT: masking_field_row[by * masking_field_stride + bx] > 0
Illegal instruction (core dumped)

But this code works fine and correctly writes a jxl image:

// load existing png file into a QPixmap and save it as a new jxl file
QPixmap pixmap("myimage.png");
pixmap.save("myimage.jxl", "JXL");

Tested with both Qt5 and Qt6, with the same result.

System information:
OS: Arch Linux x86_64
Qt5: 5.15.2+kde+r211
Qt6: 6.1.2
libjxl: 0.5
Compiler: gcc 11.1.0

undefined symbol: qMain

Try to build on msys2/clang64 with qt 6.5.0 and get an error:

Cloning into 'qt-jpegxl-image-plugin'...
remote: Enumerating objects: 36, done.
remote: Counting objects: 100% (36/36), done.
remote: Compressing objects: 100% (35/35), done.
remote: Total 36 (delta 2), reused 20 (delta 0), pack-reused 0
Receiving objects: 100% (36/36), 3.35 MiB | 1.99 MiB/s, done.
Resolving deltas: 100% (2/2), done.
D:/msys2/home/Gautama/yacr/qt-jpegxl-image-plugin/.qmake.conf:1: Cannot find feature qt_build_config
D:/msys2/home/Gautama/yacr/qt-jpegxl-image-plugin/.qmake.conf:1: Cannot find feature qt_build_config
Info: creating stash file D:\msys2\home\Gautama\yacr\qt-jpegxl-image-plugin\.qmake.stash
D:/msys2/home/Gautama/yacr/qt-jpegxl-image-plugin/qt-jpegxl-image-plugin.pro:13: Cannot find feature qt_plugin
clang++ -c -flto=thin -ffunction-sections -fdata-sections -march=native -mtune=native -O3 -pipe -O3 -Wall -Wextra -Wextra -Wno-ignored-attributes -fexceptions -DUNICODE -D_UNICODE -DWIN32 -DMINGW_HAS_SECURE_API=1 -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_NEEDS_QMAIN -I. -I/home/Gautama/yacr/install/include -ID:/msys2/clang64/include/qt6 -ID:/msys2/clang64/include/qt6/QtGui -ID:/msys2/clang64/include/qt6/QtCore -I. -I/include -ID:/msys2/clang64/share/qt6/mkspecs/win32-clang-g++  -o qjpegxlhandler.o src/qjpegxlhandler.cpp
clang++ -flto=thin -ffunction-sections -fdata-sections -march=native -mtune=native -O3 -pipe -O3 -Wall -Wextra -Wextra -Wno-ignored-attributes -dM -E -o moc_predefs.h D:/msys2/clang64/share/qt6/mkspecs/features/data/dummy.cpp
'D:\msys2\clang64\share\qt6\bin\moc.exe' -DUNICODE -D_UNICODE -DWIN32 -DMINGW_HAS_SECURE_API=1 -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_NEEDS_QMAIN --include D:/msys2/home/Gautama/yacr/qt-jpegxl-image-plugin/moc_predefs.h -ID:/msys2/clang64/share/qt6/mkspecs/win32-clang-g++ -ID:/msys2/home/Gautama/yacr/qt-jpegxl-image-plugin -ID:/home/Gautama/yacr/install/include -ID:/msys2/clang64/include/qt6 -ID:/msys2/clang64/include/qt6/QtGui -ID:/msys2/clang64/include/qt6/QtCore -ID:/msys2/clang64/include/c++/v1 -ID:/msys2/clang64/lib/clang/16/include -ID:/msys2/clang64/include src/main.cpp -o main.moc
clang++ -c -flto=thin -ffunction-sections -fdata-sections -march=native -mtune=native -O3 -pipe -O3 -Wall -Wextra -Wextra -Wno-ignored-attributes -fexceptions -DUNICODE -D_UNICODE -DWIN32 -DMINGW_HAS_SECURE_API=1 -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_NEEDS_QMAIN -I. -I/home/Gautama/yacr/install/include -ID:/msys2/clang64/include/qt6 -ID:/msys2/clang64/include/qt6/QtGui -ID:/msys2/clang64/include/qt6/QtCore -I. -I/include -ID:/msys2/clang64/share/qt6/mkspecs/win32-clang-g++  -o main.o src/main.cpp
clang++ -flto=thin -Wl,--gc-sections -Wl,-s -Wl,-subsystem,windows -o qjpegxl.exe qjpegxlhandler.o main.o -L/home/Gautama/yacr/install/lib -ljxl -ljxl_threads -lbrotlicommon -lbrotlienc -lbrotlidec D:/msys2/clang64/lib/libQt6Gui.dll.a D:/msys2/clang64/lib/libQt6Core.dll.a -lmingw32 D:/msys2/clang64/lib/libQt6EntryPoint.a -lshell32
ld.lld: error: undefined symbol: qMain(int, char**)
>>> referenced by libQt6EntryPoint.a(qtentrypoint_win.cpp.obj):(qtEntryPoint())
clang++: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [Makefile:73: qjpegxl.exe] Error 1

Any suggestions?

Failed decode

For some images, the results are very different from those from djxl. See example attached file (zipped because GitHub doesn't permit .jxl).
output.zip

Command used to create it: cjxl input.png output.jxl -m -Q 25 -s 9 -E 3 --noise=1 --lossy-palette --palette=0 --num_threads 16 -v

Qmake: Project ERROR: No module claims plugin type 'imageformats'

tobefree@tobefree-linux:~/software/gwenview-plugin-jpegxl$ ls
tobefree@tobefree-linux:~/software/gwenview-plugin-jpegxl$ git clone --depth 1 https://gitlab.com/wg1/jpeg-xl.git --recursive
Klone nach 'jpeg-xl' ...
remote: Enumerating objects: 755, done.
remote: Counting objects: 100% (755/755), done.
remote: Compressing objects: 100% (696/696), done.
remote: Total 755 (delta 123), reused 327 (delta 44), pack-reused 0
Empfange Objekte: 100% (755/755), 14.11 MiB | 8.51 MiB/s, fertig.
Löse Unterschiede auf: 100% (123/123), fertig.
Submodul 'third_party/IQA-optimization' (https://github.com/veluca93/IQA-optimization.git) für Pfad 'third_party/IQA-optimization' in die Konfiguration eingetragen.
Submodul 'third_party/brotli' (https://github.com/google/brotli) für Pfad 'third_party/brotli' in die Konfiguration eingetragen.
Submodul 'third_party/difftest_ng' (https://github.com/thorfdbg/difftest_ng.git) für Pfad 'third_party/difftest_ng' in die Konfiguration eingetragen.
Submodul 'third_party/googletest' (https://github.com/google/googletest) für Pfad 'third_party/googletest' in die Konfiguration eingetragen.
Submodul 'third_party/highway' (https://github.com/google/highway) für Pfad 'third_party/highway' in die Konfiguration eingetragen.
Submodul 'third_party/lcms' (https://github.com/mm2/Little-CMS) für Pfad 'third_party/lcms' in die Konfiguration eingetragen.
Submodul 'third_party/lodepng' (https://github.com/lvandeve/lodepng) für Pfad 'third_party/lodepng' in die Konfiguration eingetragen.
Submodul 'third_party/sjpeg' (https://github.com/webmproject/sjpeg.git) für Pfad 'third_party/sjpeg' in die Konfiguration eingetragen.
Submodul 'third_party/skcms' (https://skia.googlesource.com/skcms) für Pfad 'third_party/skcms' in die Konfiguration eingetragen.
Submodul 'third_party/vmaf' (https://github.com/Netflix/vmaf.git) für Pfad 'third_party/vmaf' in die Konfiguration eingetragen.
Klone nach '/home/tobefree/software/gwenview-plugin-jpegxl/jpeg-xl/third_party/IQA-optimization' ...
remote: Enumerating objects: 108, done.        
remote: Counting objects: 100% (108/108), done.        
remote: Compressing objects: 100% (82/82), done.        
remote: Total 108 (delta 30), reused 99 (delta 21), pack-reused 0        
Empfange Objekte: 100% (108/108), 410.81 KiB | 4.62 MiB/s, fertig.
Löse Unterschiede auf: 100% (30/30), fertig.
Klone nach '/home/tobefree/software/gwenview-plugin-jpegxl/jpeg-xl/third_party/brotli' ...
remote: Enumerating objects: 35, done.        
remote: Counting objects: 100% (35/35), done.        
remote: Compressing objects: 100% (34/34), done.        
remote: Total 6102 (delta 6), reused 3 (delta 0), pack-reused 6067        
Empfange Objekte: 100% (6102/6102), 30.71 MiB | 23.82 MiB/s, fertig.
Löse Unterschiede auf: 100% (3911/3911), fertig.
Klone nach '/home/tobefree/software/gwenview-plugin-jpegxl/jpeg-xl/third_party/difftest_ng' ...
remote: Enumerating objects: 158, done.        
remote: Counting objects: 100% (158/158), done.        
remote: Compressing objects: 100% (94/94), done.        
remote: Total 1003 (delta 93), reused 100 (delta 61), pack-reused 845        
Empfange Objekte: 100% (1003/1003), 712.01 KiB | 8.79 MiB/s, fertig.
Löse Unterschiede auf: 100% (740/740), fertig.
Klone nach '/home/tobefree/software/gwenview-plugin-jpegxl/jpeg-xl/third_party/googletest' ...
remote: Enumerating objects: 19, done.        
remote: Counting objects: 100% (19/19), done.        
remote: Compressing objects: 100% (13/13), done.        
remote: Total 22224 (delta 3), reused 14 (delta 3), pack-reused 22205        
Empfange Objekte: 100% (22224/22224), 8.56 MiB | 3.43 MiB/s, fertig.
Löse Unterschiede auf: 100% (16451/16451), fertig.
Klone nach '/home/tobefree/software/gwenview-plugin-jpegxl/jpeg-xl/third_party/highway' ...
remote: Enumerating objects: 26, done.        
remote: Counting objects: 100% (26/26), done.        
remote: Compressing objects: 100% (19/19), done.        
remote: Total 1646 (delta 7), reused 7 (delta 7), pack-reused 1620        
Empfange Objekte: 100% (1646/1646), 2.37 MiB | 11.84 MiB/s, fertig.
Löse Unterschiede auf: 100% (1249/1249), fertig.
Klone nach '/home/tobefree/software/gwenview-plugin-jpegxl/jpeg-xl/third_party/lcms' ...
remote: Enumerating objects: 105, done.        
remote: Counting objects: 100% (105/105), done.        
remote: Compressing objects: 100% (80/80), done.        
remote: Total 5229 (delta 46), reused 65 (delta 25), pack-reused 5124        
Empfange Objekte: 100% (5229/5229), 78.11 MiB | 4.22 MiB/s, fertig.
Löse Unterschiede auf: 100% (3735/3735), fertig.
Klone nach '/home/tobefree/software/gwenview-plugin-jpegxl/jpeg-xl/third_party/lodepng' ...
remote: Enumerating objects: 7, done.        
remote: Counting objects: 100% (7/7), done.        
remote: Compressing objects: 100% (7/7), done.        
remote: Total 2610 (delta 0), reused 1 (delta 0), pack-reused 2603        
Empfange Objekte: 100% (2610/2610), 1.60 MiB | 9.26 MiB/s, fertig.
Löse Unterschiede auf: 100% (1095/1095), fertig.
Klone nach '/home/tobefree/software/gwenview-plugin-jpegxl/jpeg-xl/third_party/sjpeg' ...
remote: Enumerating objects: 37, done.        
remote: Counting objects: 100% (37/37), done.        
remote: Compressing objects: 100% (31/31), done.        
remote: Total 868 (delta 12), reused 18 (delta 6), pack-reused 831        
Empfange Objekte: 100% (868/868), 2.63 MiB | 13.75 MiB/s, fertig.
Löse Unterschiede auf: 100% (552/552), fertig.
Klone nach '/home/tobefree/software/gwenview-plugin-jpegxl/jpeg-xl/third_party/skcms' ...
remote: Finding sources: 100% (4573/4573)           
remote: Total 4573 (delta 2083), reused 4573 (delta 2083)        
Empfange Objekte: 100% (4573/4573), 12.84 MiB | 11.15 MiB/s, fertig.
Löse Unterschiede auf: 100% (2083/2083), fertig.
Klone nach '/home/tobefree/software/gwenview-plugin-jpegxl/jpeg-xl/third_party/vmaf' ...
remote: Enumerating objects: 60, done.        
remote: Counting objects: 100% (60/60), done.        
remote: Compressing objects: 100% (48/48), done.        
remote: Total 15196 (delta 33), reused 21 (delta 12), pack-reused 15136        
Empfange Objekte: 100% (15196/15196), 77.93 MiB | 9.36 MiB/s, fertig.
Löse Unterschiede auf: 100% (10797/10797), fertig.
Submodul-Pfad: 'third_party/IQA-optimization': '9a0d1d767d5237775aafa278a9929fbe88a07a48' ausgecheckt
Submodul-Pfad: 'third_party/brotli': '35ef5c554d888bef217d449346067de05e269b30' ausgecheckt
Submodul 'research/esaxx' (https://github.com/hillbig/esaxx) für Pfad 'third_party/brotli/research/esaxx' in die Konfiguration eingetragen.
Submodul 'research/libdivsufsort' (https://github.com/y-256/libdivsufsort.git) für Pfad 'third_party/brotli/research/libdivsufsort' in die Konfiguration eingetragen.
Klone nach '/home/tobefree/software/gwenview-plugin-jpegxl/jpeg-xl/third_party/brotli/research/esaxx' ...
remote: Enumerating objects: 3, done.        
remote: Counting objects: 100% (3/3), done.        
remote: Compressing objects: 100% (3/3), done.        
remote: Total 10 (delta 1), reused 0 (delta 0), pack-reused 7        
Empfange Objekte: 100% (10/10), 95.99 KiB | 2.09 MiB/s, fertig.
Löse Unterschiede auf: 100% (1/1), fertig.
Klone nach '/home/tobefree/software/gwenview-plugin-jpegxl/jpeg-xl/third_party/brotli/research/libdivsufsort' ...
remote: Enumerating objects: 1, done.        
remote: Counting objects: 100% (1/1), done.        
remote: Total 204 (delta 0), reused 1 (delta 0), pack-reused 203        
Empfange Objekte: 100% (204/204), 85.04 KiB | 2.18 MiB/s, fertig.
Löse Unterschiede auf: 100% (127/127), fertig.
Submodul-Pfad: 'third_party/brotli/research/esaxx': 'ca7cb332011ec37a8436487f210f396b84bd8273' ausgecheckt
Submodul-Pfad: 'third_party/brotli/research/libdivsufsort': '5f60d6f026c30fb4ac296f696b3c8b0eb71bd428' ausgecheckt
Submodul-Pfad: 'third_party/difftest_ng': '3abc573d8bc03275d0f8e588afd53499cfd0f795' ausgecheckt
Submodul-Pfad: 'third_party/googletest': '0ea2d8f8fa1601abb9ce713b7414e7b86f90bc61' ausgecheckt
Submodul-Pfad: 'third_party/highway': '946a1b40233438a1b0363598a6deaa1628a01003' ausgecheckt
Submodul-Pfad: 'third_party/lcms': '65c63bf549d78253c14b30b3d62cb668bbbe612c' ausgecheckt
Submodul-Pfad: 'third_party/lodepng': '48e5364ef48ec2408f44c727657ac1b6703185f8' ausgecheckt
Submodul-Pfad: 'third_party/sjpeg': '868ab558fad70fcbe8863ba4e85179eeb81cc840' ausgecheckt
Submodul-Pfad: 'third_party/skcms': '64374756e03700d649f897dbd98c95e78c30c7da' ausgecheckt
Submodul-Pfad: 'third_party/vmaf': '6c3ca8faff9cac3679acafb134892b23cceb486a' ausgecheckt
tobefree@tobefree-linux:~/software/gwenview-plugin-jpegxl$ cd jpeg-xl
mkdir build
cd build
tobefree@tobefree-linux:~/software/gwenview-plugin-jpegxl/jpeg-xl/build$ cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr -DJPEGXL_ENABLE_PLUGINS=ON -DBUILD_TESTING=OFF -DJPEGXL_WARNINGS_AS_ERRORS=OFF -DJPEGXL_ENABLE_SJPEG=OFF ..
make
-- The C compiler identification is GNU 10.2.1
-- The CXX compiler identification is GNU 10.2.1
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Performing Test JPEGXL_EMSCRIPTEN
-- Performing Test JPEGXL_EMSCRIPTEN - Failed
-- CMAKE_SYSTEM_PROCESSOR is x86_64
-- Performing Test CXX_FUZZERS_SUPPORTED
-- Performing Test CXX_FUZZERS_SUPPORTED - Failed
-- Performing Test CXX_CONSTRUCTOR_ALIASES_SUPPORTED
-- Performing Test CXX_CONSTRUCTOR_ALIASES_SUPPORTED - Failed
-- Found PkgConfig: /usr/bin/pkg-config (found version "0.29.2") 
-- tcmalloc version  -- tcmalloc 2.8.0 disabled due to https://github.com/gperftools/gperftools/issues/1204
-- Compiled IDs C:GNU, C++:GNU
-- Performing Test HWY_EMSCRIPTEN
-- Performing Test HWY_EMSCRIPTEN - Failed
-- Performing Test BROTLI_EMSCRIPTEN
-- Performing Test BROTLI_EMSCRIPTEN - Failed
-- Compiler is not EMSCRIPTEN
-- Looking for log2
-- Looking for log2 - not found
-- Looking for log2
-- Looking for log2 - found
-- Performing Test CXX_WPSABI_SUPPORTED
-- Performing Test CXX_WPSABI_SUPPORTED - Success
-- Looking for pthread.h
-- Looking for pthread.h - found
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Failed
-- Check if compiler accepts -pthread
-- Check if compiler accepts -pthread - yes
-- Found Threads: TRUE  
-- Performing Test COMPILER_HAS_HIDDEN_VISIBILITY
-- Performing Test COMPILER_HAS_HIDDEN_VISIBILITY - Success
-- Performing Test COMPILER_HAS_HIDDEN_INLINE_VISIBILITY
-- Performing Test COMPILER_HAS_HIDDEN_INLINE_VISIBILITY - Success
-- Performing Test COMPILER_HAS_DEPRECATED_ATTR
-- Performing Test COMPILER_HAS_DEPRECATED_ATTR - Success
-- Found GIF: /usr/lib/x86_64-linux-gnu/libgif.so (found suitable version "5.1.9", minimum required is "5") 
-- Found JPEG: /usr/lib/x86_64-linux-gnu/libjpeg.so (found version "80") 
-- Found ZLIB: /usr/lib/x86_64-linux-gnu/libz.so (found version "1.2.11") 
-- Found PNG: /usr/lib/x86_64-linux-gnu/libpng.so (found version "1.6.37") 
-- Checking for module 'OpenEXR'
--   Found OpenEXR, version 2.5.4
-- Could NOT find Doxygen (missing: DOXYGEN_EXECUTABLE) 
-- Found Python: /usr/bin/python3.9 (found version "3.9.2") found components: Interpreter 
-- Checking for module 'gdk-pixbuf-2.0>=2.38'
--   Found gdk-pixbuf-2.0, version 2.42.2
-- Checking for modules 'gimp-2.0>=2.10;gimpui-2.0>=2.10'
--   Found gimp-2.0, version 2.10.22
--   Found gimpui-2.0, version 2.10.22
-- Checking for module 'libwebp'
--   Found libwebp, version 0.6.1
-- Checking for module 'libavif'
--   No package 'libavif' found
-- Configuring done
-- Generating done
-- Build files have been written to: /home/tobefree/software/gwenview-plugin-jpegxl/jpeg-xl/build
Scanning dependencies of target manpages
[  1%] Generating cjxl.1
[  1%] Generating djxl.1
[  1%] Built target manpages
Scanning dependencies of target skcms
[  1%] Building CXX object third_party/CMakeFiles/skcms.dir/skcms/skcms.cc.o
[  2%] Linking CXX static library libskcms.a
[  2%] Built target skcms
Scanning dependencies of target lodepng
[  3%] Building CXX object third_party/CMakeFiles/lodepng.dir/lodepng/lodepng.cpp.o
[  3%] Linking CXX static library liblodepng.a
[  3%] Built target lodepng
Scanning dependencies of target hwy_list_targets
[  4%] Building CXX object third_party/highway/CMakeFiles/hwy_list_targets.dir/hwy/tests/list_targets.cc.o
[  4%] Linking CXX executable hwy_list_targets
[  4%] Built target hwy_list_targets
Scanning dependencies of target hwy
[  5%] Building CXX object third_party/highway/CMakeFiles/hwy.dir/contrib/image/image.cc.o
[  5%] Building CXX object third_party/highway/CMakeFiles/hwy.dir/hwy/aligned_allocator.cc.o
[  5%] Building CXX object third_party/highway/CMakeFiles/hwy.dir/hwy/nanobenchmark.cc.o
[  6%] Building CXX object third_party/highway/CMakeFiles/hwy.dir/hwy/targets.cc.o
[  6%] Linking CXX static library libhwy.a
Compiled HWY_TARGETS: AVX3 AVX2 SSE4 Scalar
HWY_BASELINE_TARGETS: Scalar
[  6%] Built target hwy
Scanning dependencies of target hwy_benchmark
[  7%] Building CXX object third_party/highway/CMakeFiles/hwy_benchmark.dir/hwy/examples/benchmark.cc.o
[  7%] Building CXX object third_party/highway/CMakeFiles/hwy_benchmark.dir/hwy/nanobenchmark.cc.o
[  7%] Linking CXX executable examples/hwy_benchmark
[  7%] Built target hwy_benchmark
Scanning dependencies of target skeleton_static
[  7%] Building CXX object third_party/highway/CMakeFiles/skeleton_static.dir/hwy/examples/skeleton_static_main.cc.o
[  9%] Linking CXX executable examples/skeleton_static
[  9%] Built target skeleton_static
Scanning dependencies of target skeleton
[  9%] Building CXX object third_party/highway/CMakeFiles/skeleton.dir/hwy/examples/skeleton_main.cc.o
[  9%] Building CXX object third_party/highway/CMakeFiles/skeleton.dir/hwy/examples/skeleton.cc.o
[ 10%] Linking CXX executable examples/skeleton
[ 10%] Built target skeleton
Scanning dependencies of target jxl_dec-obj
[ 11%] Building CXX object lib/CMakeFiles/jxl_dec-obj.dir/jxl/ac_strategy.cc.o
[ 11%] Building CXX object lib/CMakeFiles/jxl_dec-obj.dir/jxl/alpha.cc.o
[ 12%] Building CXX object lib/CMakeFiles/jxl_dec-obj.dir/jxl/ans_common.cc.o
[ 12%] Building CXX object lib/CMakeFiles/jxl_dec-obj.dir/jxl/aux_out.cc.o
[ 12%] Building CXX object lib/CMakeFiles/jxl_dec-obj.dir/jxl/base/cache_aligned.cc.o
[ 13%] Building CXX object lib/CMakeFiles/jxl_dec-obj.dir/jxl/base/data_parallel.cc.o
[ 13%] Building CXX object lib/CMakeFiles/jxl_dec-obj.dir/jxl/base/descriptive_statistics.cc.o
[ 14%] Building CXX object lib/CMakeFiles/jxl_dec-obj.dir/jxl/base/padded_bytes.cc.o
[ 14%] Building CXX object lib/CMakeFiles/jxl_dec-obj.dir/jxl/base/status.cc.o
[ 14%] Building CXX object lib/CMakeFiles/jxl_dec-obj.dir/jxl/base/time.cc.o
[ 15%] Building CXX object lib/CMakeFiles/jxl_dec-obj.dir/jxl/blending.cc.o
[ 15%] Building CXX object lib/CMakeFiles/jxl_dec-obj.dir/jxl/chroma_from_luma.cc.o
[ 17%] Building CXX object lib/CMakeFiles/jxl_dec-obj.dir/jxl/coeff_order.cc.o
[ 17%] Building CXX object lib/CMakeFiles/jxl_dec-obj.dir/jxl/color_encoding_internal.cc.o
[ 17%] Building CXX object lib/CMakeFiles/jxl_dec-obj.dir/jxl/color_management.cc.o
[ 18%] Building CXX object lib/CMakeFiles/jxl_dec-obj.dir/jxl/compressed_dc.cc.o
[ 18%] Building CXX object lib/CMakeFiles/jxl_dec-obj.dir/jxl/convolve.cc.o
[ 19%] Building CXX object lib/CMakeFiles/jxl_dec-obj.dir/jxl/dct_scales.cc.o
[ 19%] Building CXX object lib/CMakeFiles/jxl_dec-obj.dir/jxl/dec_ans.cc.o
[ 19%] Building CXX object lib/CMakeFiles/jxl_dec-obj.dir/jxl/dec_context_map.cc.o
[ 20%] Building CXX object lib/CMakeFiles/jxl_dec-obj.dir/jxl/dec_external_image.cc.o
[ 20%] Building CXX object lib/CMakeFiles/jxl_dec-obj.dir/jxl/dec_frame.cc.o
[ 21%] Building CXX object lib/CMakeFiles/jxl_dec-obj.dir/jxl/dec_group.cc.o
In file included from /home/tobefree/software/gwenview-plugin-jpegxl/jpeg-xl/lib/jxl/chroma_from_luma.h:32,
                 from /home/tobefree/software/gwenview-plugin-jpegxl/jpeg-xl/lib/jxl/dec_group.h:27,
                 from /home/tobefree/software/gwenview-plugin-jpegxl/jpeg-xl/lib/jxl/dec_group.cc:15:
/home/tobefree/software/gwenview-plugin-jpegxl/jpeg-xl/lib/jxl/dec_ans.h: In function ‘jxl::Status jxl::DecodeGroup(jxl::BitReader* __restrict__*, size_t, size_t, jxl::PassesDecoderState*, jxl::GroupDecCache*, size_t, jxl::ImageBundle*, size_t, bool, bool)’:
/home/tobefree/software/gwenview-plugin-jpegxl/jpeg-xl/lib/jxl/dec_ans.h:158:7: warning: ‘<anonymous>.jxl::ANSSymbolReader::log_alpha_size_’ may be used uninitialized in this function [-Wmaybe-uninitialized]
  158 | class ANSSymbolReader {
      |       ^~~~~~~~~~~~~~~
/home/tobefree/software/gwenview-plugin-jpegxl/jpeg-xl/lib/jxl/dec_ans.h:158:7: warning: ‘<anonymous>.jxl::ANSSymbolReader::log_entry_size_’ may be used uninitialized in this function [-Wmaybe-uninitialized]
/home/tobefree/software/gwenview-plugin-jpegxl/jpeg-xl/lib/jxl/dec_ans.h:158:7: warning: ‘<anonymous>.jxl::ANSSymbolReader::entry_size_minus_1_’ may be used uninitialized in this function [-Wmaybe-uninitialized]
/home/tobefree/software/gwenview-plugin-jpegxl/jpeg-xl/lib/jxl/dec_ans.h:158:7: warning: ‘<anonymous>.jxl::ANSSymbolReader::num_special_distances_’ may be used uninitialized in this function [-Wmaybe-uninitialized]
/home/tobefree/software/gwenview-plugin-jpegxl/jpeg-xl/lib/jxl/dec_ans.h:158:7: warning: ‘*((void*)&<anonymous> +104)’ may be used uninitialized in this function [-Wmaybe-uninitialized]
[ 21%] Building CXX object lib/CMakeFiles/jxl_dec-obj.dir/jxl/dec_group_border.cc.o
[ 21%] Building CXX object lib/CMakeFiles/jxl_dec-obj.dir/jxl/dec_huffman.cc.o
[ 22%] Building CXX object lib/CMakeFiles/jxl_dec-obj.dir/jxl/dec_modular.cc.o
[ 22%] Building CXX object lib/CMakeFiles/jxl_dec-obj.dir/jxl/dec_noise.cc.o
[ 23%] Building CXX object lib/CMakeFiles/jxl_dec-obj.dir/jxl/dec_patch_dictionary.cc.o
[ 23%] Building CXX object lib/CMakeFiles/jxl_dec-obj.dir/jxl/dec_reconstruct.cc.o
[ 23%] Building CXX object lib/CMakeFiles/jxl_dec-obj.dir/jxl/dec_transforms.cc.o
[ 25%] Building CXX object lib/CMakeFiles/jxl_dec-obj.dir/jxl/dec_upsample.cc.o
[ 25%] Building CXX object lib/CMakeFiles/jxl_dec-obj.dir/jxl/dec_xyb.cc.o
[ 26%] Building CXX object lib/CMakeFiles/jxl_dec-obj.dir/jxl/decode.cc.o
[ 26%] Building CXX object lib/CMakeFiles/jxl_dec-obj.dir/jxl/enc_bit_writer.cc.o
[ 26%] Building CXX object lib/CMakeFiles/jxl_dec-obj.dir/jxl/entropy_coder.cc.o
[ 27%] Building CXX object lib/CMakeFiles/jxl_dec-obj.dir/jxl/epf.cc.o
[ 27%] Building CXX object lib/CMakeFiles/jxl_dec-obj.dir/jxl/fields.cc.o
[ 28%] Building CXX object lib/CMakeFiles/jxl_dec-obj.dir/jxl/filters.cc.o
[ 28%] Building CXX object lib/CMakeFiles/jxl_dec-obj.dir/jxl/frame_header.cc.o
[ 28%] Building CXX object lib/CMakeFiles/jxl_dec-obj.dir/jxl/gaborish.cc.o
[ 29%] Building CXX object lib/CMakeFiles/jxl_dec-obj.dir/jxl/gauss_blur.cc.o
[ 29%] Building CXX object lib/CMakeFiles/jxl_dec-obj.dir/jxl/headers.cc.o
[ 30%] Building CXX object lib/CMakeFiles/jxl_dec-obj.dir/jxl/huffman_table.cc.o
[ 30%] Building CXX object lib/CMakeFiles/jxl_dec-obj.dir/jxl/huffman_tree.cc.o
[ 30%] Building CXX object lib/CMakeFiles/jxl_dec-obj.dir/jxl/icc_codec.cc.o
[ 31%] Building CXX object lib/CMakeFiles/jxl_dec-obj.dir/jxl/icc_codec_common.cc.o
[ 31%] Building CXX object lib/CMakeFiles/jxl_dec-obj.dir/jxl/image.cc.o
[ 32%] Building CXX object lib/CMakeFiles/jxl_dec-obj.dir/jxl/image_bundle.cc.o
[ 32%] Building CXX object lib/CMakeFiles/jxl_dec-obj.dir/jxl/image_metadata.cc.o
[ 32%] Building CXX object lib/CMakeFiles/jxl_dec-obj.dir/jxl/jpeg/dec_jpeg_data.cc.o
[ 34%] Building CXX object lib/CMakeFiles/jxl_dec-obj.dir/jxl/jpeg/dec_jpeg_data_writer.cc.o
[ 34%] Building CXX object lib/CMakeFiles/jxl_dec-obj.dir/jxl/jpeg/jpeg_data.cc.o
[ 35%] Building CXX object lib/CMakeFiles/jxl_dec-obj.dir/jxl/linalg.cc.o
[ 35%] Building CXX object lib/CMakeFiles/jxl_dec-obj.dir/jxl/loop_filter.cc.o
[ 35%] Building CXX object lib/CMakeFiles/jxl_dec-obj.dir/jxl/luminance.cc.o
[ 36%] Building CXX object lib/CMakeFiles/jxl_dec-obj.dir/jxl/memory_manager_internal.cc.o
[ 36%] Building CXX object lib/CMakeFiles/jxl_dec-obj.dir/jxl/modular/encoding/encoding.cc.o
[ 37%] Building CXX object lib/CMakeFiles/jxl_dec-obj.dir/jxl/modular/encoding/ma.cc.o
[ 37%] Building CXX object lib/CMakeFiles/jxl_dec-obj.dir/jxl/modular/modular_image.cc.o
[ 37%] Building CXX object lib/CMakeFiles/jxl_dec-obj.dir/jxl/modular/transform/transform.cc.o
[ 38%] Building CXX object lib/CMakeFiles/jxl_dec-obj.dir/jxl/opsin_params.cc.o
[ 38%] Building CXX object lib/CMakeFiles/jxl_dec-obj.dir/jxl/optimize.cc.o
[ 39%] Building CXX object lib/CMakeFiles/jxl_dec-obj.dir/jxl/passes_state.cc.o
[ 39%] Building CXX object lib/CMakeFiles/jxl_dec-obj.dir/jxl/progressive_split.cc.o
[ 39%] Building CXX object lib/CMakeFiles/jxl_dec-obj.dir/jxl/quant_weights.cc.o
[ 40%] Building CXX object lib/CMakeFiles/jxl_dec-obj.dir/jxl/quantizer.cc.o
[ 40%] Building CXX object lib/CMakeFiles/jxl_dec-obj.dir/jxl/splines.cc.o
[ 42%] Building CXX object lib/CMakeFiles/jxl_dec-obj.dir/jxl/toc.cc.o
[ 42%] Built target jxl_dec-obj
Scanning dependencies of target jxl_threads-static
[ 42%] Building CXX object lib/CMakeFiles/jxl_threads-static.dir/threads/thread_parallel_runner.cc.o
[ 43%] Building CXX object lib/CMakeFiles/jxl_threads-static.dir/threads/thread_parallel_runner_internal.cc.o
[ 43%] Linking CXX static library libjxl_threads.a
[ 43%] Built target jxl_threads-static
Scanning dependencies of target jxl_enc-obj
[ 43%] Building CXX object lib/CMakeFiles/jxl_enc-obj.dir/jxl/butteraugli/butteraugli.cc.o
[ 44%] Building CXX object lib/CMakeFiles/jxl_enc-obj.dir/jxl/butteraugli_wrapper.cc.o
[ 44%] Building CXX object lib/CMakeFiles/jxl_enc-obj.dir/jxl/dec_file.cc.o
[ 45%] Building CXX object lib/CMakeFiles/jxl_enc-obj.dir/jxl/enc_ac_strategy.cc.o
[ 45%] Building CXX object lib/CMakeFiles/jxl_enc-obj.dir/jxl/enc_adaptive_quantization.cc.o
[ 45%] Building CXX object lib/CMakeFiles/jxl_enc-obj.dir/jxl/enc_ans.cc.o
[ 46%] Building CXX object lib/CMakeFiles/jxl_enc-obj.dir/jxl/enc_ar_control_field.cc.o
[ 46%] Building CXX object lib/CMakeFiles/jxl_enc-obj.dir/jxl/enc_butteraugli_comparator.cc.o
[ 47%] Building CXX object lib/CMakeFiles/jxl_enc-obj.dir/jxl/enc_butteraugli_pnorm.cc.o
[ 47%] Building CXX object lib/CMakeFiles/jxl_enc-obj.dir/jxl/enc_cache.cc.o
[ 47%] Building CXX object lib/CMakeFiles/jxl_enc-obj.dir/jxl/enc_chroma_from_luma.cc.o
[ 48%] Building CXX object lib/CMakeFiles/jxl_enc-obj.dir/jxl/enc_cluster.cc.o
[ 48%] Building CXX object lib/CMakeFiles/jxl_enc-obj.dir/jxl/enc_coeff_order.cc.o
[ 50%] Building CXX object lib/CMakeFiles/jxl_enc-obj.dir/jxl/enc_comparator.cc.o
[ 50%] Building CXX object lib/CMakeFiles/jxl_enc-obj.dir/jxl/enc_context_map.cc.o
[ 50%] Building CXX object lib/CMakeFiles/jxl_enc-obj.dir/jxl/enc_detect_dots.cc.o
[ 51%] Building CXX object lib/CMakeFiles/jxl_enc-obj.dir/jxl/enc_dot_dictionary.cc.o
[ 51%] Building CXX object lib/CMakeFiles/jxl_enc-obj.dir/jxl/enc_external_image.cc.o
[ 52%] Building CXX object lib/CMakeFiles/jxl_enc-obj.dir/jxl/enc_fast_heuristics.cc.o
[ 52%] Building CXX object lib/CMakeFiles/jxl_enc-obj.dir/jxl/enc_file.cc.o
[ 52%] Building CXX object lib/CMakeFiles/jxl_enc-obj.dir/jxl/enc_frame.cc.o
[ 53%] Building CXX object lib/CMakeFiles/jxl_enc-obj.dir/jxl/enc_group.cc.o
[ 53%] Building CXX object lib/CMakeFiles/jxl_enc-obj.dir/jxl/enc_heuristics.cc.o
[ 54%] Building CXX object lib/CMakeFiles/jxl_enc-obj.dir/jxl/enc_huffman.cc.o
[ 54%] Building CXX object lib/CMakeFiles/jxl_enc-obj.dir/jxl/enc_icc_codec.cc.o
[ 54%] Building CXX object lib/CMakeFiles/jxl_enc-obj.dir/jxl/enc_modular.cc.o
[ 55%] Building CXX object lib/CMakeFiles/jxl_enc-obj.dir/jxl/enc_noise.cc.o
[ 55%] Building CXX object lib/CMakeFiles/jxl_enc-obj.dir/jxl/enc_patch_dictionary.cc.o
[ 56%] Building CXX object lib/CMakeFiles/jxl_enc-obj.dir/jxl/enc_quant_weights.cc.o
[ 56%] Building CXX object lib/CMakeFiles/jxl_enc-obj.dir/jxl/enc_splines.cc.o
[ 56%] Building CXX object lib/CMakeFiles/jxl_enc-obj.dir/jxl/enc_toc.cc.o
[ 57%] Building CXX object lib/CMakeFiles/jxl_enc-obj.dir/jxl/enc_transforms.cc.o
[ 57%] Building CXX object lib/CMakeFiles/jxl_enc-obj.dir/jxl/enc_xyb.cc.o
[ 59%] Building CXX object lib/CMakeFiles/jxl_enc-obj.dir/jxl/encode.cc.o
[ 59%] Building CXX object lib/CMakeFiles/jxl_enc-obj.dir/jxl/jpeg/enc_jpeg_data.cc.o
[ 59%] Building CXX object lib/CMakeFiles/jxl_enc-obj.dir/jxl/jpeg/enc_jpeg_data_reader.cc.o
[ 60%] Building CXX object lib/CMakeFiles/jxl_enc-obj.dir/jxl/jpeg/enc_jpeg_huffman_decode.cc.o
[ 60%] Building CXX object lib/CMakeFiles/jxl_enc-obj.dir/jxl/modular/encoding/enc_encoding.cc.o
[ 60%] Built target jxl_enc-obj
Scanning dependencies of target jxl_threads
[ 60%] Building CXX object lib/CMakeFiles/jxl_threads.dir/threads/thread_parallel_runner.cc.o
[ 60%] Building CXX object lib/CMakeFiles/jxl_threads.dir/threads/thread_parallel_runner_internal.cc.o
[ 61%] Linking CXX shared library ../libjxl_threads.so
[ 61%] Built target jxl_threads
Scanning dependencies of target brotlicommon-static
[ 62%] Building C object third_party/brotli/CMakeFiles/brotlicommon-static.dir/c/common/dictionary.c.o
[ 62%] Building C object third_party/brotli/CMakeFiles/brotlicommon-static.dir/c/common/transform.c.o
[ 63%] Linking C static library libbrotlicommon-static.a
[ 63%] Built target brotlicommon-static
Scanning dependencies of target brotlidec-static
[ 63%] Building C object third_party/brotli/CMakeFiles/brotlidec-static.dir/c/dec/bit_reader.c.o
[ 63%] Building C object third_party/brotli/CMakeFiles/brotlidec-static.dir/c/dec/decode.c.o
[ 64%] Building C object third_party/brotli/CMakeFiles/brotlidec-static.dir/c/dec/huffman.c.o
[ 64%] Building C object third_party/brotli/CMakeFiles/brotlidec-static.dir/c/dec/state.c.o
[ 65%] Linking C static library libbrotlidec-static.a
[ 65%] Built target brotlidec-static
Scanning dependencies of target brotlienc-static
[ 67%] Building C object third_party/brotli/CMakeFiles/brotlienc-static.dir/c/enc/backward_references.c.o
[ 67%] Building C object third_party/brotli/CMakeFiles/brotlienc-static.dir/c/enc/backward_references_hq.c.o
[ 67%] Building C object third_party/brotli/CMakeFiles/brotlienc-static.dir/c/enc/bit_cost.c.o
[ 68%] Building C object third_party/brotli/CMakeFiles/brotlienc-static.dir/c/enc/block_splitter.c.o
[ 68%] Building C object third_party/brotli/CMakeFiles/brotlienc-static.dir/c/enc/brotli_bit_stream.c.o
[ 69%] Building C object third_party/brotli/CMakeFiles/brotlienc-static.dir/c/enc/cluster.c.o
[ 69%] Building C object third_party/brotli/CMakeFiles/brotlienc-static.dir/c/enc/compress_fragment.c.o
[ 69%] Building C object third_party/brotli/CMakeFiles/brotlienc-static.dir/c/enc/compress_fragment_two_pass.c.o
[ 70%] Building C object third_party/brotli/CMakeFiles/brotlienc-static.dir/c/enc/dictionary_hash.c.o
[ 70%] Building C object third_party/brotli/CMakeFiles/brotlienc-static.dir/c/enc/encode.c.o
[ 71%] Building C object third_party/brotli/CMakeFiles/brotlienc-static.dir/c/enc/encoder_dict.c.o
[ 71%] Building C object third_party/brotli/CMakeFiles/brotlienc-static.dir/c/enc/entropy_encode.c.o
[ 71%] Building C object third_party/brotli/CMakeFiles/brotlienc-static.dir/c/enc/histogram.c.o
[ 72%] Building C object third_party/brotli/CMakeFiles/brotlienc-static.dir/c/enc/literal_cost.c.o
[ 72%] Building C object third_party/brotli/CMakeFiles/brotlienc-static.dir/c/enc/memory.c.o
[ 73%] Building C object third_party/brotli/CMakeFiles/brotlienc-static.dir/c/enc/metablock.c.o
[ 73%] Building C object third_party/brotli/CMakeFiles/brotlienc-static.dir/c/enc/static_dict.c.o
[ 73%] Building C object third_party/brotli/CMakeFiles/brotlienc-static.dir/c/enc/utf8_util.c.o
[ 75%] Linking C static library libbrotlienc-static.a
[ 75%] Built target brotlienc-static
Scanning dependencies of target jxl_dec-static
[ 75%] Linking CXX static library libjxl_dec.a
[ 75%] Built target jxl_dec-static
Scanning dependencies of target jxl-static
[ 75%] Linking CXX static library libjxl.a
[ 75%] Built target jxl-static
Scanning dependencies of target jxl_extras-static
[ 76%] Building CXX object lib/CMakeFiles/jxl_extras-static.dir/extras/codec.cc.o
[ 76%] Building CXX object lib/CMakeFiles/jxl_extras-static.dir/extras/codec_pgx.cc.o
[ 76%] Building CXX object lib/CMakeFiles/jxl_extras-static.dir/extras/codec_png.cc.o
[ 77%] Building CXX object lib/CMakeFiles/jxl_extras-static.dir/extras/codec_pnm.cc.o
[ 77%] Building CXX object lib/CMakeFiles/jxl_extras-static.dir/extras/codec_psd.cc.o
[ 78%] Building CXX object lib/CMakeFiles/jxl_extras-static.dir/extras/tone_mapping.cc.o
[ 78%] Building CXX object lib/CMakeFiles/jxl_extras-static.dir/extras/codec_gif.cc.o
[ 78%] Building CXX object lib/CMakeFiles/jxl_extras-static.dir/extras/codec_jpg.cc.o
[ 79%] Building CXX object lib/CMakeFiles/jxl_extras-static.dir/extras/codec_apng.cc.o
[ 79%] Building CXX object lib/CMakeFiles/jxl_extras-static.dir/extras/codec_exr.cc.o
[ 80%] Linking CXX static library libjxl_extras-static.a
[ 80%] Built target jxl_extras-static
Scanning dependencies of target jxl_dec
[ 80%] Linking CXX shared library ../libjxl_dec.so
[ 80%] Built target jxl_dec
Scanning dependencies of target jxl
[ 81%] Linking CXX shared library ../libjxl.so
[ 81%] Built target jxl
Scanning dependencies of target encode_oneshot
[ 81%] Building CXX object examples/CMakeFiles/encode_oneshot.dir/encode_oneshot.cc.o
[ 82%] Linking CXX executable encode_oneshot
[ 82%] Built target encode_oneshot
Scanning dependencies of target jxlinfo
[ 82%] Building C object examples/CMakeFiles/jxlinfo.dir/jxlinfo.c.o
[ 82%] Linking C executable jxlinfo
[ 82%] Built target jxlinfo
Scanning dependencies of target decode_oneshot
[ 84%] Building CXX object examples/CMakeFiles/decode_oneshot.dir/decode_oneshot.cc.o
[ 84%] Linking CXX executable decode_oneshot
[ 84%] Built target decode_oneshot
Scanning dependencies of target pixbufloader-jxl
[ 84%] Building C object plugins/gdk-pixbuf/CMakeFiles/pixbufloader-jxl.dir/pixbufloader-jxl.c.o
[ 85%] Linking CXX shared library libpixbufloader-jxl.so
[ 85%] Built target pixbufloader-jxl
Scanning dependencies of target file-jxl
[ 85%] Building CXX object plugins/gimp/CMakeFiles/file-jxl.dir/file-jxl-load.cc.o
[ 85%] Building CXX object plugins/gimp/CMakeFiles/file-jxl.dir/file-jxl-save.cc.o
[ 86%] Building CXX object plugins/gimp/CMakeFiles/file-jxl.dir/file-jxl.cc.o
[ 86%] Linking CXX executable file-jxl
[ 86%] Built target file-jxl
Scanning dependencies of target box
[ 86%] Building CXX object tools/box/CMakeFiles/box.dir/box.cc.o
[ 86%] Linking CXX static library libbox.a
[ 86%] Built target box
Scanning dependencies of target jxl_tool
[ 86%] Building CXX object tools/CMakeFiles/jxl_tool.dir/cmdline.cc.o
[ 87%] Building CXX object tools/CMakeFiles/jxl_tool.dir/cpu/cpu.cc.o
[ 87%] Building CXX object tools/CMakeFiles/jxl_tool.dir/cpu/os_specific.cc.o
[ 88%] Linking CXX static library libjxl_tool.a
[ 88%] Built target jxl_tool
Scanning dependencies of target benchmark_xl
[ 88%] Building CXX object tools/CMakeFiles/benchmark_xl.dir/benchmark/benchmark_xl.cc.o
[ 88%] Building CXX object tools/CMakeFiles/benchmark_xl.dir/benchmark/benchmark_args.cc.o
[ 89%] Building CXX object tools/CMakeFiles/benchmark_xl.dir/benchmark/benchmark_codec.cc.o
[ 89%] Building CXX object tools/CMakeFiles/benchmark_xl.dir/benchmark/benchmark_file_io.cc.o
[ 90%] Building CXX object tools/CMakeFiles/benchmark_xl.dir/benchmark/benchmark_stats.cc.o
[ 90%] Building CXX object tools/CMakeFiles/benchmark_xl.dir/benchmark/benchmark_utils.cc.o
[ 90%] Building CXX object tools/CMakeFiles/benchmark_xl.dir/benchmark/benchmark_codec_custom.cc.o
[ 92%] Building CXX object tools/CMakeFiles/benchmark_xl.dir/benchmark/benchmark_codec_jxl.cc.o
[ 92%] Building CXX object tools/CMakeFiles/benchmark_xl.dir/benchmark/benchmark_codec_png.cc.o
[ 93%] Building CXX object tools/CMakeFiles/benchmark_xl.dir/codec_config.cc.o
[ 93%] Building CXX object tools/CMakeFiles/benchmark_xl.dir/speed_stats.cc.o
[ 93%] Building CXX object tools/CMakeFiles/benchmark_xl.dir/__/third_party/dirent.cc.o
[ 94%] Building CXX object tools/CMakeFiles/benchmark_xl.dir/benchmark/benchmark_codec_jpeg.cc.o
[ 94%] Building CXX object tools/CMakeFiles/benchmark_xl.dir/benchmark/benchmark_codec_webp.cc.o
[ 95%] Linking CXX executable benchmark_xl
[ 95%] Built target benchmark_xl
Scanning dependencies of target djxltool
[ 96%] Building CXX object tools/CMakeFiles/djxltool.dir/djxl.cc.o
[ 96%] Building CXX object tools/CMakeFiles/djxltool.dir/speed_stats.cc.o
[ 96%] Linking CXX static library libdjxltool.a
[ 96%] Built target djxltool
Scanning dependencies of target djxl
[ 96%] Building CXX object tools/CMakeFiles/djxl.dir/codec_config.cc.o
[ 97%] Building CXX object tools/CMakeFiles/djxl.dir/djxl_main.cc.o
[ 97%] Linking CXX executable djxl
[ 97%] Built target djxl
Scanning dependencies of target cjxltool
[ 97%] Building CXX object tools/CMakeFiles/cjxltool.dir/cjxl.cc.o
[ 97%] Building CXX object tools/CMakeFiles/cjxltool.dir/codec_config.cc.o
[ 98%] Building CXX object tools/CMakeFiles/cjxltool.dir/speed_stats.cc.o
[ 98%] Linking CXX static library libcjxltool.a
[ 98%] Built target cjxltool
Scanning dependencies of target cjxl
[ 98%] Building CXX object tools/CMakeFiles/cjxl.dir/cjxl_main.cc.o
[100%] Linking CXX executable cjxl
[100%] Built target cjxl
tobefree@tobefree-linux:~/software/gwenview-plugin-jpegxl/jpeg-xl/build$ sudo make install
[sudo] Passwort für tobefree: 
[  1%] Built target manpages
[  2%] Built target skcms
[  3%] Built target lodepng
[  4%] Built target hwy_list_targets
[  6%] Built target hwy
[  7%] Built target hwy_benchmark
[  9%] Built target skeleton_static
[ 10%] Built target skeleton
[ 42%] Built target jxl_dec-obj
[ 43%] Built target jxl_threads-static
[ 60%] Built target jxl_enc-obj
[ 61%] Built target jxl_threads
[ 63%] Built target brotlicommon-static
[ 65%] Built target brotlidec-static
[ 75%] Built target brotlienc-static
[ 75%] Built target jxl_dec-static
[ 75%] Built target jxl-static
[ 80%] Built target jxl_extras-static
[ 80%] Built target jxl_dec
[ 81%] Built target jxl
[ 82%] Built target encode_oneshot
[ 82%] Built target jxlinfo
[ 84%] Built target decode_oneshot
[ 85%] Built target pixbufloader-jxl
[ 86%] Built target file-jxl
[ 86%] Built target box
[ 88%] Built target jxl_tool
[ 95%] Built target benchmark_xl
[ 96%] Built target djxltool
[ 97%] Built target djxl
[ 98%] Built target cjxltool
[100%] Built target cjxl
Install the project...
-- Install configuration: "Release"
-- Installing: /usr/share/man/man1/cjxl.1
-- Installing: /usr/share/man/man1/djxl.1
-- Installing: /usr/lib/x86_64-linux-gnu/libhwy.a
-- Installing: /usr/include/contrib/image/image.h
-- Installing: /usr/include/contrib/math/math-inl.h
-- Installing: /usr/include/hwy/aligned_allocator.h
-- Installing: /usr/include/hwy/base.h
-- Installing: /usr/include/hwy/cache_control.h
-- Installing: /usr/include/hwy/foreach_target.h
-- Installing: /usr/include/hwy/highway.h
-- Installing: /usr/include/hwy/nanobenchmark.h
-- Installing: /usr/include/hwy/ops/arm_neon-inl.h
-- Installing: /usr/include/hwy/ops/scalar-inl.h
-- Installing: /usr/include/hwy/ops/set_macros-inl.h
-- Installing: /usr/include/hwy/ops/shared-inl.h
-- Installing: /usr/include/hwy/ops/wasm_128-inl.h
-- Installing: /usr/include/hwy/ops/x86_128-inl.h
-- Installing: /usr/include/hwy/ops/x86_256-inl.h
-- Installing: /usr/include/hwy/ops/x86_512-inl.h
-- Installing: /usr/include/hwy/targets.h
-- Installing: /usr/include/hwy/tests/test_util-inl.h
-- Installing: /usr/lib/x86_64-linux-gnu/pkgconfig/libhwy.pc
-- Installing: /usr/lib/x86_64-linux-gnu/pkgconfig/libhwy-test.pc
-- Installing: /usr/lib/x86_64-linux-gnu/libjxl.a
-- Installing: /usr/lib/x86_64-linux-gnu/libjxl_dec.a
-- Installing: /usr/lib/x86_64-linux-gnu/libjxl.so.0.3.7
-- Up-to-date: /usr/lib/x86_64-linux-gnu/libjxl.so.0
-- Up-to-date: /usr/lib/x86_64-linux-gnu/libjxl.so
-- Installing: /usr/lib/x86_64-linux-gnu/pkgconfig/libjxl.pc
-- Installing: /usr/lib/x86_64-linux-gnu/libjxl_threads.a
-- Installing: /usr/lib/x86_64-linux-gnu/libjxl_threads.so.0.3.7
-- Up-to-date: /usr/lib/x86_64-linux-gnu/libjxl_threads.so.0
-- Up-to-date: /usr/lib/x86_64-linux-gnu/libjxl_threads.so
-- Installing: /usr/lib/x86_64-linux-gnu/pkgconfig/libjxl_threads.pc
-- Up-to-date: /usr/include/jxl
-- Installing: /usr/include/jxl/butteraugli.h
-- Installing: /usr/include/jxl/butteraugli_cxx.h
-- Installing: /usr/include/jxl/codestream_header.h
-- Installing: /usr/include/jxl/color_encoding.h
-- Installing: /usr/include/jxl/decode.h
-- Installing: /usr/include/jxl/decode_cxx.h
-- Installing: /usr/include/jxl/encode.h
-- Installing: /usr/include/jxl/encode_cxx.h
-- Installing: /usr/include/jxl/memory_manager.h
-- Installing: /usr/include/jxl/parallel_runner.h
-- Installing: /usr/include/jxl/thread_parallel_runner.h
-- Installing: /usr/include/jxl/thread_parallel_runner_cxx.h
-- Installing: /usr/include/jxl/types.h
-- Up-to-date: /usr/include/jxl
-- Installing: /usr/include/jxl/jxl_export.h
-- Installing: /usr/include/jxl/jxl_threads_export.h
-- Installing: /usr/lib/x86_64-linux-gnu/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-jxl.so
-- Installing: /usr/share/thumbnailers/jxl.thumbnailer
-- Installing: /usr/lib/gimp/2.0/plug-ins/file-jxl/file-jxl
-- Installing: /usr/share/mime/packages/image-jxl.xml
-- Installing: /usr/bin/cjxl
-- Installing: /usr/bin/djxl
-- Installing: /usr/bin/benchmark_xl
tobefree@tobefree-linux:~/software/gwenview-plugin-jpegxl/jpeg-xl/build$ ls /usr/share/mime/packages/
bluedevil-mime.xml  freedesktop.org.xml  image-jxl.xml  kde5.xml  keepassxc.xml  kf5_network.xml  kpatience.xml  libreoffice.xml
tobefree@tobefree-linux:~/software/gwenview-plugin-jpegxl/jpeg-xl/build$ sudo update-mime-database /usr/share/mime/
tobefree@tobefree-linux:~/software/gwenview-plugin-jpegxl/jpeg-xl/build$ git clone --depth 1 https://github.com/novomesk/qt-jpegxl-image-plugin --recursive
Klone nach 'qt-jpegxl-image-plugin' ...
remote: Enumerating objects: 21, done.
remote: Counting objects: 100% (21/21), done.
remote: Compressing objects: 100% (20/20), done.
remote: Total 21 (delta 1), reused 10 (delta 0), pack-reused 0
Empfange Objekte: 100% (21/21), 96.63 KiB | 1.97 MiB/s, fertig.
Löse Unterschiede auf: 100% (1/1), fertig.
tobefree@tobefree-linux:~/software/gwenview-plugin-jpegxl/jpeg-xl/build$ cd qt-jpegxl-image-plugin
tobefree@tobefree-linux:~/software/gwenview-plugin-jpegxl/jpeg-xl/build/qt-jpegxl-image-plugin$ ./build_libqjpegxl_dynamic.sh
Info: creating stash file /home/tobefree/software/gwenview-plugin-jpegxl/jpeg-xl/build/qt-jpegxl-image-plugin/.qmake.stash
Project ERROR: No module claims plugin type 'imageformats'
qmake failed to produce Makefile

Installation & usage too hard for normal people

I feel like learning the windows console, qt, git, and installing 10gb of visual studio to use 2 of its components + GIT + QT for Windows + all of its requirements, just to be able to view JPEG XL files in the nomacs image viewer, is a bit too much

Compilation fails

Using the AUR package on Arch Linux, compilation fails with the following error

==> Starting build()...
Info: creating stash file /home/seadra/.cache/yay/qt-jpegxl-image-plugin-git/src/qt-jpegxl-image-plugin/.qmake.stash
g++ -c -pipe -D_FORTIFY_SOURCE=2 -march=native -mtune=native -O2 -pipe -fno-plt -std=c++1z -Wall -Wextra -Wvla -Wdate-time -Wshift-overflow=2 -Wduplicated-cond -Wno-stringop-overflow -Wno-format-overflow -fvisibility=hidden -fvisibility-inlines-hidden -fno-exceptions -D_REENTRANT -fPIC -DQT_NO_LINKED_LIST -DQT_DEPRECATED_WARNINGS -DQT_NO_NARROWING_CONVERSIONS_IN_CONNECT -DQT_NO_EXCEPTIONS -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -DQT_NO_DEBUG -DQT_PLUGIN -DQT_GUI_LIB -DQT_CORE_LIB -I. -I/usr/include/qt -I/usr/include/qt/QtGui -I/usr/include/qt/QtCore -I.moc -I/usr/lib/qt/mkspecs/linux-g++ -o .obj/qjpegxlhandler.o src/qjpegxlhandler.cpp
src/qjpegxlhandler.cpp: In member function ‘virtual bool QJpegXLHandler::write(const QImage&)’:
src/qjpegxlhandler.cpp:454:18: error: ‘JxlEncoderSetICCProfile’ was not declared in this scope; did you mean ‘JxlDecoderGetICCProfileSize’?
  454 |         status = JxlEncoderSetICCProfile(encoder, (const uint8_t *)iccprofile.constData(), iccprofile.size());
      |                  ^~~~~~~~~~~~~~~~~~~~~~~
      |                  JxlDecoderGetICCProfileSize
make: *** [Makefile:954: .obj/qjpegxlhandler.o] Error 1
Failed to build libqjpegxl.so
==> ERROR: A failure occurred in build().
    Aborting...
error making: qt-jpegxl-image-plugin-git

libjpeg-xl 0.3.7-1 is installed from AUR as well.

Decoded image is darker than results from djxl

I think I have a valid bug this time, as the .jxl decoded with the plugin (using nomacs) looks darker than the results from djxl and the original image.

  • lossless original (convert to png/ppm with imagemagick for cjxl)
  • JXL converted via cjxl -d 0.3, using v0.2.0
  • Decode to PNG using djxl (same version), and compare the original to the two different lossy decodes (plugin vs djxl); the grays in some areas look darker in the plugin while they look close to the original in the djxl decode.

Build error

Following building guide as for now results in this errors on plugin build

> ./build_libqjpegxl_dynamic.sh                               ~/Vault/build/qt-jpegxl-image-plugin(main)@arch
Info: creating stash file /home/zen/Vault/build/qt-jpegxl-image-plugin/.qmake.stash
g++ -c -pipe -O2 -std=c++1z -Wall -Wextra -Wvla -Wdate-time -Wshift-overflow=2 -Wduplicated-cond -Wno-stringop-overflow -Wno-format-overflow -fvisibility=hidden -fvisibility-inlines-hidden -fno-exceptions -D_REENTRANT -fPIC -DQT_NO_LINKED_LIST -DQT_DEPRECATED_WARNINGS -DQT_NO_NARROWING_CONVERSIONS_IN_CONNECT -DQT_NO_EXCEPTIONS -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -DQT_NO_DEBUG -DQT_PLUGIN -DQT_GUI_LIB -DQT_CORE_LIB -I. -I/usr/include/qt -I/usr/include/qt/QtGui -I/usr/include/qt/QtCore -I.moc -I/usr/lib/qt/mkspecs/linux-g++ -o .obj/qjpegxlhandler.o src/qjpegxlhandler.cpp
src/qjpegxlhandler.cpp: In member function ‘virtual bool QJpegXLHandler::write(const QImage&)’:
src/qjpegxlhandler.cpp:488:9: error: ‘JxlColorEncodingSetToSRGB’ was not declared in this scope; did you mean ‘JxlColorEncoding’?
  488 |         JxlColorEncodingSetToSRGB(&color_profile, JXL_FALSE);
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~
      |         JxlColorEncoding
src/qjpegxlhandler.cpp:530:17: error: ‘JxlBasicInfo’ {aka ‘struct JxlBasicInfo’} has no member named ‘num_color_channels’; did you mean ‘num_extra_channels’?
  530 |     output_info.num_color_channels = 3;
      |                 ^~~~~~~~~~~~~~~~~~
      |                 num_extra_channels
src/qjpegxlhandler.cpp:532:14: error: ‘JxlEncoderSetBasicInfo’ was not declared in this scope; did you mean ‘JxlDecoderGetBasicInfo’?
  532 |     status = JxlEncoderSetBasicInfo(encoder, &output_info);
      |              ^~~~~~~~~~~~~~~~~~~~~~
      |              JxlDecoderGetBasicInfo
src/qjpegxlhandler.cpp:540:14: error: ‘JxlEncoderSetColorEncoding’ was not declared in this scope
  540 |     status = JxlEncoderSetColorEncoding(encoder, &color_profile);
      |              ^~~~~~~~~~~~~~~~~~~~~~~~~~
make: *** [Makefile:712: .obj/qjpegxlhandler.o] Error 1
Failed to build libqjpegxl.so```

"/usr/share/kservices5/imagethumbnail.desktop" does not exist on KDE neon 5.26

Following the tutorial I have the .so built and installed but when going to edit the /usr/share/kservices5/imagethumbnail.desktop file it seems it no longer exists. Apt-file says the package that should contain this file is kio-extras-data but the newest version of that package (22.08.2) no longer has it, atleast on KDE neon.
So I'm at the point where jpegxl files will display in Gwenview and have thumbnails generated in Dolphin but only after changing the files extension to .webp, otherwise it refuses to load. Do you know an alternate way of registering the filetype?

OS Info:

Operating System: KDE neon 5.26
KDE Plasma Version: 5.26.2
KDE Frameworks Version: 5.99.0
Qt Version: 5.15.6

qjpegxl6.dll (Dec 19, 2023) appears to not work with YACReader Qt6

When placing qjpegxl.dll (Dec 19, 2023) into C:\Program Files\YACReader\imageformats\ - and using this build:
https://github.com/YACReader/yacreader/releases/download/9.14.1/YACReader-v9.14.1.2402053-winx64-7z.exe
Comics containing .jxl images open correctly.

When placing qjpegxl6.dll (Dec 19, 2023) into C:\Program Files\YACReader\imageformats\ - and using this build:
https://github.com/YACReader/yacreader/releases/download/9.14.1/YACReader-v9.14.1.2402053-winx64-7z-qt6.exe
Comics containing .jxl open with an error message.

This may not be an issue on your end at all, but perhaps you or someone else knows why this is.

Of course, for now, it is easy enough to simply use the combination above which does work.

Thank you to anyone able to provide any assistance.

Decoding speed issues

I am using this plugin with Gwenview to view a 16 MB JXL file (created with cjxl -s 3 -d 0) (image and monitor are both 24-bit true color) , but Gwenview shows the spinner for around 6 seconds before the image is displayed.
Meanwhile, djxl decodes the same file in less than 3 seconds.

Any idea why this happens?

(It seems that the reference software has an example viewer program, but I don't know how to compile the viewer, so I can't make a comparison between the reference viewer and this plugin.)

Progressive image decoding prevents decoding entirely

Hello again.

I have an interesting issue now: it seems like the QT-JXL plugin can't handle progressive images due to the way they are being decoded and shown.

Here is the error in question:

[INFO] Hi there [INFO] plugins dir set to: "/usr/lib64/nomacs-plugins" [INFO] local client created in: 1 ms [INFO] theme loaded from "/usr/local/share/nomacs/Image Lounge/themes/Light-Theme.css" [INFO] CSS loaded from: ":/nomacs/stylesheet.css" [INFO] Initialization takes: 80 ms [INFO] [DkImageLoader] 5 containers created in 0 ms [INFO] [DkImageLoader] after sorting: 0 ms [WARNING] Unexpected event 1024 instead of JXL_DEC_NEED_IMAGE_OUT_BUFFER [WARNING] Unexpected event 1024 instead of JXL_DEC_NEED_IMAGE_OUT_BUFFER [WARNING] [Basic Loader] could not load "/home/bluezakm/Pictures/Dark/Low BPP/D3.jxl"

Image link: https://cdn.discordapp.com/attachments/804324493420920833/816382162370560021/Screenshot_20210302_135048.png

It seems like since it's a progressive image, the plugin expects things to happen in a specific order, which might not always be the case: https://github.com/novomesk/qt-jpegxl-image-plugin/blob/main/src/qjpegxlhandler.cpp#L282

Some references on the manner: https://gitlab.com/wg1/jpeg-xl/-/blob/master/lib/include/jxl/decode.h#L285
https://gitlab.com/wg1/jpeg-xl/-/blob/master/lib/include/jxl/decode.h#L205

I hope this will be helpful. 👍

Add instructions to the README on enabling jpegxl support in Digikam.

Built, installed, worked like a charm in gwenview. But not with Digikam. Someone who's struggling with this may benefit. Skimmed settings interface and here is the answer (It is not consistent with other Qt apps to require jxl to be enabled manually. What is the reasoning behind this, I wonder):

Settings -> Configure digikam -> Views -> Mime Types, add "jxl" (without brackets) to the Additional image file extensions field.
Now the jxl thumbnails should be displayed properly (you can try to add the jpegxl-logo.jxl from testfiles to digikam to test this right away).

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.