Bug 257737 - Fuji S3 Pro Raw files (RAF) only S pixels are processed giving 6MP Should be S+R Pixels giving 12MP
Summary: Fuji S3 Pro Raw files (RAF) only S pixels are processed giving 6MP Should be ...
Status: REPORTED
Alias: None
Product: digikam
Classification: Applications
Component: Plugin-DImg-RAW (show other bugs)
Version: 4.2.0
Platform: Fedora RPMs Linux
: NOR normal
Target Milestone: ---
Assignee: Digikam Developers
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-11-23 22:04 UTC by Peter
Modified: 2024-03-31 20:33 UTC (History)
2 users (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Peter 2010-11-23 22:04:16 UTC
Version:           1.5.0 (using KDE 4.5.3) 
OS:                Linux

Importing from Fuji S3Pro raw files (likely from all fuji super ccd cameras) gives a 6mp image in digikam - it uses only the S pixels of the sensor.  Using Libkdcraw 1.1.0 Digikam 1.5.0 on KDE 4.5.3 on Fedora 13

This should be corrected to use the S + R pixels 

Reproducible: Always

Steps to Reproduce:
Convert a fuji s3 pro raf file and view the result in the editor

Actual Results:  
image size given as 3030 x 2036 6.17mp which gives a tiff file size of 35.4 mb 
Using only the S pixels limits the tonal quality and range of the finished picture.  Ultra important!

Expected Results:  
image size should be 4281 x 2871 12.29mp giving a tiff file size of 70.3 mp

If it is helpful, Raw Therapee 2.4.1 handles these files correctly
Comment 1 caulier.gilles 2010-11-23 22:18:20 UTC
Peter,

Go to Help/Components Info and copy/paste the contents here. We are looking which libkdcraw/libraw you use with digiKam.

Also, we need RAW file samples to test.

Alex, I CC you for info.

Gilles Caulier
Comment 2 Alex Tutubalin 2010-11-24 06:19:31 UTC
LibRaw is able to extract both shots from Fuji RAW without problems.
Use params.shot_select=0 for first frame and params.shot_select=1 for second one.

There is no code whith mix two shots together right, it should be done on postprocessing stage.

AFAIK, only two software with right two-frames mixing exists:
 Fuji RAW file converter
 Raw Photo Processor (Mac Only)

We (LibRaw team) are open to coperation and ready to accept patches/code which do right frame mixing for fuji.
Comment 3 Peter 2010-11-24 14:46:45 UTC
Hi Alex,

I don't know the raw conversion software you mention in you email.  I did
use to use s7raw for my fuji raw conversion in the days when I used MS
Windows.  S7raw still shows up on Google searches but I have not tried it
for a long time.  For several years now I have used and recommend Raw
Therapee  http://www.rawtherapee.com/  - I think this is now under GPL
 license. (I am only a user of the software, no other connection)

I would love to create a patch or some code for Digikam but I have no
relevant skills, I am just a photographer I am afraid

Best regards

Peter Rodgers

www.fotoworks.eu
01483 285572
0778 709 7229


On 24 November 2010 05:19, Alex Tutubalin <lexa@lexa.ru> wrote:

> https://bugs.kde.org/show_bug.cgi?id=257737
>
>
>
>
>
> --- Comment #2 from Alex Tutubalin <lexa lexa ru>  2010-11-24 06:19:31 ---
> LibRaw is able to extract both shots from Fuji RAW without problems.
> Use params.shot_select=0 for first frame and params.shot_select=1 for
> second
> one.
>
> There is no code whith mix two shots together right, it should be done on
> postprocessing stage.
>
> AFAIK, only two software with right two-frames mixing exists:
>  Fuji RAW file converter
>  Raw Photo Processor (Mac Only)
>
> We (LibRaw team) are open to coperation and ready to accept patches/code
> which
> do right frame mixing for fuji.
>
> --
> Configure bugmail: https://bugs.kde.org/userprefs.cgi?tab=email
> ------- You are receiving this mail because: -------
> You reported the bug.
>



--
Comment 4 Peter 2010-11-24 15:28:46 UTC
Hi Gilles,

I have put 3 FujiS3Pro raw files in a zip file on Rapidshare  for use on
digikam, please feel free - they were bounced by the bugs.kde.org server.

http://rapidshare.com/files/432840858/PR_Fuji_Raw_files.zip

I hope this helps

In short, when use Raw therapee http://www.rawtherapee.com/ on these files I
get a correct 16bit tiff of 75mb, when I use digikam I get a 16 bit tiff of
35mb - only half.

My Best regards

Peter Rodgers

www.fotoworks.eu
01483 285572
0778 709 7229

On 23 November 2010 21:18, Gilles Caulier <caulier.gilles@gmail.com> wrote:

> https://bugs.kde.org/show_bug.cgi?id=257737
>
>
> Gilles Caulier <caulier.gilles@gmail.com> changed:
>
>           What    |Removed                     |Added
>
> ----------------------------------------------------------------------------
>                 CC|                            |caulier.gilles@gmail.com,
>                   |                            |lexa@lexa.ru
>          Component|general                     |libkdcraw
>
>
>
>
> --- Comment #1 from Gilles Caulier <caulier gilles gmail com>  2010-11-23
> 22:18:20 ---
> Peter,
>
> Go to Help/Components Info and copy/paste the contents here. We are looking
> which libkdcraw/libraw you use with digiKam.
>
> Also, we need RAW file samples to test.
>
> Alex, I CC you for info.
>
> Gilles Caulier
>
> --
> Configure bugmail: https://bugs.kde.org/userprefs.cgi?tab=email
> ------- You are receiving this mail because: -------
> You reported the bug.
>



--
Comment 5 caulier.gilles 2011-11-03 12:24:03 UTC
Peter,

It still valid to use last digiKam version with last libkdcraw ?

Gilles Caulier
Comment 6 Peter Rodgers 2011-11-05 05:13:43 UTC
On 3 November 2011 12:24, Gilles Caulier <caulier.gilles@gmail.com> wrote:
> https://bugs.kde.org/show_bug.cgi?id=257737
>
>
>
>
>
> --- Comment #5 from Gilles Caulier <caulier gilles gmail com>  2011-11-03 12:24:03 ---
> Peter,
>
> It still valid to use last digiKam version with last libkdcraw ?
>
> Gilles Caulier
>
> --
> Configure bugmail: https://bugs.kde.org/userprefs.cgi?tab=email
> ------- You are receiving this mail because: -------
> You reported the bug.
>
Comment 7 caulier.gilles 2011-11-05 07:42:48 UTC
Hi Gilles,

Thank you for your email - I have just processed one of my Fuji S3Pro
Raf files in Digikam 2.1.1 using libraw 0.13.5 on Xubuntu 11.10  I
must say I do like the added functionality in Raw processing.

The thumbnail browser Properties reports that the file is 3,584x3583 (12.84Mpx)

When I import it in into the editor:  Properties show 3,584x3583 (12.84Mpx)
information bar on bottom of screen shows 3,030x2036 (6.17Mpx)

The saved Tiff file is 35.4mb

I processed the same file in Raw Therapee 3.0.0.6 and it saves a Tiff
of 70.3mb - this is what I would expect.

I hope this helps.
Comment 8 Alex Tutubalin 2011-11-05 08:00:28 UTC
Please note, that S3Pro files have 2:1 aspect ratio, not usual 1:1
 The RAW data size (single pixel set) is 4352:1440 (i.e. 3:1 after removing masked pixels: 64 pixels in X direction and 4 pixels in Y), while output is 3:2

So, there are two possible ways to scale the image
 1) Scale Y direction 2x, so result will become 4300x2880 (~12Mpix)
 2) Scale Y 1.4x and scale X ~0.7x, so result will become 3030x2036 (as LibRaw does)

