Bug 444442

Summary: Conversion from Sony ARW to DNG loses pixels on the right side of the image
Product: [Applications] digikam Reporter: Lukas Jirkovsky <l.jirkovsky>
Component: Plugin-Bqm-DngConverterAssignee: Digikam Developers <digikam-bugs-null>
Status: REPORTED ---    
Severity: normal CC: caulier.gilles, metzpinguin
Priority: NOR    
Version: 8.3.0   
Target Milestone: ---   
Platform: Arch Linux   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:

Description Lukas Jirkovsky 2021-10-26 18:09:42 UTC
SUMMARY
The converted DNG files are missing the rightmost 32 pixels (grid lines?). This happens with ARW files from Sony A7RM3. I don't know whether other cameras are affected.

The good folk at https://discuss.pixls.us/t/dng-output-slightly-cropped/27582/10 helped tremendously to identify the problem where I noticed that RawTherapee output is slightly cropped when using digiKam DNG compared to ARW.

STEPS TO REPRODUCE
1. Convert Sony ARW file to DNG using digiKam's batch queue
2. Examine both files using rawpy[1]

OBSERVED RESULT
DNG output is missing 32 rightmost pixels.

EXPECTED RESULT
DNG contains the same data

SOFTWARE/OS VERSIONS
Arch Linux
KDE Frameworks 5.87.0
Qt 5.15.2

ADDITIONAL INFORMATION

I uploaded example DNG and ARW to my google drive (warning, large files):
https://drive.google.com/file/d/14JYTnuSHCix3FEEzNrMugY1fRlwLyDPW/view?usp=sharing
https://drive.google.com/file/d/1RHYFqE8gj0gXjG6SP539WfZVs1MlSvi1/view?usp=sharing

[1] I used the following script to obtain the RAW data:
```
import rawpy
import imageio
import sys
import os.path

path = sys.argv[1]

with rawpy.imread(path) as raw:
    imageio.imsave(os.path.basename(path)+'.tiff', raw.raw_image)
```
Comment 1 Lukas Jirkovsky 2021-10-26 18:31:21 UTC
I checked the conversion with old Canon EOS 400D CR2 files and the problem is not present. After comparing CR2 data and the DNG file, DNG is cropped to exclude left and top part of the RAW data that doesn't contain any image data. No useful data are excluded when converting Canon CR2.
Comment 2 Maik Qualmann 2021-10-26 20:09:55 UTC
At the moment I've only managed to get a brief overview. Nothing is missing in digiKam's DNG, because both digiKam and Darktable load it correctly. The problem is not entirely unknown. According to Exif, the ARW files should be 7952px. In digiKam we get 7968px from the RAW decoder, with Darktable even 7980px, with RawTherapee it is only 7956px.

With the DNG file, RawTherapee only loads 7924px image, why such a small value?
Perhaps RawTherapee is only loading the image according to the Exif information. Since it is partly a copy of the RAW Exif data, the DNG also contains 7952px information, we may have to adapt it ...

Maik
Comment 3 Lukas Jirkovsky 2021-10-27 05:52:13 UTC
I'm not saying RawTherapee is not doing some funky business – I don't have good enough understanding of the format.

However looking at the embedded raw data using rawpy I see that there are some usable data which are missing in DNG. The only explanation I can think of (with my zero knowledge of the format) is that these data are outside of region of interest defined in EXIF so digiKam throws them away assuming they are not usable. That's what I'm seeing with the Canon CR2 – with CR2 a different crop is present but the cropped area is empty, ie. no Bayer filter. So no data lost.

To show the difference – this is how the raw data extracted from ARW look like:
https://drive.google.com/file/d/1fivJ0q8Lc-ZDZbZLkRUKmg5lrJ0ljOyh/view?usp=sharing

And this is how the raw data from DNG look like:
https://drive.google.com/file/d/1rHQ6GQ5dls1xmIV8ZfCqIPC8Ks0aOrQj/view?usp=sharing

I just bumped the exposure on both files so that they are not pitch black, no other changes.

If you examine the right border you will see that there are more usable data in the ARW file. It seems a shame to throw useful data away. If my theory of these data being outside of the crop defined in EXIF, maybe digiKam could have an option to preserve these data?
Comment 4 Maik Qualmann 2021-10-27 11:52:31 UTC
This thread is quite interesting even if it's from 2015:

