Bug 384092 - Writing gps metadata with Exiv2 to sony alpha6300 raw files deletes data (white balance data probably) - Use ExifTool instead
Summary: Writing gps metadata with Exiv2 to sony alpha6300 raw files deletes data (whi...
Status: RESOLVED FIXED
Alias: None
Product: digikam
Classification: Applications
Component: Metadata-ExifTool (show other bugs)
Version: 5.6.0
Platform: Appimage Linux
: NOR grave
Target Milestone: ---
Assignee: Digikam Developers
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2017-08-27 23:57 UTC by Alexander
Modified: 2022-04-08 03:36 UTC (History)
5 users (show)

See Also:
Latest Commit:
Version Fixed In: 8.0.0


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Alexander 2017-08-27 23:57:12 UTC
Adding Gps locations to a raw file from a sony a6300 corrupts some data on the raw file. Possibly the White-balance information.
This happens only when you enable writing metadata to raw files.

Test to reproduce:
1)Go here: http://www.photographyblog.com/reviews/sony_a6300_review/sample_images/
2) Download http://img.photographyblog.com/reviews/sony_a6300/sample_images/sony_a6300_01.arw
3)Open it in the DigiKam image editor. The colors are fine.
4)Add gps info with the geolocation tool to the file and save it.
5)Open it again in the image editor and you will see that the colors are wrong now.

This bug was confirmed by another User in the irc Chat.
Comment 1 Alexander 2017-08-28 03:48:59 UTC
As a note: If you try to download the raw directly over http://img.photographyblog.com/reviews/sony_a6300/sample_images/sony_a6300_01.arw  you will get a 404 error. You have to download it over http://www.photographyblog.com/reviews/sony_a6300_review/sample_images/ (referrer check most likely).
Comment 2 caulier.gilles 2017-08-28 04:22:13 UTC
This problem must be reported to Exiv2 team, as all the job in Raw file is processed by this libraw.

In all cases, the Raw metadata writing option must be removed in digiKam metadata settings panel. It too dangerous to use.

I propose to do it for 6.0.0 release. The subject is open.

Gilles Caulier
Comment 3 Alexander 2017-08-28 09:39:41 UTC
http://dev.exiv2.org/issues/1309

Also if you really want to remove tagging raw files, i would at least leave it in for tagging dng. Since the dng file format is open there should be no more risk than with jpeg.
Comment 4 christian.pietzsch 2017-10-08 13:24:41 UTC
I've done an experiment. I change the metadata of a raw file once directly with exiv2 and once with Digikam.
The result was that the Digikam file got corrupted and the command line one didn't.
https://www.dropbox.com/s/twy49qw7ecnqpf7/Metadata%20Digikam.ARW?dl=0
https://www.dropbox.com/s/1dyz2d90glim04i/Metadata%20exiv2.ARW?dl=0
The exif output is the same in both. Terminal output below.
It's Digikam specific as far as I can tell.

(In the output the picture with _2 was edited by Digikam and the other one by exiv2)