The first method is way too optimistic: the low-sensitivity pixels are 3 stop less sensitive, so midtones are way underexposed for this pixel set. As a result, low sensitivity part of sensor will be unable to add much for mid-tones resolution.
Comment 9 Marcel Wiesweg 2012-03-12 10:48:16 UTC
Alex, reading your comment as non-expert for RAWs: Do we have a bug somewhere or not?
Comment 10 Alex Tutubalin 2012-03-12 13:04:13 UTC
See comment #2

After extracting two shots from RAF file, you need some software to stitch these frames together. AFAIK, digiKam have no code to do it.
Comment 11 Marcel Wiesweg 2012-03-12 13:29:40 UTC
Well apparently we need some code to do this, and someone who understands the problem to write this code
Comment 12 caulier.gilles 2012-03-12 13:49:45 UTC
Alex,

Which this mix S+R fuji data is not shared in libraw instead to make a dedicated implementation in digiKam (libkdcraw in fact) ? We will certainly not only the single project interested by this feature

Gilles Caulier
Comment 13 Alex Tutubalin 2012-03-12 14:06:11 UTC
Gilles,

because no one has wrote this piece of code and contribute it to LibRaw.  Our (LibRaw team) position is simple
 1) we will improve raw reading/unpacking code
 2) we're open for patches, contributions, improvements and so on for postprocessing code (dcraw_process())
 3) Currently we have no plans to develop postprocessing code ourselves.