https://www.libraw.org/node/2117

Maik
Comment 5 caulier.gilles 2023-05-01 07:29:45 UTC
@lukas,

digiKam 8.0.0 is out. This entry still valid with this release ?

Best regards

Gilles Caulier
Comment 6 Lukas Jirkovsky 2023-05-04 17:11:01 UTC
(In reply to caulier.gilles from comment #5)
> @lukas,
> 
> digiKam 8.0.0 is out. This entry still valid with this release ?
> 
> Best regards
> 
> Gilles Caulier

It's the same with 8.0.0
Comment 7 caulier.gilles 2024-03-31 20:33:14 UTC
Git commit 1b911bc46a1631f9d00ef2866f9987f3a04fbdde by Gilles Caulier.
Committed on 31/03/2024 at 20:28.
Pushed by cgilles into branch 'master'.

Update Adobe DNG SDK from 1.5.1 to 1.7.1 to support JPEG-XL compression formats.
Related: bug 390700, bug 418941, bug 451917, bug 479728, bug 257737, bug 477631, bug 285610, bug 374655

M  +1    -0    Mainpage.dox
M  +2    -0    NEWS
M  +3    -1    core/CMakeLists.txt
M  +1    -0    core/app/DigikamCoreTarget.cmake
A  +109  -0    core/cmake/modules/FindLibjxl.cmake
M  +3    -0    core/cmake/rules/RulesDNGSdk.cmake
M  +17   -1    core/libs/dngwriter/CMakeLists.txt
M  +1    -1    core/libs/dngwriter/dngwriter.cpp
M  +1    -1    core/libs/dngwriter/dngwriter_export.cpp
M  +242  -52   core/libs/dngwriter/extra/dng_sdk/dng_1d_function.cpp
M  +99   -36   core/libs/dngwriter/extra/dng_sdk/dng_1d_function.h
M  +69   -67   core/libs/dngwriter/extra/dng_sdk/dng_1d_table.cpp
M  +57   -26   core/libs/dngwriter/extra/dng_sdk/dng_1d_table.h
M  +54   -52   core/libs/dngwriter/extra/dng_sdk/dng_abort_sniffer.cpp
M  +57   -47   core/libs/dngwriter/extra/dng_sdk/dng_abort_sniffer.h
M  +444  -88   core/libs/dngwriter/extra/dng_sdk/dng_area_task.cpp
M  +230  -33   core/libs/dngwriter/extra/dng_sdk/dng_area_task.h
M  +27   -4    core/libs/dngwriter/extra/dng_sdk/dng_assertions.h
M  +67   -53   core/libs/dngwriter/extra/dng_sdk/dng_auto_ptr.h
M  +486  -474  core/libs/dngwriter/extra/dng_sdk/dng_bad_pixels.cpp
M  +53   -48   core/libs/dngwriter/extra/dng_sdk/dng_bad_pixels.h
M  +4976 -1140 core/libs/dngwriter/extra/dng_sdk/dng_big_table.cpp
M  +1290 -389  core/libs/dngwriter/extra/dng_sdk/dng_big_table.h
A  +397  -0    core/libs/dngwriter/extra/dng_sdk/dng_bmff.cpp  *
A  +113  -0    core/libs/dngwriter/extra/dng_sdk/dng_bmff.h  *
M  +9    -2    core/libs/dngwriter/extra/dng_sdk/dng_bottlenecks.cpp
M  +491  -252  core/libs/dngwriter/extra/dng_sdk/dng_bottlenecks.h
M  +1371 -386  core/libs/dngwriter/extra/dng_sdk/dng_camera_profile.cpp
M  +513  -166  core/libs/dngwriter/extra/dng_sdk/dng_camera_profile.h
M  +48   -3    core/libs/dngwriter/extra/dng_sdk/dng_classes.h
M  +1323 -585  core/libs/dngwriter/extra/dng_sdk/dng_color_space.cpp
M  +299  -66   core/libs/dngwriter/extra/dng_sdk/dng_color_space.h
M  +363  -191  core/libs/dngwriter/extra/dng_sdk/dng_color_spec.cpp
M  +52   -24   core/libs/dngwriter/extra/dng_sdk/dng_color_spec.h
M  +444  -430  core/libs/dngwriter/extra/dng_sdk/dng_date_time.cpp
M  +100  -105  core/libs/dngwriter/extra/dng_sdk/dng_date_time.h
A  +60   -0    core/libs/dngwriter/extra/dng_sdk/dng_deprecated_flags.h  *
M  +11   -5    core/libs/dngwriter/extra/dng_sdk/dng_errors.h
M  +62   -62   core/libs/dngwriter/extra/dng_sdk/dng_exceptions.cpp
M  +56   -56   core/libs/dngwriter/extra/dng_sdk/dng_exceptions.h
M  +1984 -1960 core/libs/dngwriter/extra/dng_sdk/dng_exif.cpp
M  +144  -128  core/libs/dngwriter/extra/dng_sdk/dng_exif.h
M  +5    -3    core/libs/dngwriter/extra/dng_sdk/dng_fast_module.h
M  +148  -37   core/libs/dngwriter/extra/dng_sdk/dng_file_stream.cpp
M  +41   -16   core/libs/dngwriter/extra/dng_sdk/dng_file_stream.h
M  +58   -58   core/libs/dngwriter/extra/dng_sdk/dng_filter_task.cpp
M  +15   -15   core/libs/dngwriter/extra/dng_sdk/dng_filter_task.h
M  +173  -146  core/libs/dngwriter/extra/dng_sdk/dng_fingerprint.cpp
M  +98   -72   core/libs/dngwriter/extra/dng_sdk/dng_fingerprint.h
M  +127  -57   core/libs/dngwriter/extra/dng_sdk/dng_flags.h
M  +1014 -256  core/libs/dngwriter/extra/dng_sdk/dng_gain_map.cpp
M  +343  -45   core/libs/dngwriter/extra/dng_sdk/dng_gain_map.h
M  +10   -4    core/libs/dngwriter/extra/dng_sdk/dng_globals.cpp
M  +3    -3    core/libs/dngwriter/extra/dng_sdk/dng_globals.h
M  +365  -154  core/libs/dngwriter/extra/dng_sdk/dng_host.cpp
M  +216  -96   core/libs/dngwriter/extra/dng_sdk/dng_host.h
M  +227  -90   core/libs/dngwriter/extra/dng_sdk/dng_hue_sat_map.cpp
M  +26   -16   core/libs/dngwriter/extra/dng_sdk/dng_hue_sat_map.h
M  +2514 -1712 core/libs/dngwriter/extra/dng_sdk/dng_ifd.cpp
M  +140  -108  core/libs/dngwriter/extra/dng_sdk/dng_ifd.h
M  +631  -315  core/libs/dngwriter/extra/dng_sdk/dng_image.cpp
M  +117  -92   core/libs/dngwriter/extra/dng_sdk/dng_image.h
M  +5843 -3135 core/libs/dngwriter/extra/dng_sdk/dng_image_writer.cpp
M  +733  -471  core/libs/dngwriter/extra/dng_sdk/dng_image_writer.h
M  +1382 -1126 core/libs/dngwriter/extra/dng_sdk/dng_info.cpp
M  +99   -69   core/libs/dngwriter/extra/dng_sdk/dng_info.h
M  +325  -325  core/libs/dngwriter/extra/dng_sdk/dng_iptc.cpp
M  +32   -32   core/libs/dngwriter/extra/dng_sdk/dng_iptc.h
M  +544  -210  core/libs/dngwriter/extra/dng_sdk/dng_jpeg_image.cpp
M  +139  -18   core/libs/dngwriter/extra/dng_sdk/dng_jpeg_image.h
A  +90   -0    core/libs/dngwriter/extra/dng_sdk/dng_jpeg_memory_source.cpp  *
A  +19   -0    core/libs/dngwriter/extra/dng_sdk/dng_jpeg_memory_source.h  *
A  +18   -0    core/libs/dngwriter/extra/dng_sdk/dng_jpeglib.h  *
A  +3527 -0    core/libs/dngwriter/extra/dng_sdk/dng_jxl.cpp  *
A  +396  -0    core/libs/dngwriter/extra/dng_sdk/dng_jxl.h  *
M  +890  -538  core/libs/dngwriter/extra/dng_sdk/dng_lens_correction.cpp
M  +171  -59   core/libs/dngwriter/extra/dng_sdk/dng_lens_correction.h
M  +639  -631  core/libs/dngwriter/extra/dng_sdk/dng_linearization_info.cpp
M  +27   -27   core/libs/dngwriter/extra/dng_sdk/dng_linearization_info.h
M  +95   -95   core/libs/dngwriter/extra/dng_sdk/dng_local_string.cpp
M  +56   -56   core/libs/dngwriter/extra/dng_sdk/dng_local_string.h
M  +24   -3826 core/libs/dngwriter/extra/dng_sdk/dng_lossless_jpeg.cpp
M  +14   -13   core/libs/dngwriter/extra/dng_sdk/dng_lossless_jpeg.h
A  +4439 -0    core/libs/dngwriter/extra/dng_sdk/dng_lossless_jpeg_shared.cpp     [License: BSD MIT]
M  +507  -466  core/libs/dngwriter/extra/dng_sdk/dng_matrix.cpp
M  +92   -92   core/libs/dngwriter/extra/dng_sdk/dng_matrix.h
M  +71   -87   core/libs/dngwriter/extra/dng_sdk/dng_memory.cpp
M  +88   -88   core/libs/dngwriter/extra/dng_sdk/dng_memory.h
M  +109  -109  core/libs/dngwriter/extra/dng_sdk/dng_memory_stream.cpp
M  +26   -26   core/libs/dngwriter/extra/dng_sdk/dng_memory_stream.h
M  +611  -524  core/libs/dngwriter/extra/dng_sdk/dng_misc_opcodes.cpp
M  +154  -124  core/libs/dngwriter/extra/dng_sdk/dng_misc_opcodes.h
M  +764  -754  core/libs/dngwriter/extra/dng_sdk/dng_mosaic_info.cpp
M  +44   -44   core/libs/dngwriter/extra/dng_sdk/dng_mosaic_info.h
M  +103  -102  core/libs/dngwriter/extra/dng_sdk/dng_mutex.cpp
M  +32   -32   core/libs/dngwriter/extra/dng_sdk/dng_mutex.h
M  +4878 -2644 core/libs/dngwriter/extra/dng_sdk/dng_negative.cpp
M  +1383 -918  core/libs/dngwriter/extra/dng_sdk/dng_negative.h
M  +148  -80   core/libs/dngwriter/extra/dng_sdk/dng_opcode_list.cpp
M  +34   -22   core/libs/dngwriter/extra/dng_sdk/dng_opcode_list.h
M  +188  -188  core/libs/dngwriter/extra/dng_sdk/dng_opcodes.cpp
M  +101  -85   core/libs/dngwriter/extra/dng_sdk/dng_opcodes.h
M  +84   -75   core/libs/dngwriter/extra/dng_sdk/dng_orientation.cpp
M  +80   -51   core/libs/dngwriter/extra/dng_sdk/dng_orientation.h
M  +1216 -1085 core/libs/dngwriter/extra/dng_sdk/dng_parse_utils.cpp
M  +32   -28   core/libs/dngwriter/extra/dng_sdk/dng_parse_utils.h
M  +604  -604  core/libs/dngwriter/extra/dng_sdk/dng_pixel_buffer.cpp
M  +345  -140  core/libs/dngwriter/extra/dng_sdk/dng_pixel_buffer.h
M  +1    -1    core/libs/dngwriter/extra/dng_sdk/dng_point.cpp
M  +93   -92   core/libs/dngwriter/extra/dng_sdk/dng_point.h
M  +641  -453  core/libs/dngwriter/extra/dng_sdk/dng_preview.cpp
M  +277  -141  core/libs/dngwriter/extra/dng_sdk/dng_preview.h
M  +115  -113  core/libs/dngwriter/extra/dng_sdk/dng_pthread.cpp
M  +4    -5    core/libs/dngwriter/extra/dng_sdk/dng_pthread.h
M  +116  -25   core/libs/dngwriter/extra/dng_sdk/dng_rational.cpp
M  +26   -24   core/libs/dngwriter/extra/dng_sdk/dng_rational.h
M  +1605 -1316 core/libs/dngwriter/extra/dng_sdk/dng_read_image.cpp
M  +84   -90   core/libs/dngwriter/extra/dng_sdk/dng_read_image.h
M  +156  -40   core/libs/dngwriter/extra/dng_sdk/dng_rect.cpp
M  +241  -107  core/libs/dngwriter/extra/dng_sdk/dng_rect.h
M  +47   -47   core/libs/dngwriter/extra/dng_sdk/dng_ref_counted_block.cpp
M  +38   -38   core/libs/dngwriter/extra/dng_sdk/dng_ref_counted_block.h
M  +2027 -1049 core/libs/dngwriter/extra/dng_sdk/dng_reference.cpp
M  +139  -66   core/libs/dngwriter/extra/dng_sdk/dng_reference.h
M  +1308 -490  core/libs/dngwriter/extra/dng_sdk/dng_render.cpp
M  +100  -79   core/libs/dngwriter/extra/dng_sdk/dng_render.h
M  +276  -270  core/libs/dngwriter/extra/dng_sdk/dng_resample.cpp
M  +104  -72   core/libs/dngwriter/extra/dng_sdk/dng_resample.h
M  +256  -129  core/libs/dngwriter/extra/dng_sdk/dng_safe_arithmetic.cpp
M  +166  -39   core/libs/dngwriter/extra/dng_sdk/dng_safe_arithmetic.h
M  +46   -6    core/libs/dngwriter/extra/dng_sdk/dng_sdk_limits.h
A  +81   -0    core/libs/dngwriter/extra/dng_sdk/dng_semantic_mask.h  *
M  +2279 -1226 core/libs/dngwriter/extra/dng_sdk/dng_shared.cpp
M  +146  -59   core/libs/dngwriter/extra/dng_sdk/dng_shared.h
M  +38   -40   core/libs/dngwriter/extra/dng_sdk/dng_simd_type.h
M  +83   -56   core/libs/dngwriter/extra/dng_sdk/dng_simple_image.cpp
M  +29   -21   core/libs/dngwriter/extra/dng_sdk/dng_simple_image.h
M  +102  -37   core/libs/dngwriter/extra/dng_sdk/dng_spline.cpp
M  +86   -18   core/libs/dngwriter/extra/dng_sdk/dng_spline.h
M  +616  -540  core/libs/dngwriter/extra/dng_sdk/dng_stream.cpp
M  +268  -236  core/libs/dngwriter/extra/dng_sdk/dng_stream.h
M  +1124 -1113 core/libs/dngwriter/extra/dng_sdk/dng_string.cpp
M  +86   -55   core/libs/dngwriter/extra/dng_sdk/dng_string.h
M  +27   -106  core/libs/dngwriter/extra/dng_sdk/dng_string_list.cpp
M  +26   -29   core/libs/dngwriter/extra/dng_sdk/dng_string_list.h
M  +62   -29   core/libs/dngwriter/extra/dng_sdk/dng_tag_codes.h
M  +10   -6    core/libs/dngwriter/extra/dng_sdk/dng_tag_types.cpp
M  +16   -3    core/libs/dngwriter/extra/dng_sdk/dng_tag_types.h
M  +176  -130  core/libs/dngwriter/extra/dng_sdk/dng_tag_values.h
M  +75   -75   core/libs/dngwriter/extra/dng_sdk/dng_temperature.cpp
M  +22   -22   core/libs/dngwriter/extra/dng_sdk/dng_temperature.h
M  +96   -96   core/libs/dngwriter/extra/dng_sdk/dng_tile_iterator.cpp
M  +30   -30   core/libs/dngwriter/extra/dng_sdk/dng_tile_iterator.h
M  +39   -39   core/libs/dngwriter/extra/dng_sdk/dng_tone_curve.cpp
M  +10   -10   core/libs/dngwriter/extra/dng_sdk/dng_tone_curve.h
M  +32   -30   core/libs/dngwriter/extra/dng_sdk/dng_types.h
M  +5    -5    core/libs/dngwriter/extra/dng_sdk/dng_uncopyable.h
A  +3182 -0    core/libs/dngwriter/extra/dng_sdk/dng_update_meta.cpp  *
C  +14   -26   core/libs/dngwriter/extra/dng_sdk/dng_update_meta.h [from: core/libs/dngwriter/extra/dng_sdk/dng_tag_types.h - 058% similarity]
M  +964  -270  core/libs/dngwriter/extra/dng_sdk/dng_utils.cpp
M  +666  -314  core/libs/dngwriter/extra/dng_sdk/dng_utils.h
M  +580  -435  core/libs/dngwriter/extra/dng_sdk/dng_validate.cpp
M  +2411 -2030 core/libs/dngwriter/extra/dng_sdk/dng_xmp.cpp
M  +181  -156  core/libs/dngwriter/extra/dng_sdk/dng_xmp.h
M  +858  -704  core/libs/dngwriter/extra/dng_sdk/dng_xmp_sdk.cpp
M  +97   -68   core/libs/dngwriter/extra/dng_sdk/dng_xmp_sdk.h
M  +1258 -17   core/libs/dngwriter/extra/dng_sdk/dng_xy_coord.cpp
M  +111  -27   core/libs/dngwriter/extra/dng_sdk/dng_xy_coord.h
M  +24   -17   core/libs/dngwriter/extra/md5/XMP_MD5.cpp
M  +22   -18   core/libs/dngwriter/extra/md5/XMP_MD5.h
A  +51   -0    core/libs/dngwriter/extra/xmp_sdk/XMPCommon/XMPCommonDefines_I.h  *
A  +49   -0    core/libs/dngwriter/extra/xmp_sdk/XMPCommon/XMPCommonErrorCodes_I.h  *
A  +93   -0    core/libs/dngwriter/extra/xmp_sdk/XMPCommon/XMPCommonFwdDeclarations_I.h  *
A  +30   -0    core/libs/dngwriter/extra/xmp_sdk/XMPCommon/XMPCommon_I.h  *
A  +41   -0    core/libs/dngwriter/extra/xmp_sdk/XMPCore/XMPCoreDefines_I.h  *
A  +84   -0    core/libs/dngwriter/extra/xmp_sdk/XMPCore/XMPCoreFwdDeclarations_I.h  *
M  +115  -51   core/libs/dngwriter/extra/xmp_sdk/XMPCore/source/ExpatAdapter.cpp
M  +151  -80   core/libs/dngwriter/extra/xmp_sdk/XMPCore/source/ParseRDF.cpp
A  +433  -0    core/libs/dngwriter/extra/xmp_sdk/XMPCore/source/WXMPDocOps.cpp  *
M  +52   -5    core/libs/dngwriter/extra/xmp_sdk/XMPCore/source/WXMPIterator.cpp
M  +238  -76   core/libs/dngwriter/extra/xmp_sdk/XMPCore/source/WXMPMeta.cpp
M  +293  -2    core/libs/dngwriter/extra/xmp_sdk/XMPCore/source/WXMPUtils.cpp
A  +48   -0    core/libs/dngwriter/extra/xmp_sdk/XMPCore/source/XMPCore_ChangeLog.hpp  *
M  +251  -131  core/libs/dngwriter/extra/xmp_sdk/XMPCore/source/XMPCore_Impl.cpp
M  +125  -13   core/libs/dngwriter/extra/xmp_sdk/XMPCore/source/XMPCore_Impl.hpp
A  +522  -0    core/libs/dngwriter/extra/xmp_sdk/XMPCore/source/XMPDocOps-Utils.cpp  *
A  +86   -0    core/libs/dngwriter/extra/xmp_sdk/XMPCore/source/XMPDocOps-Utils.hpp  *
A  +1154 -0    core/libs/dngwriter/extra/xmp_sdk/XMPCore/source/XMPDocOps.cpp  *
A  +148  -0    core/libs/dngwriter/extra/xmp_sdk/XMPCore/source/XMPDocOps.hpp  *
M  +123  -63   core/libs/dngwriter/extra/xmp_sdk/XMPCore/source/XMPIterator.cpp
M  +36   -2    core/libs/dngwriter/extra/xmp_sdk/XMPCore/source/XMPIterator.hpp
M  +31   -29   core/libs/dngwriter/extra/xmp_sdk/XMPCore/source/XMPIterator2.cpp
M  +4    -2    core/libs/dngwriter/extra/xmp_sdk/XMPCore/source/XMPIterator2.hpp
M  +1922 -103  core/libs/dngwriter/extra/xmp_sdk/XMPCore/source/XMPMeta-GetSet.cpp
M  +289  -130  core/libs/dngwriter/extra/xmp_sdk/XMPCore/source/XMPMeta-Parse.cpp
M  +266  -109  core/libs/dngwriter/extra/xmp_sdk/XMPCore/source/XMPMeta-Serialize.cpp
M  +415  -16   core/libs/dngwriter/extra/xmp_sdk/XMPCore/source/XMPMeta.cpp
M  +114  -2    core/libs/dngwriter/extra/xmp_sdk/XMPCore/source/XMPMeta.hpp
M  +143  -141  core/libs/dngwriter/extra/xmp_sdk/XMPCore/source/XMPMeta2-GetSet.cpp
M  +1    -1    core/libs/dngwriter/extra/xmp_sdk/XMPCore/source/XMPMeta2.hpp
M  +1072 -230  core/libs/dngwriter/extra/xmp_sdk/XMPCore/source/XMPUtils-FileInfo.cpp
M  +209  -97   core/libs/dngwriter/extra/xmp_sdk/XMPCore/source/XMPUtils.cpp
M  +211  -2    core/libs/dngwriter/extra/xmp_sdk/XMPCore/source/XMPUtils.hpp
M  +620  -42   core/libs/dngwriter/extra/xmp_sdk/XMPCore/source/XMPUtils2.cpp
M  +79   -4    core/libs/dngwriter/extra/xmp_sdk/build/XMP_BuildInfo.h
A  +542  -0    core/libs/dngwriter/extra/xmp_sdk/public/include/TXMPDocOps.hpp  *
M  +123  -7    core/libs/dngwriter/extra/xmp_sdk/public/include/TXMPFiles.hpp
M  +43   -10   core/libs/dngwriter/extra/xmp_sdk/public/include/TXMPIterator.hpp
M  +160  -10   core/libs/dngwriter/extra/xmp_sdk/public/include/TXMPMeta.hpp
M  +270  -3    core/libs/dngwriter/extra/xmp_sdk/public/include/TXMPUtils.hpp
M  +48   -2    core/libs/dngwriter/extra/xmp_sdk/public/include/XMP.hpp
M  +57   -0    core/libs/dngwriter/extra/xmp_sdk/public/include/XMP.incl_cpp
M  +43   -13   core/libs/dngwriter/extra/xmp_sdk/public/include/XMPCommon/XMPCommonDefines.h
M  +5    -3    core/libs/dngwriter/extra/xmp_sdk/public/include/XMPCommon/XMPCommonErrorCodes.h
M  +7    -5    core/libs/dngwriter/extra/xmp_sdk/public/include/XMPCommon/XMPCommonFwdDeclarations.h
M  +5    -3    core/libs/dngwriter/extra/xmp_sdk/public/include/XMPCommon/XMPCommonLatestInterfaceVersions.h
M  +12   -2    core/libs/dngwriter/extra/xmp_sdk/public/include/XMPCore/XMPCoreDefines.h
M  +7    -5    core/libs/dngwriter/extra/xmp_sdk/public/include/XMPCore/XMPCoreErrorCodes.h
M  +24   -5    core/libs/dngwriter/extra/xmp_sdk/public/include/XMPCore/XMPCoreFwdDeclarations.h
M  +10   -3    core/libs/dngwriter/extra/xmp_sdk/public/include/XMPCore/XMPCoreLatestInterfaceVersions.h
M  +621  -18   core/libs/dngwriter/extra/xmp_sdk/public/include/XMP_Const.h
M  +129  -22   core/libs/dngwriter/extra/xmp_sdk/public/include/XMP_Environment.h
M  +24   -7    core/libs/dngwriter/extra/xmp_sdk/public/include/XMP_IO.hpp
M  +45   -33   core/libs/dngwriter/extra/xmp_sdk/public/include/XMP_Version.h
A  +400  -0    core/libs/dngwriter/extra/xmp_sdk/public/include/client-glue/TXMPDocOps.incl_cpp
M  +120  -0    core/libs/dngwriter/extra/xmp_sdk/public/include/client-glue/TXMPFiles.incl_cpp
M  +30   -0    core/libs/dngwriter/extra/xmp_sdk/public/include/client-glue/TXMPIterator.incl_cpp
M  +146  -0    core/libs/dngwriter/extra/xmp_sdk/public/include/client-glue/TXMPMeta.incl_cpp
M  +257  -2    core/libs/dngwriter/extra/xmp_sdk/public/include/client-glue/TXMPUtils.incl_cpp
A  +210  -0    core/libs/dngwriter/extra/xmp_sdk/public/include/client-glue/WXMPDocOps.hpp  *
M  +77   -3    core/libs/dngwriter/extra/xmp_sdk/public/include/client-glue/WXMPFiles.hpp
M  +40   -2    core/libs/dngwriter/extra/xmp_sdk/public/include/client-glue/WXMPIterator.hpp
M  +85   -3    core/libs/dngwriter/extra/xmp_sdk/public/include/client-glue/WXMPMeta.hpp
M  +189  -2    core/libs/dngwriter/extra/xmp_sdk/public/include/client-glue/WXMPUtils.hpp
M  +40   -2    core/libs/dngwriter/extra/xmp_sdk/public/include/client-glue/WXMP_Common.hpp
M  +6    -4    core/libs/dngwriter/extra/xmp_sdk/source/Endian.h
M  +39   -6    core/libs/dngwriter/extra/xmp_sdk/source/EndianUtils.hpp
M  +36   -2    core/libs/dngwriter/extra/xmp_sdk/source/ExpatAdapter.hpp
M  +32   -9    core/libs/dngwriter/extra/xmp_sdk/source/PerfUtils.cpp
M  +25   -4    core/libs/dngwriter/extra/xmp_sdk/source/PerfUtils.hpp
M  +27   -18   core/libs/dngwriter/extra/xmp_sdk/source/SafeStringAPIs.cpp
M  +24   -17   core/libs/dngwriter/extra/xmp_sdk/source/SafeStringAPIs.h
M  +24   -18   core/libs/dngwriter/extra/xmp_sdk/source/SafeTypes.h
M  +25   -19   core/libs/dngwriter/extra/xmp_sdk/source/SuppressSAL.h
M  +235  -199  core/libs/dngwriter/extra/xmp_sdk/source/UnicodeConversions.cpp
M  +26   -2    core/libs/dngwriter/extra/xmp_sdk/source/UnicodeConversions.hpp
M  +19   -0    core/libs/dngwriter/extra/xmp_sdk/source/UnicodeInlines.incl_cpp
M  +41   -2    core/libs/dngwriter/extra/xmp_sdk/source/XMLParserAdapter.hpp
M  +25   -2    core/libs/dngwriter/extra/xmp_sdk/source/XML_Node.cpp
M  +48   -8    core/libs/dngwriter/extra/xmp_sdk/source/XMP_LibUtils.cpp
M  +116  -10   core/libs/dngwriter/extra/xmp_sdk/source/XMP_LibUtils.hpp
M  +34   -13   core/libs/dngwriter/extra/xmp_sdk/source/XMP_ProgressTracker.cpp
M  +28   -4    core/libs/dngwriter/extra/xmp_sdk/source/XMP_ProgressTracker.hpp
M  +1    -0    core/tests/dngwriter/CMakeLists.txt

The files marked with a * at the end have a non valid license. Please read: https://community.kde.org/Policies/Licensing_Policy and use the headers which are listed at that page.


https://invent.kde.org/graphics/digikam/-/commit/1b911bc46a1631f9d00ef2866f9987f3a04fbdde
Comment 8 caulier.gilles 2024-04-07 07:54:45 UTC
@Lukas Jirkovsky,

digiKam 8.4.0 pre-release now include last DNG SDK 1.7.1 from Adobe.  Can you
reproduce the dysfunction using AppImage bundle available here :

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

Gilles Caulier
Comment 9 Lukas Jirkovsky 2024-04-28 20:10:51 UTC
Sorry it took me so long to test it. I'm afraid the behavior is the same, dng width is still 32 pixels less than ARW