[#]$ exiv2 DSC04326.ARW
File name : DSC04326.ARW
File size : 20676608 Bytes
MIME type : image/tiff
Image size : 5504 x 3656
Camera make : SONY
Camera model : SLT-A58
Image timestamp : 2017:09:18 04:44:44
Image number :
Exposure time : 1/20 s
Aperture : F11
Exposure bias : 0 EV
Flash : No, compulsory
Flash bias : 0 EV
Focal length : 40.0 mm (35 mm equivalent: 60.0 mm)
Subject distance:
ISO speed : 640
Exposure mode : Auto
Metering mode : Multi-segment
Macro mode :
Image quality : n/a
Exif Resolution : 5504 x 3656
White balance : Cloudy
Thumbnail : image/jpeg, 6128 Bytes
Copyright :
Exif comment :

[#]$ exiv2 DSC04326_2.ARW
File name : DSC04326_2.ARW
File size : 20554786 Bytes
MIME type : image/tiff
Image size : 5504 x 3656
Camera make : SONY
Camera model : SLT-A58
Image timestamp : 2017:09:18 04:44:44
Image number :
Exposure time : 1/20 s
Aperture : F11
Exposure bias : 0 EV
Flash : No, compulsory
Flash bias : 0 EV
Focal length : 40.0 mm (35 mm equivalent: 60.0 mm)
Subject distance:
ISO speed : 640
Exposure mode : Auto
Metering mode : Multi-segment
Macro mode :
Image quality : n/a
Exif Resolution : 5504 x 3656
White balance : Cloudy
Thumbnail : image/jpeg, 6128 Bytes
Copyright :
Exif comment : test

[#]$ exiv2 -M"set Exif.Photo.UserComment charset=Ascii exiv2 write" DSC04326.ARW
[#]$ exiv2 DSC04326.ARW
File name : DSC04326.ARW
File size : 20676608 Bytes
MIME type : image/tiff
Image size : 5504 x 3656
Camera make : SONY
Camera model : SLT-A58
Image timestamp : 2017:09:18 04:44:44
Image number :
Exposure time : 1/20 s
Aperture : F11
Exposure bias : 0 EV
Flash : No, compulsory
Flash bias : 0 EV
Focal length : 40.0 mm (35 mm equivalent: 60.0 mm)
Subject distance:
ISO speed : 640
Exposure mode : Auto
Metering mode : Multi-segment
Macro mode :
Image quality : n/a
Exif Resolution : 5504 x 3656
White balance : Cloudy
Thumbnail : image/jpeg, 6128 Bytes
Copyright :
Exif comment : exiv2 write
Comment 5 Simon 2017-10-08 14:32:45 UTC
The same version of exiv2 in both cases and which version(s)?
Comment 6 caulier.gilles 2017-10-08 14:57:46 UTC
The only differences here to touch file :

- Exiv2 CLI : on thread (one process in fact)
- digiKam C++ API : multi-threaded as GPS editor use QFuture internaly as i remember.

No more. digiKam do not touch the file as well. All is delegate to Exiv2 core.

So the internal Exiv2 implementation must be re-entrant and thread safe. It's mandatory. The digiKam implementation is thread safe of course as all digiKam use multi-threading everywhere, when it's possible.

Gilles Caulier
Comment 7 Maik Qualmann 2017-10-08 17:50:58 UTC
The problem is in Exiv2. Write with exiv2 e.g. an XMP tag to the image, after that it is also broken.

Maik
Comment 8 caulier.gilles 2017-10-08 18:13:17 UTC
Hi Maik,

This is why i think since a long time to remove the option to write metadata to RAW files and let's only the way to support XMP side car for read only files.

Gilles
Comment 9 Maik Qualmann 2017-10-09 10:25:29 UTC
Hi Gilles,

I can remember the desire of a user that we should allow writing to DNG files. Ih would suggest that we make a white list and allow only DNG, NEF and CR2 at the moment. With a hint in the GUI.

Maik
Comment 10 caulier.gilles 2018-08-11 19:12:21 UTC
yes, Right Maik,

DNG is fully document to be R/W easily. After al it's an improved TIFF file (TIFF/EP more exactly).

So disabling RAW metadata for all format excepted the DNG is the right way.

In all cases, as i can see in Exiv2 github forum that i follow, the project is active, but all around RAW writing support is drop from future plan.

Gilles
Comment 11 caulier.gilles 2018-08-11 19:14:37 UTC
Maik,

The UPSTREAM report is done through http://dev.exiv2.org/issues/1309

I know that Exiv2 team backport step by step all old issues to github.

I propose to close this entry as RESOLVED/UPSTREAM. We have certainly one other entry in bugzilla about to drop RAW metadata writing support.

Gilles
Comment 12 Maik Qualmann 2018-08-13 12:19:04 UTC
It is difficult, many users want to write metadata to RAW files. I would like to allow NEF and CR2, so far no problem has been reported. DNG is not sure, we can reproduce a broken DNG file. We will test it with the next version of Exiv2, but probably there will be no progress in this area.

I also thought about leaving an entry in the digiKam settings to enable write support again. This must be done manually and the user then does so at his own risk for his RAW images.

Maik
Comment 13 caulier.gilles 2018-08-13 12:47:07 UTC
>We will test it with the next version of Exiv2, but probably there will be no >progress in this area

==> i'm sure, no progress in this area. Exiv2 team is busy on other stuff...

>I also thought about leaving an entry in the digiKam settings to enable write >support again. This must be done manually and the user then does so at his own >risk for his RAW images.

==> Right, with a big RED alarm confirmation dialog, to be sure...

Gilles
Comment 14 caulier.gilles 2018-12-31 11:51:02 UTC
Can you reproduce the dysfunction using the last digiKam 6.0.0-beta3 just
released ?

https://www.digikam.org/news/2018-12-30-6.0.0-beta3_release_announcement/
Comment 15 caulier.gilles 2019-03-20 15:15:59 UTC
After 3 weeks of work, i finally completed the compilation of AppImage using Qt
5.11.3 + QWebkit 5.212.

New 6.1.0 pre-release AppImage bundle can be found here (64 bits only for the
moment) :

https://files.kde.org/digikam/

Please check if this bugzilla entry still valid.

Thanks in advance

Gilles Caulier
Comment 16 caulier.gilles 2020-07-14 09:41:28 UTC
Hi,

Can you check if this problem still exist with last weekly bundle build of digiKam 7.0.0 available here:

https://files.kde.org/digikam/

Thanks in advance

Gilles Caulier
Comment 17 caulier.gilles 2021-03-30 08:33:41 UTC
digiKam 7.2.0 official release is published with more than 360 files closed from bugzilla:

https://www.digikam.org/news/2021-03-22-7.2.0_release_announcement/

Can you reproduce the dysfunction with this version ?

Thanks in advance for your feedback

Gilles Caulier
Comment 18 caulier.gilles 2021-05-08 16:52:21 UTC
Git commit 434f065e74282cbb9335c2cc4db256007ca2ae5d by Gilles Caulier.
Committed on 08/05/2021 at 16:46.
Pushed by cgilles into branch 'master'.

ExifTool support: add new method to get list of changes operated on metadata. The goal is to make a temporary EXV file to pass later to ExifTool to patch target file.
Related: bug 134486, bug 170693, bug 219856, bug 237504, bug 264210, bug 309341, bug 325458, bug 326408, bug 377622, bug 406540, bug 416516, bug 421464, bug 436286

M  +162  -0    core/libs/metadataengine/engine/metaengine.cpp
M  +5    -0    core/libs/metadataengine/engine/metaengine.h
M  +0    -1    core/libs/metadataengine/engine/metaengine_p.cpp

https://invent.kde.org/graphics/digikam/commit/434f065e74282cbb9335c2cc4db256007ca2ae5d
Comment 19 caulier.gilles 2021-05-09 08:34:43 UTC
Git commit 2cb42fd246428932edd2049c59def826dcc9a420 by Gilles Caulier.
Committed on 09/05/2021 at 08:13.
Pushed by cgilles into branch 'master'.

ExifTool support: now export the list of tags changes from Exif, Iptc, and Xmp in a temporary EXV file.
We will pass later this file to ExifTool to patch target file.
Related: bug 134486, bug 170693, bug 219856, bug 237504, bug 264210, bug 309341, bug 325458, bug 326408, bug 377622, bug 406540, bug 416516, bug 421464, bug 436286

M  +0    -186  core/libs/metadataengine/engine/metaengine.cpp
M  +8    -5    core/libs/metadataengine/engine/metaengine.h
M  +196  -0    core/libs/metadataengine/engine/metaengine_fileio.cpp
M  +4    -4    core/tests/metadataengine/CMakeLists.txt
R  +5    -4    core/tests/metadataengine/exportchanges_cli.cpp [from: core/tests/metadataengine/dmetadatadiff_cli.cpp - 082% similarity]

https://invent.kde.org/graphics/digikam/commit/2cb42fd246428932edd2049c59def826dcc9a420
Comment 20 caulier.gilles 2021-05-09 13:18:01 UTC
Git commit 2ef074a3f5c239bf4674c4cdda5bf99f511d8ae0 by Gilles Caulier.
Committed on 09/05/2021 at 13:04.
Pushed by cgilles into branch 'master'.

ExifTool support: add new method to apply list of changes operated on metadata.
A temporary EXV file constainer is computed with the list of changes to operated on Exif, Iptc, and Xmp.
This EXV file is processed with ExifTool to patch metadata.
Add new CLI test tool to try apply changes with EXV constainer. Here the file is patched with DMetadata::setImageDateTime()
which change or add new tags in Exif, Iptc, and Xmp

Exemple of changes processed to a CR3 raw image:

CR3 ORIGINAL:

exiftool -G:0:1:2:4 -exif:all -xmp:all 2020-09-22_21-27-23_0C4A1060.CR3_original
[EXIF:IFD0:Image] Image Width                   : 8192
[EXIF:IFD0:Image] Image Height                  : 5464
[EXIF:IFD0:Image] Bits Per Sample               : 8 8 8
[EXIF:IFD0:Image] Compression                   : JPEG (old-style)
[EXIF:IFD0:Camera] Make                         : Canon
[EXIF:IFD0:Camera] Camera Model Name            : Canon EOS R5
[EXIF:IFD0:Image] Orientation                   : Rotate 90 CW
[EXIF:IFD0:Image] Resolution Unit               : inches
[EXIF:IFD0:Author] Artist                       : kdmurray
[EXIF:IFD0:Author] Copyright                    :
[EXIF:ExifIFD:Image] Exposure Time              : 1/200
[EXIF:ExifIFD:Image] F Number                   : 10.0
[EXIF:ExifIFD:Camera] Exposure Program          : Manual
[EXIF:ExifIFD:Image] ISO                        : 400
[EXIF:ExifIFD:Image] Sensitivity Type           : Recommended Exposure Index
[EXIF:ExifIFD:Image] Recommended Exposure Index : 400
[EXIF:ExifIFD:Image] Exif Version               : 0231
[EXIF:ExifIFD:Time] Date/Time Original          : 2020:09:22 21:27:23
[EXIF:ExifIFD:Time] Offset Time                 : +10:00
[EXIF:ExifIFD:Time] Offset Time Original        : +10:00
[EXIF:ExifIFD:Time] Offset Time Digitized       : +10:00
[EXIF:ExifIFD:Image] Components Configuration   : Y, Cb, Cr, -
[EXIF:ExifIFD:Image] Shutter Speed Value        : 1/197
[EXIF:ExifIFD:Image] Aperture Value             : 9.9
[EXIF:ExifIFD:Camera] Flash                     : On, Fired
[EXIF:ExifIFD:Camera] Focal Length              : 90.0 mm
[EXIF:ExifIFD:Image] User Comment               :
[EXIF:ExifIFD:Time] Sub Sec Time                : 59
[EXIF:ExifIFD:Time] Sub Sec Time Original       : 59
[EXIF:ExifIFD:Time] Sub Sec Time Digitized      : 59
[EXIF:ExifIFD:Image] Flashpix Version           : 0100
[EXIF:ExifIFD:Image] Exif Image Width           : 8192
[EXIF:ExifIFD:Image] Exif Image Height          : 5464
[EXIF:ExifIFD:Camera] Focal Plane X Resolution  : 5773.079634
[EXIF:ExifIFD:Camera] Focal Plane Y Resolution  : 5769.799366
[EXIF:ExifIFD:Camera] Focal Plane Resolution Unit: inches
[EXIF:ExifIFD:Image] Custom Rendered            : Normal
[EXIF:ExifIFD:Camera] Exposure Mode             : Manual
[EXIF:ExifIFD:Camera] Scene Capture Type        : Standard
[EXIF:ExifIFD:Image] Serial Number              : 035021000124
[EXIF:ExifIFD:Image] Lens Info                  : 90mm f/0
[EXIF:ExifIFD:Image] Lens Serial Number         : 0000000000
[EXIF:GPS:Location] GPS Version ID              : 2.3.0.0
[EXIF:GPS:Location] GPS Altitude Ref            : Above Sea Level
[EXIF:GPS:Location] GPS Satellites              :
[EXIF:GPS:Location] GPS Status                  : Unknown ()
[EXIF:GPS:Location] GPS Measure Mode            : Unknown ()
[XMP:XMP-xmp:Image] Rating                      : 0

*EXV constainer generated:

exiftool -G:0:1:2:4 -exif:all -xmp:all 2020-09-22_21-27-23_0C4A1060_changes.exv
[XMP:XMP-x:Document] XMP Toolkit                : XMP Core 4.4.0-Exiv2
[XMP:XMP-exif:Time] Date/Time Original          : 2021:05:09 15:02:43
[XMP:XMP-exif:Time] Date/Time Digitized         : 2021:05:09 15:02:43
[XMP:XMP-tiff:Time] Date/Time Modified          : 2021:05:09 15:02:43
[XMP:XMP-xmp:Time] Create Date                  : 2021:05:09 15:02:43
[XMP:XMP-xmp:Time] Metadata Date                : 2021:05:09 15:02:43
[XMP:XMP-xmp:Time] Modify Date                  : 2021:05:09 15:02:43

*CR3 PATCHED:

exiftool]$ exiftool -G:0:1:2:4 -exif:all -xmp:all 2020-09-22_21-27-23_0C4A1060.CR3
[EXIF:IFD0:Image] Image Width                   : 8192
[EXIF:IFD0:Image] Image Height                  : 5464
[EXIF:IFD0:Image] Bits Per Sample               : 8 8 8
[EXIF:IFD0:Image] Compression                   : JPEG (old-style)
[EXIF:IFD0:Camera] Make                         : Canon
[EXIF:IFD0:Camera] Camera Model Name            : Canon EOS R5
[EXIF:IFD0:Image] Orientation                   : Rotate 90 CW
[EXIF:IFD0:Image] Resolution Unit               : inches
[EXIF:IFD0:Author] Artist                       : kdmurray
[EXIF:IFD0:Author] Copyright                    :
[EXIF:ExifIFD:Image] Exposure Time              : 1/200
[EXIF:ExifIFD:Image] F Number                   : 10.0
[EXIF:ExifIFD:Camera] Exposure Program          : Manual
[EXIF:ExifIFD:Image] ISO                        : 400
[EXIF:ExifIFD:Image] Sensitivity Type           : Recommended Exposure Index
[EXIF:ExifIFD:Image] Recommended Exposure Index : 400
[EXIF:ExifIFD:Image] Exif Version               : 0231
[EXIF:ExifIFD:Time] Offset Time                 : +10:00
[EXIF:ExifIFD:Time] Offset Time Original        : +10:00
[EXIF:ExifIFD:Time] Offset Time Digitized       : +10:00
[EXIF:ExifIFD:Image] Components Configuration   : Y, Cb, Cr, -
[EXIF:ExifIFD:Image] Shutter Speed Value        : 1/197
[EXIF:ExifIFD:Image] Aperture Value             : 9.9
[EXIF:ExifIFD:Camera] Flash                     : On, Fired
[EXIF:ExifIFD:Camera] Focal Length              : 90.0 mm
[EXIF:ExifIFD:Image] User Comment               :
[EXIF:ExifIFD:Time] Sub Sec Time                : 59
[EXIF:ExifIFD:Time] Sub Sec Time Original       : 59
[EXIF:ExifIFD:Time] Sub Sec Time Digitized      : 59
[EXIF:ExifIFD:Image] Flashpix Version           : 0100
[EXIF:ExifIFD:Image] Exif Image Width           : 8192
[EXIF:ExifIFD:Image] Exif Image Height          : 5464
[EXIF:ExifIFD:Camera] Focal Plane X Resolution  : 5773.079634
[EXIF:ExifIFD:Camera] Focal Plane Y Resolution  : 5769.799366
[EXIF:ExifIFD:Camera] Focal Plane Resolution Unit: inches
[EXIF:ExifIFD:Image] Custom Rendered            : Normal
[EXIF:ExifIFD:Camera] Exposure Mode             : Manual
[EXIF:ExifIFD:Camera] Scene Capture Type        : Standard
[EXIF:ExifIFD:Image] Serial Number              : 035021000124
[EXIF:ExifIFD:Image] Lens Info                  : 90mm f/0
[EXIF:ExifIFD:Image] Lens Serial Number         : 0000000000
[EXIF:GPS:Location] GPS Version ID              : 2.3.0.0
[EXIF:GPS:Location] GPS Altitude Ref            : Above Sea Level
[EXIF:GPS:Location] GPS Satellites              :
[EXIF:GPS:Location] GPS Status                  : Unknown ()
[EXIF:GPS:Location] GPS Measure Mode            : Unknown ()
[XMP:XMP-x:Document] XMP Toolkit                : Image::ExifTool 12.00
[XMP:XMP-exif:Time] Date/Time Digitized         : 2021:05:09 15:02:43           <====!
[XMP:XMP-exif:Time] Date/Time Original          : 2021:05:09 15:02:43           <====!
[XMP:XMP-photoshop:Time] Date Created           : 2021:05:09 15:02:43           <====!
[XMP:XMP-tiff:Time] Date/Time Modified          : 2021:05:09 15:02:43           <====!
[XMP:XMP-xmp:Time] Create Date                  : 2021:05:09 15:02:43           <====!
[XMP:XMP-xmp:Time] Metadata Date                : 2021:05:09 15:02:43           <====!
[XMP:XMP-xmp:Time] Modify Date                  : 2021:05:09 15:02:43           <====!
[XMP:XMP-xmp:Image] Rating                      : 0
Related: bug 134486, bug 170693, bug 219856, bug 237504, bug 264210, bug 309341, bug 325458, bug 326408, bug 377622, bug 406540, bug 416516, bug 421464, bug 436286

M  +12   -2    core/libs/metadataengine/exiftool/exiftoolparser.h
M  +32   -0    core/libs/metadataengine/exiftool/exiftoolparser_command.cpp
M  +6    -0    core/libs/metadataengine/exiftool/exiftoolparser_output.cpp
M  +1    -0    core/libs/metadataengine/exiftool/exiftoolprocess.h
M  +2    -1    core/tests/metadataengine/exiftool/CMakeLists.txt
C  +20   -19   core/tests/metadataengine/exiftool/exiftoolapplychanges_cli.cpp [from: core/tests/metadataengine/exiftool/exiftoolwrite_cli.cpp - 059% similarity]
M  +1    -1    core/tests/metadataengine/exiftool/exiftoolwrite_cli.cpp

https://invent.kde.org/graphics/digikam/commit/2ef074a3f5c239bf4674c4cdda5bf99f511d8ae0
Comment 21 caulier.gilles 2021-05-15 15:20:00 UTC
Git commit 5507cb4c7779f42321d751d3788ee18562df6c9d by Gilles Caulier.
Committed on 15/05/2021 at 15:14.
Pushed by cgilles into branch 'master'.

ExifToolParser: new command to copy tags from source file to a destination file.
Related: bug 134486, bug 170693, bug 219856, bug 237504, bug 264210, bug 309341, bug 325458, bug 326408, bug 377622, bug 406540, bug 416516, bug 421464, bug 436286, bug 381967

M  +7    -0    core/libs/metadataengine/exiftool/exiftoolparser.h
M  +64   -0    core/libs/metadataengine/exiftool/exiftoolparser_command.cpp
M  +17   -1    core/libs/metadataengine/exiftool/exiftoolprocess.h

https://invent.kde.org/graphics/digikam/commit/5507cb4c7779f42321d751d3788ee18562df6c9d
Comment 22 caulier.gilles 2021-05-16 10:13:52 UTC
Git commit 8f332525788359d2c13c3e029bfb1b956dd5a4d2 by Gilles Caulier.
Committed on 16/05/2021 at 10:09.
Pushed by cgilles into branch 'master'.

DNGWriter : include ExifTool Error View in Settings Widget.
Fix API to check ExifTool program availability.
Factoring codes.
Related: bug 134486, bug 170693, bug 219856, bug 237504, bug 264210, bug 309341, bug 325458, bug 326408, bug 377622, bug 406540, bug 416516, bug 421464, bug 436286, bug 381967

M  +29   -5    core/libs/dngwriter/dngsettings.cpp
M  +6    -0    core/libs/dngwriter/dngsettings.h
M  +3    -10   core/libs/metadataengine/exiftool/exiftoolparser.cpp
M  +4    -1    core/libs/metadataengine/exiftool/exiftoolparser.h
M  +31   -21   core/libs/metadataengine/exiftool/exiftoolprocess.cpp
M  +2    -0    core/libs/metadataengine/exiftool/exiftoolprocess.h

https://invent.kde.org/graphics/digikam/commit/8f332525788359d2c13c3e029bfb1b956dd5a4d2
Comment 23 caulier.gilles 2021-05-17 04:02:11 UTC
Git commit 067a15c4ed14d75eb2ce3cc725fcba709131392e by Gilles Caulier.
Committed on 17/05/2021 at 03:57.
Pushed by cgilles into branch 'master'.

DPlugin interface; add new method to be able to open an host application setup dialog page from a plugin.
DNGWriter: add ExifTool error view to settings Widget. If ExifTool is not available, show error view and allow
Related: bug 134486, bug 170693, bug 219856, bug 237504, bug 264210, bug 309341, bug 325458, bug 326408, bug 377622, bug 406540, bug 416516, bug 421464, bug 436286, bug 381967
to customize installation from configuration panel.

M  +1    -1    core/app/main/digikamapp.cpp
M  +1    -0    core/app/main/digikamapp_p.h
M  +28   -0    core/dplugins/bqm/convert/converttodng/converttodng.cpp
M  +1    -1    core/dplugins/bqm/convert/converttodng/converttodng.h
M  +20   -1    core/libs/database/utils/ifaces/dbinfoiface.cpp
M  +2    -0    core/libs/database/utils/ifaces/dbinfoiface.h
M  +5    -1    core/libs/dngwriter/dngsettings.cpp
M  +4    -4    core/libs/dngwriter/dngwriter_postprocess.cpp
M  +4    -1    core/libs/dplugins/iface/dinfointerface.cpp
M  +13   -0    core/libs/dplugins/iface/dinfointerface.h
M  +1    -1    core/libs/metadataengine/exiftool/exiftoolparser.cpp
M  +6    -6    core/libs/widgets/metadata/exiftool/exiftoolconfpanel.cpp
M  +1    -1    core/libs/widgets/metadata/exiftool/exiftoollistview.cpp
M  +1    -0    core/showfoto/CMakeLists.txt
M  +1    -1    core/showfoto/main/showfoto.cpp
M  +2    -1    core/showfoto/main/showfoto_p.h
A  +66   -0    core/showfoto/main/showfotoinfoiface.cpp     [License: GPL (v2+)]
A  +51   -0    core/showfoto/main/showfotoinfoiface.h     [License: GPL (v2+)]
M  +2    -2    core/tests/metadataengine/exiftool/exiftoolmulticore_cli.cpp
M  +14   -1    core/utilities/queuemanager/dplugins/dpluginbqm.cpp
M  +7    -0    core/utilities/queuemanager/dplugins/dpluginbqm.h
M  +1    -0    core/utilities/queuemanager/main/queuemgrwindow.h
M  +10   -0    core/utilities/queuemanager/manager/batchtoolsfactory.cpp
M  +3    -0    core/utilities/queuemanager/manager/batchtoolsfactory.h

https://invent.kde.org/graphics/digikam/commit/067a15c4ed14d75eb2ce3cc725fcba709131392e
Comment 24 caulier.gilles 2022-04-07 04:57:44 UTC
Git commit 3a672f38cda7738356f19707a6a634ca91c269e6 by Gilles Caulier.
Committed on 07/04/2022 at 04:45.
Pushed by cgilles into branch 'master'.

Write metadata with ExifTool backend if Exiv2 fails to process, for exemple with RAW files or Video files.
Tested successfuly with a MP4 video to insert a comment.
For RAW and other king of files as MPO or JPEG with more than 64kB of Exif segement, Exiv2 must be bannned to uses in cases of writting operations as files can be corrupted.
This require more regression tests to validate ExifTool uses in place of Exiv2.
Related: bug 406540, bug 416516, bug 237504, bug 264210, bug 326408, bug 421464, bug 134486, bug 309341, bug 219856, bug 377622, bug 325458, bug 170693, bug 448729, bug 338075, bug 436876, bug 366348

M  +1    -0    core/libs/metadataengine/dmetadata/dmetadata.h
M  +43   -0    core/libs/metadataengine/dmetadata/dmetadata_exiftool.cpp
M  +49   -3    core/libs/metadataengine/dmetadata/dmetadata_fileio.cpp
M  +2    -2    core/libs/metadataengine/exiftool/exiftoolparser.h

https://invent.kde.org/graphics/digikam/commit/3a672f38cda7738356f19707a6a634ca91c269e6
Comment 25 caulier.gilles 2022-04-08 03:36:58 UTC
Git commit 80ecdd9980c6cf14789606455bf9d367c1ffef51 by Gilles Caulier.
Committed on 08/04/2022 at 03:25.
Pushed by cgilles into branch 'master'.

Use only ExifTool backend to write metadata to RAW files, as Exiv2 is fully unsafe with these kind of operations.
Reading and Writing metadata to video files is now delegate to ExifTool Backend too.
Related: bug 406540, bug 416516, bug 237504, bug 264210, bug 326408, bug 134486, bug 309341, bug 377622, bug 170693, bug 419801, bug 338075, bug 366348
FIXED-IN: 8.0.0

M  +1    -0    NEWS
M  +13   -0    core/libs/metadataengine/dmetadata/dmetadata_exiftool.cpp
M  +6    -52   core/libs/metadataengine/engine/metaengine_p.cpp
M  +4    -20   core/utilities/setup/metadata/setupmetadata.cpp
M  +3    -4    core/utilities/setup/metadata/setupmetadata_behavior.cpp

https://invent.kde.org/graphics/digikam/commit/80ecdd9980c6cf14789606455bf9d367c1ffef51