For Fuji:
  LibRaw 0.15 will contain 'prefetch' mode, i.e. raw data for several frames will be prefetched by LibRaw, so one will be able to change shot_select=... without re-opening the file. Schedule is still unknown, we're busy with our 'RawDigger' software (www.rawdigger.org)
Comment 14 caulier.gilles 2014-09-05 20:59:30 UTC
Peter,

Do you tried to decode Fuji raw files with last digiKam 4.2.0 ? This problem still valid ?

Gilles Caulier
Comment 15 Peter 2014-09-09 09:07:28 UTC
Dear Giles,

Sorry to say the problem is still exists.

I processed and saved the same Raw file in Digikam 4.2.0 and Raw
Therapee 4.1.0 on my Sabayon system.

Digikam reports the file as 3030 x 2036 (6.17mpx)
saved to 16 bit uncompressed tiff is 35.4Mb

Raw Therapee reports the file as 4281 x2871 (12.3mp)
saved to 16 bit uncompressed tiff is 70.4Mb

My best regards

Peter Rodgers

www.fotoworks.eu
01483 285572
0778 709 7229


On 5 September 2014 21:59, Gilles Caulier <caulier.gilles@gmail.com> wrote:
> https://bugs.kde.org/show_bug.cgi?id=257737
>
> --- Comment #14 from Gilles Caulier <caulier.gilles@gmail.com> ---
> Peter,
>
> Do you tried to decode Fuji raw files with last digiKam 4.2.0 ? This problem
> still valid ?
>
> Gilles Caulier
>
> --
> You are receiving this mail because:
> You reported the bug.
Comment 16 Alex Tutubalin 2014-09-09 11:18:30 UTC
Nothing changed from my comment #13.

If someone will contribute code to process R+S pixels, I'll be happy to include it into LibRaw.
Comment 17 caulier.gilles 2016-07-28 14:06:28 UTC
Git commit d0a60f5f02890de9e5a5a3e312511930f3cf72a5 by Gilles Caulier.
Committed on 28/07/2016 at 13:54.
Pushed by cgilles into branch 'master'.

Update internal Libraw to 0.18.0 beta (July 2016).

Move Libraw samples compilation rules to core/tests/rawengine. Theses samples
files are now only generated if test code are compiled through right CMake option.

Use DNG SDK source code to compile Libraw in goal to:
   - Decode DNG analog color balances
   - Decode DNG channel black/white level
   - 8-bit encoded DNG files
   - Deflate compressed DNG support with zlib

New features:
   - Support for Black and White Jpeg previews
   - Better intepolation of low-sensitivity pixels on Sigma Quattro files

New RAW cameras supported:
   - BlackMagic Micro Cinema Camera, URSA Mini
   - Canon 80D, 1300D, 1DX MkII
   - Fujifilm X-Pro2 (uncompressed RAW only), X70, X-E2S
   - HTC One A9 and M9
   - Leica M (Typ 262) and X-U (Typ 113)
   - Nikon D5
   - Olympus Pen F, SH-3
   - Panasonic DMC-GX80/85, DMC-TZ80/81/85/ZS60, DMC-TZ100/101/ZS100
   - PhaseOne IQ150, IQ180 IR, IQ3 (all models)
   - Samsung Galaxy S7 (SM-G935F)
   - Sony ILCA-68, ILCE-6300, RX1R II, RX10 III
   - YUNEEC CGO4
