Bug 495686

Summary: Failure to to open some HEIF images, but only in Gwenview
Product: [Applications] gwenview Reporter: medin <med.medin.2014>
Component: generalAssignee: Gwenview Bugs <gwenview-bugs-null>
Status: REPORTED ---    
Severity: normal CC: dnovomesky, nate
Priority: NOR    
Version First Reported In: 24.08.2   
Target Milestone: ---   
Platform: Other   
OS: Linux   
Latest Commit: Version Fixed/Implemented In:
Sentry Crash Report:
Attachments: IMG_20241019_195232.heif

Description medin 2024-11-01 12:08:26 UTC
Created attachment 175444 [details]
IMG_20241019_195232.heif

This image can be opened/imported inside digiKam, Gimp, Inkscape, Krita, darktable, even Dolphin can preview it as thumbnail.

Gwenview can view other heif images but it fails to open this one with the following error:

gwenview IMG_20241019_195232.heif
kf.i18n.kuit: "Unknown subcue ':whatsthis,' in UI marker in context {@info:whatsthis, %1 the action's text}."
org.kde.kdegraphics.gwenview.lib: Unresolved mime type  "image/x-aptus-mos"
org.kde.kdegraphics.gwenview.lib: Unresolved mime type  "image/x-arq"
org.kde.kdegraphics.gwenview.lib: Unresolved mime type  "image/x-bay"
org.kde.kdegraphics.gwenview.lib: Unresolved mime type  "image/x-bmq"
org.kde.kdegraphics.gwenview.lib: Unresolved mime type  "image/x-cap"
org.kde.kdegraphics.gwenview.lib: Unresolved mime type  "image/x-cine"
org.kde.kdegraphics.gwenview.lib: Unresolved mime type  "image/x-cs1"
org.kde.kdegraphics.gwenview.lib: Unresolved mime type  "image/x-dc2"
org.kde.kdegraphics.gwenview.lib: Unresolved mime type  "image/x-drf"
org.kde.kdegraphics.gwenview.lib: Unresolved mime type  "image/x-dxo"
org.kde.kdegraphics.gwenview.lib: Unresolved mime type  "image/x-epson-eip"
org.kde.kdegraphics.gwenview.lib: Unresolved mime type  "image/x-epson-erf"
org.kde.kdegraphics.gwenview.lib: Unresolved mime type  "image/x-fff"
org.kde.kdegraphics.gwenview.lib: Unresolved mime type  "image/x-hasselblad-3fr"
org.kde.kdegraphics.gwenview.lib: Unresolved mime type  "image/x-iiq"
org.kde.kdegraphics.gwenview.lib: Unresolved mime type  "image/x-kodak-dcs"
org.kde.kdegraphics.gwenview.lib: Unresolved mime type  "image/x-kodak-kc2"
org.kde.kdegraphics.gwenview.lib: Unresolved mime type  "image/x-mamiya-mef"
org.kde.kdegraphics.gwenview.lib: Unresolved mime type  "image/x-mfw"
org.kde.kdegraphics.gwenview.lib: Unresolved mime type  "image/x-minolta-mdc"
org.kde.kdegraphics.gwenview.lib: Unresolved mime type  "image/x-mng"
org.kde.kdegraphics.gwenview.lib: Unresolved mime type  "image/x-obm"
org.kde.kdegraphics.gwenview.lib: Unresolved mime type  "image/x-ori"
org.kde.kdegraphics.gwenview.lib: Unresolved mime type  "image/x-pfm"
org.kde.kdegraphics.gwenview.lib: Unresolved mime type  "image/x-ptx"
org.kde.kdegraphics.gwenview.lib: Unresolved mime type  "image/x-pxn"
org.kde.kdegraphics.gwenview.lib: Unresolved mime type  "image/x-pxr"
org.kde.kdegraphics.gwenview.lib: Unresolved mime type  "image/x-qtk"
org.kde.kdegraphics.gwenview.lib: Unresolved mime type  "image/x-r3d"
org.kde.kdegraphics.gwenview.lib: Unresolved mime type  "image/x-raw"
org.kde.kdegraphics.gwenview.lib: Unresolved mime type  "image/x-rdc"
org.kde.kdegraphics.gwenview.lib: Unresolved mime type  "image/x-rwl"
org.kde.kdegraphics.gwenview.lib: Unresolved mime type  "image/x-rwz"
org.kde.kdegraphics.gwenview.lib: Unresolved mime type  "image/x-samsung-srw"
org.kde.kdegraphics.gwenview.lib: Unresolved mime type  "image/x-sti"
org.kde.kdegraphics.gwenview.lib: Unresolved raw mime type  "image/x-samsung-srw"
heif_decode_image error: Invalid input: Unknown NCLX matrix coefficients: Unknown error
org.kde.kdegraphics.gwenview.lib: QImageReader::read() using format hint "heic" failed: "Unknown error"
org.kde.kdegraphics.gwenview.lib: A bad Qt image decoder moved the buffer to 1083944 in a call to canRead()! Rewinding.
org.kde.kdegraphics.gwenview.lib: Image format is actually "heif" not "heic"
heif_decode_image error: Invalid input: Unknown NCLX matrix coefficients: Unknown error
heif_decode_image error: Invalid input: Unknown NCLX matrix coefficients: Unknown error
Comment 1 Nate Graham 2024-11-01 15:09:33 UTC
The last six lines in the log show that it's an issue with the decoder plugin, possibly triggered by a corrupt image file. I'd recommend reporting it to Qt.
Comment 2 medin 2024-11-01 15:16:50 UTC
(In reply to Nate Graham from comment #1)
> The last six lines in the log show that it's an issue with the decoder
> plugin, possibly triggered by a corrupt image file. I'd recommend reporting
> it to Qt.

But the same version of libheif decoder is used by gwenview, digikam, dolphin, gimp, krita... so why only gwenview fails to view it?
Comment 3 medin 2024-11-01 15:22:15 UTC
Even the command heif-dec doesn't show those errors, it seems gweenview is not directly using libheif like how other apps do it.
Comment 4 Nate Graham 2024-11-01 15:38:17 UTC
Possibly not. We can look into it.
Comment 5 dnovomesky 2024-11-16 09:24:54 UTC
The problem is that HEIF/HEIC files created by Xiaomi 14 phones are not in full harmony with standards.

The files have invalid value in "matrix coefficients"

Gwenview decode HEIF files via kimg_heif.so Qt plug-in from kimageformats.

The plug-in uses strict decoding for security reasons and invalid files are rejected.

If we don't use the strict decoding, the file would be decodable, but potential of security risk would be higher.

Ideal solution would be that Xiaomi customers request the Xiaomi company to update their software to generate 100% compatible files.

There is no problems with files created by iPhone or Samsung phones.