Related: bug 347010, bug 328321, bug 366095

M  +12   -0    NEWS
M  +32   -28   libs/rawengine/libraw/CMakeLists.txt
M  +5    -1    libs/rawengine/libraw/COPYRIGHT
M  +104  -0    libs/rawengine/libraw/Changelog.txt
M  +1    -1    libs/rawengine/libraw/crlf2lf.sh
M  +1752 -413  libs/rawengine/libraw/internal/dcraw_common.cpp
M  +2    -2    libs/rawengine/libraw/internal/dcraw_fileio.cpp
M  +10   -6    libs/rawengine/libraw/internal/defines.h
M  +2    -2    libs/rawengine/libraw/internal/demosaic_packs.cpp
D  +0    -142  libs/rawengine/libraw/internal/libraw_bytebuffer.h
M  +12   -2    libs/rawengine/libraw/internal/libraw_internal_funcs.h
M  +29   -29   libs/rawengine/libraw/internal/libraw_x3f.cpp
M  +1    -1    libs/rawengine/libraw/internal/var_defines.h
M  +98   -98   libs/rawengine/libraw/internal/wf_filtering.cpp
M  +43   -22   libs/rawengine/libraw/libraw/libraw.h
M  +3    -3    libs/rawengine/libraw/libraw/libraw_alloc.h
M  +89   -24   libs/rawengine/libraw/libraw/libraw_const.h
M  +61   -2    libs/rawengine/libraw/libraw/libraw_datastream.h
M  +19   -14   libs/rawengine/libraw/libraw/libraw_internal.h
M  +360  -166  libs/rawengine/libraw/libraw/libraw_types.h
M  +4    -4    libs/rawengine/libraw/libraw/libraw_version.h
M  +8    -8    libs/rawengine/libraw/samples/4channels.cpp
M  +46   -43   libs/rawengine/libraw/samples/dcraw_emu.cpp
M  +1    -1    libs/rawengine/libraw/samples/dcraw_half.c
M  +1    -1    libs/rawengine/libraw/samples/half_mt.c
M  +1    -1    libs/rawengine/libraw/samples/half_mt_win32.c
M  +9    -9    libs/rawengine/libraw/samples/mem_image.cpp
M  +6    -6    libs/rawengine/libraw/samples/multirender_test.cpp
M  +23   -23   libs/rawengine/libraw/samples/postprocessing_benchmark.cpp
M  +192  -11   libs/rawengine/libraw/samples/raw-identify.cpp
M  +10   -10   libs/rawengine/libraw/samples/simple_dcraw.cpp
M  +9    -9    libs/rawengine/libraw/samples/unprocessed_raw.cpp
M  +11   -3    libs/rawengine/libraw/src/libraw_c_api.cpp
M  +1150 -167  libs/rawengine/libraw/src/libraw_cxx.cpp
M  +86   -85   libs/rawengine/libraw/src/libraw_datastream.cpp
M  +43   -0    tests/rawengine/CMakeLists.txt

http://commits.kde.org/digikam/d0a60f5f02890de9e5a5a3e312511930f3cf72a5
Comment 18 caulier.gilles 2016-11-01 17:11:53 UTC
Git commit 2c67e6ffd23d8e7fda2704e875378b7f2da20905 by Gilles Caulier.
Committed on 01/11/2016 at 17:00.
Pushed by cgilles into branch 'master'.

Internal Libraw updated to 0.18-beta1 with 78 cameras added,
floating point DNG support, decode exotic DNG formats e.g. 8-bit DNG,
and more metadata parsed while decoding as white balance presets,
DNG colordata, vendor specific metadata.

See Libraw announcement for details : http://www.libraw.org/news/libraw-0-18-beta1
Related: bug 368862, bug 367640, bug 328321, bug 347010

FIXED-IN: 5.3.0

M  +5    -0    NEWS
M  +1    -5    libs/rawengine/libraw/COPYRIGHT
M  +230  -235  libs/rawengine/libraw/Changelog.txt
M  +0    -0    libs/rawengine/libraw/LICENSE.CDDL
M  +0    -0    libs/rawengine/libraw/LICENSE.LGPL
M  +4    -5    libs/rawengine/libraw/README
A  +34   -0    libs/rawengine/libraw/README.DNGSDK.txt
M  +1    -4    libs/rawengine/libraw/internal/aahd_demosaic.cpp
M  +1682 -1038 libs/rawengine/libraw/internal/dcraw_common.cpp
M  +1    -4    libs/rawengine/libraw/internal/dcraw_fileio.cpp
M  +3    -6    libs/rawengine/libraw/internal/defines.h
M  +1    -10   libs/rawengine/libraw/internal/demosaic_packs.cpp
M  +1    -4    libs/rawengine/libraw/internal/dht_demosaic.cpp
M  +16   -6    libs/rawengine/libraw/internal/libraw_internal_funcs.h
M  +1080 -551  libs/rawengine/libraw/internal/libraw_x3f.cpp
M  +1    -3    libs/rawengine/libraw/internal/var_defines.h
M  +1    -10   libs/rawengine/libraw/internal/wf_filtering.cpp
M  +29   -21   libs/rawengine/libraw/libraw/libraw.h
M  +1    -4    libs/rawengine/libraw/libraw/libraw_alloc.h
M  +10   -32   libs/rawengine/libraw/libraw/libraw_const.h
M  +5    -8    libs/rawengine/libraw/libraw/libraw_datastream.h
M  +2    -6    libs/rawengine/libraw/libraw/libraw_internal.h
M  +67   -28   libs/rawengine/libraw/libraw/libraw_types.h
M  +3    -6    libs/rawengine/libraw/libraw/libraw_version.h
M  +1    -5    libs/rawengine/libraw/samples/4channels.cpp
M  +51   -10   libs/rawengine/libraw/samples/dcraw_emu.cpp
M  +1    -5    libs/rawengine/libraw/samples/dcraw_half.c
M  +1    -4    libs/rawengine/libraw/samples/half_mt.c
M  +1    -4    libs/rawengine/libraw/samples/half_mt_win32.c
M  +1    -4    libs/rawengine/libraw/samples/mem_image.cpp
M  +1    -5    libs/rawengine/libraw/samples/multirender_test.cpp
M  +1    -6    libs/rawengine/libraw/samples/postprocessing_benchmark.cpp
M  +124  -20   libs/rawengine/libraw/samples/raw-identify.cpp
M  +16   -5    libs/rawengine/libraw/samples/simple_dcraw.cpp
M  +2    -5    libs/rawengine/libraw/samples/unprocessed_raw.cpp
M  +38   -3    libs/rawengine/libraw/src/libraw_c_api.cpp
M  +458  -100  libs/rawengine/libraw/src/libraw_cxx.cpp
M  +1    -4    libs/rawengine/libraw/src/libraw_datastream.cpp
A  +811  -0    libs/rawengine/libraw/src/libraw_xtrans_compressed.cpp     [License: UNKNOWN]  *

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


http://commits.kde.org/digikam/2c67e6ffd23d8e7fda2704e875378b7f2da20905
Comment 19 caulier.gilles 2016-11-29 11:29:14 UTC
Can you reproduce the problem using digiKam Linux AppImage bundle ? The last
bundle is available at this url:

https://drive.google.com/drive/folders/0BzeiVr-byqt5Y0tIRWVWelRJenM

Gilles Caulier
Comment 20 caulier.gilles 2019-12-23 17:54:06 UTC
digiKam 7.0.0-beta1 use last Libraw 0.20.0 engine.

https://download.kde.org/unstable/digikam/

Can you reproduce this problem ?

Gilles Caulier
Comment 21 caulier.gilles 2020-08-02 21:41:53 UTC
digiKam 7.0.0 stable release is now published:

https://www.digikam.org/news/2020-07-19-7.0.0_release_announcement/

We need a fresh feedback on this file using this version.

Best regards

Gilles Caulier
Comment 22 caulier.gilles 2024-03-31 20:33:16 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 444442, bug 451917, bug 479728, 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