https://bugs.kde.org/show_bug.cgi?id=411027

--- Comment #32 from caulier.gil...@gmail.com ---
Git commit 8c604bdfc4f2c93934f359dfa2cfd66e787eb205 by Gilles Caulier.
Committed on 28/09/2019 at 08:03.
Pushed by cgilles into branch 'master'.

First stage to support HEIC images from Apple devices.

New image loader based on libheif+libde265. Only loading image is supported for
the moment.
Writing image requires libx265 dependency and is not yet implemented.
HEIC loader support ICC color profile, Exif, and XMP metadata handling.
Code is not yet optimized. Still TODO

* add progress observer
* load metadata stage without to decode full image.

HEIC is now a native format, blacklisted with ImageMagick and QImage loader
Related: bug 393408

M  +1    -0    NEWS
M  +1    -0    core/dplugins/dimg/CMakeLists.txt
M  +3    -3    core/dplugins/dimg/README
A  +173  -0    core/dplugins/dimg/heif/CMakeLists.txt
A  +608  -0    core/dplugins/dimg/heif/dimgheifloader.cpp     [License: GPL
(v2+)]
A  +71   -0    core/dplugins/dimg/heif/dimgheifloader.h     [License: GPL
(v2+)]
A  +183  -0    core/dplugins/dimg/heif/dimgheifplugin.cpp     [License: GPL
(v2+)]
A  +73   -0    core/dplugins/dimg/heif/dimgheifplugin.h     [License: GPL
(v2+)]
A  +1    -0    core/dplugins/dimg/heif/libde265/README
A  +359  -0    core/dplugins/dimg/heif/libde265/acceleration.h     [License:
LGPL (v3+)]
A  +99   -0    core/dplugins/dimg/heif/libde265/alloc_pool.cc     [License:
LGPL (v3+)]
A  +61   -0    core/dplugins/dimg/heif/libde265/alloc_pool.h     [License: LGPL
(v3+)]
A  +176  -0    core/dplugins/dimg/heif/libde265/bitstream.cc     [License: LGPL
(v3+)]
A  +63   -0    core/dplugins/dimg/heif/libde265/bitstream.h     [License: LGPL
(v3+)]
A  +1033 -0    core/dplugins/dimg/heif/libde265/cabac.cc     [License: LGPL
(v3+)]
A  +211  -0    core/dplugins/dimg/heif/libde265/cabac.h     [License: LGPL
(v3+)]
A  +491  -0    core/dplugins/dimg/heif/libde265/configparam.cc     [License:
LGPL (v3+)]
A  +401  -0    core/dplugins/dimg/heif/libde265/configparam.h     [License:
LGPL (v3+)]
A  +347  -0    core/dplugins/dimg/heif/libde265/contextmodel.cc     [License:
LGPL (v3+)]
A  +130  -0    core/dplugins/dimg/heif/libde265/contextmodel.h     [License:
LGPL (v3+)]
A  +36   -0    core/dplugins/dimg/heif/libde265/de265-version.h.in
A  +711  -0    core/dplugins/dimg/heif/libde265/de265.cc     [License: LGPL
(v3+)]
A  +437  -0    core/dplugins/dimg/heif/libde265/de265.h     [License: LGPL
(v3+)]
A  +1058 -0    core/dplugins/dimg/heif/libde265/deblock.cc     [License: LGPL
(v3+)]
A  +29   -0    core/dplugins/dimg/heif/libde265/deblock.h     [License: LGPL
(v3+)]
A  +2285 -0    core/dplugins/dimg/heif/libde265/decctx.cc     [License: LGPL
(v3+)]
A  +528  -0    core/dplugins/dimg/heif/libde265/decctx.h     [License: LGPL
(v3+)]
A  +296  -0    core/dplugins/dimg/heif/libde265/dpb.cc     [License: LGPL
(v3+)]
A  +118  -0    core/dplugins/dimg/heif/libde265/dpb.h     [License: LGPL (v3+)]
A  +321  -0    core/dplugins/dimg/heif/libde265/en265.cc     [License: LGPL
(v3+)]
A  +218  -0    core/dplugins/dimg/heif/libde265/en265.h     [License: LGPL
(v3+)]
A  +95   -0    core/dplugins/dimg/heif/libde265/encoder/algo/algo.cc    
[License: LGPL (v3+)]
A  +95   -0    core/dplugins/dimg/heif/libde265/encoder/algo/algo.h    
[License: LGPL (v3+)]
A  +113  -0   
core/dplugins/dimg/heif/libde265/encoder/algo/cb-interpartmode.cc     [License:
LGPL (v3+)]
A  +108  -0    core/dplugins/dimg/heif/libde265/encoder/algo/cb-interpartmode.h
    [License: LGPL (v3+)]
A  +132  -0    core/dplugins/dimg/heif/libde265/encoder/algo/cb-intra-inter.cc 
   [License: LGPL (v3+)]
A  +68   -0    core/dplugins/dimg/heif/libde265/encoder/algo/cb-intra-inter.h  
  [License: LGPL (v3+)]
A  +185  -0   
core/dplugins/dimg/heif/libde265/encoder/algo/cb-intrapartmode.cc     [License:
LGPL (v3+)]
A  +149  -0    core/dplugins/dimg/heif/libde265/encoder/algo/cb-intrapartmode.h
    [License: LGPL (v3+)]
A  +176  -0    core/dplugins/dimg/heif/libde265/encoder/algo/cb-mergeindex.cc  
  [License: LGPL (v3+)]
A  +70   -0    core/dplugins/dimg/heif/libde265/encoder/algo/cb-mergeindex.h   
 [License: LGPL (v3+)]
A  +114  -0    core/dplugins/dimg/heif/libde265/encoder/algo/cb-skip.cc    
[License: LGPL (v3+)]
A  +72   -0    core/dplugins/dimg/heif/libde265/encoder/algo/cb-skip.h    
[License: LGPL (v3+)]
A  +178  -0    core/dplugins/dimg/heif/libde265/encoder/algo/cb-split.cc    
[License: LGPL (v3+)]
A  +88   -0    core/dplugins/dimg/heif/libde265/encoder/algo/cb-split.h    
[License: LGPL (v3+)]
A  +202  -0    core/dplugins/dimg/heif/libde265/encoder/algo/coding-options.cc 
   [License: LGPL (v3+)]
A  +151  -0    core/dplugins/dimg/heif/libde265/encoder/algo/coding-options.h  
  [License: LGPL (v3+)]
A  +61   -0    core/dplugins/dimg/heif/libde265/encoder/algo/ctb-qscale.cc    
[License: LGPL (v3+)]
A  +109  -0    core/dplugins/dimg/heif/libde265/encoder/algo/ctb-qscale.h    
[License: LGPL (v3+)]
A  +318  -0    core/dplugins/dimg/heif/libde265/encoder/algo/pb-mv.cc    
[License: LGPL (v3+)]
A  +177  -0    core/dplugins/dimg/heif/libde265/encoder/algo/pb-mv.h    
[License: LGPL (v3+)]
A  +532  -0   
core/dplugins/dimg/heif/libde265/encoder/algo/tb-intrapredmode.cc     [License:
LGPL (v3+)]
A  +297  -0    core/dplugins/dimg/heif/libde265/encoder/algo/tb-intrapredmode.h
    [License: LGPL (v3+)]
A  +46   -0    core/dplugins/dimg/heif/libde265/encoder/algo/tb-rateestim.cc   
 [License: LGPL (v3+)]
A  +101  -0    core/dplugins/dimg/heif/libde265/encoder/algo/tb-rateestim.h    
[License: LGPL (v3+)]
A  +378  -0    core/dplugins/dimg/heif/libde265/encoder/algo/tb-split.cc    
[License: LGPL (v3+)]
A  +126  -0    core/dplugins/dimg/heif/libde265/encoder/algo/tb-split.h    
[License: LGPL (v3+)]
A  +254  -0    core/dplugins/dimg/heif/libde265/encoder/algo/tb-transform.cc   
 [License: LGPL (v3+)]
A  +86   -0    core/dplugins/dimg/heif/libde265/encoder/algo/tb-transform.h    
[License: LGPL (v3+)]
A  +313  -0    core/dplugins/dimg/heif/libde265/encoder/encoder-context.cc    
[License: LGPL (v3+)]
A  +173  -0    core/dplugins/dimg/heif/libde265/encoder/encoder-context.h    
[License: LGPL (v3+)]
A  +428  -0    core/dplugins/dimg/heif/libde265/encoder/encoder-core.cc    
[License: LGPL (v3+)]
A  +151  -0    core/dplugins/dimg/heif/libde265/encoder/encoder-core.h    
[License: LGPL (v3+)]
A  +340  -0    core/dplugins/dimg/heif/libde265/encoder/encoder-intrapred.cc   
 [License: LGPL (v3+)]
A  +40   -0    core/dplugins/dimg/heif/libde265/encoder/encoder-intrapred.h    
[License: LGPL (v3+)]
A  +80   -0    core/dplugins/dimg/heif/libde265/encoder/encoder-motion.cc    
[License: LGPL (v3+)]
A  +32   -0    core/dplugins/dimg/heif/libde265/encoder/encoder-motion.h    
[License: LGPL (v3+)]
A  +83   -0    core/dplugins/dimg/heif/libde265/encoder/encoder-params.cc    
[License: LGPL (v3+)]
A  +143  -0    core/dplugins/dimg/heif/libde265/encoder/encoder-params.h    
[License: LGPL (v3+)]
A  +1730 -0    core/dplugins/dimg/heif/libde265/encoder/encoder-syntax.cc    
[License: LGPL (v3+)]
A  +102  -0    core/dplugins/dimg/heif/libde265/encoder/encoder-syntax.h    
[License: LGPL (v3+)]
A  +766  -0    core/dplugins/dimg/heif/libde265/encoder/encoder-types.cc    
[License: LGPL (v3+)]
A  +409  -0    core/dplugins/dimg/heif/libde265/encoder/encoder-types.h    
[License: LGPL (v3+)]
A  +321  -0    core/dplugins/dimg/heif/libde265/encoder/encpicbuf.cc    
[License: LGPL (v3+)]
A  +144  -0    core/dplugins/dimg/heif/libde265/encoder/encpicbuf.h    
[License: LGPL (v3+)]
A  +106  -0    core/dplugins/dimg/heif/libde265/encoder/sop.cc     [License:
LGPL (v3+)]
A  +147  -0    core/dplugins/dimg/heif/libde265/encoder/sop.h     [License:
LGPL (v3+)]
A  +1210 -0    core/dplugins/dimg/heif/libde265/fallback-dct.cc     [License:
LGPL (v3+)]
A  +96   -0    core/dplugins/dimg/heif/libde265/fallback-dct.h     [License:
LGPL (v3+)]
A  +648  -0    core/dplugins/dimg/heif/libde265/fallback-motion.cc    
[License: LGPL (v3+)]
A  +104  -0    core/dplugins/dimg/heif/libde265/fallback-motion.h     [License:
LGPL (v3+)]
A  +127  -0    core/dplugins/dimg/heif/libde265/fallback.cc     [License: LGPL
(v3+)]
A  +28   -0    core/dplugins/dimg/heif/libde265/fallback.h     [License: LGPL
(v3+)]
A  +220  -0    core/dplugins/dimg/heif/libde265/image-io.cc     [License: LGPL
(v3+)]
A  +121  -0    core/dplugins/dimg/heif/libde265/image-io.h     [License: LGPL
(v3+)]
A  +809  -0    core/dplugins/dimg/heif/libde265/image.cc     [License: LGPL
(v3+)]
A  +864  -0    core/dplugins/dimg/heif/libde265/image.h     [License: LGPL
(v3+)]
A  +364  -0    core/dplugins/dimg/heif/libde265/intrapred.cc     [License: LGPL
(v3+)]
A  +678  -0    core/dplugins/dimg/heif/libde265/intrapred.h     [License: LGPL
(v3+)]
A  +295  -0    core/dplugins/dimg/heif/libde265/md5.cc     [License: Public
Domain]
A  +45   -0    core/dplugins/dimg/heif/libde265/md5.h     [License: Public
Domain]
A  +2111 -0    core/dplugins/dimg/heif/libde265/motion.cc     [License: LGPL
(v3+)]
A  +131  -0    core/dplugins/dimg/heif/libde265/motion.h     [License: LGPL
(v3+)]
A  +446  -0    core/dplugins/dimg/heif/libde265/nal-parser.cc     [License:
LGPL (v3+)]
A  +154  -0    core/dplugins/dimg/heif/libde265/nal-parser.h     [License: LGPL
(v3+)]
A  +166  -0    core/dplugins/dimg/heif/libde265/nal.cc     [License: LGPL
(v3+)]
A  +129  -0    core/dplugins/dimg/heif/libde265/nal.h     [License: LGPL (v3+)]
A  +992  -0    core/dplugins/dimg/heif/libde265/pps.cc     [License: LGPL
(v3+)]
A  +163  -0    core/dplugins/dimg/heif/libde265/pps.h     [License: LGPL (v3+)]
A  +111  -0    core/dplugins/dimg/heif/libde265/quality.cc     [License: LGPL
(v3+)]
A  +47   -0    core/dplugins/dimg/heif/libde265/quality.h     [License: LGPL
(v3+)]
A  +434  -0    core/dplugins/dimg/heif/libde265/refpic.cc     [License: LGPL
(v3+)]
A  +61   -0    core/dplugins/dimg/heif/libde265/refpic.h     [License: LGPL
(v3+)]
A  +524  -0    core/dplugins/dimg/heif/libde265/sao.cc     [License: LGPL
(v3+)]
A  +36   -0    core/dplugins/dimg/heif/libde265/sao.h     [License: LGPL (v3+)]
A  +152  -0    core/dplugins/dimg/heif/libde265/scan.cc     [License: LGPL
(v3+)]
A  +43   -0    core/dplugins/dimg/heif/libde265/scan.h     [License: LGPL
(v3+)]
A  +501  -0    core/dplugins/dimg/heif/libde265/sei.cc     [License: LGPL
(v3+)]
A  +89   -0    core/dplugins/dimg/heif/libde265/sei.h     [License: LGPL (v3+)]
A  +5072 -0    core/dplugins/dimg/heif/libde265/slice.cc     [License: LGPL
(v3+)]
A  +313  -0    core/dplugins/dimg/heif/libde265/slice.h     [License: LGPL
(v3+)]
A  +1298 -0    core/dplugins/dimg/heif/libde265/sps.cc     [License: LGPL
(v3+)]
A  +257  -0    core/dplugins/dimg/heif/libde265/sps.h     [License: LGPL (v3+)]
A  +312  -0    core/dplugins/dimg/heif/libde265/threads.cc     [License: LGPL
(v3+)]
A  +148  -0    core/dplugins/dimg/heif/libde265/threads.h     [License: LGPL
(v3+)]
A  +739  -0    core/dplugins/dimg/heif/libde265/transform.cc     [License: LGPL
(v3+)]
A  +65   -0    core/dplugins/dimg/heif/libde265/transform.h     [License: LGPL
(v3+)]
A  +247  -0    core/dplugins/dimg/heif/libde265/util.cc     [License: LGPL
(v3+)]
A  +229  -0    core/dplugins/dimg/heif/libde265/util.h     [License: LGPL
(v3+)]
A  +562  -0    core/dplugins/dimg/heif/libde265/visualize.cc     [License: LGPL
(v3+)]
A  +50   -0    core/dplugins/dimg/heif/libde265/visualize.h     [License: LGPL
(v3+)]
A  +602  -0    core/dplugins/dimg/heif/libde265/vps.cc     [License: LGPL
(v3+)]
A  +173  -0    core/dplugins/dimg/heif/libde265/vps.h     [License: LGPL (v3+)]
A  +425  -0    core/dplugins/dimg/heif/libde265/vui.cc     [License: LGPL
(v3+)]
A  +126  -0    core/dplugins/dimg/heif/libde265/vui.h     [License: LGPL (v3+)]
A  +1    -0    core/dplugins/dimg/heif/libheif/README
A  +615  -0    core/dplugins/dimg/heif/libheif/bitstream.cc     [License: LGPL
(v3+)]
A  +288  -0    core/dplugins/dimg/heif/libheif/bitstream.h     [License: LGPL
(v3+)]
A  +2887 -0    core/dplugins/dimg/heif/libheif/box.cc     [License: LGPL (v3+)]
A  +857  -0    core/dplugins/dimg/heif/libheif/box.h     [License: LGPL (v3+)]
A  +39   -0    core/dplugins/dimg/heif/libheif/box_fuzzer.cc     [License: LGPL
(v3+)]
A  +177  -0    core/dplugins/dimg/heif/libheif/encoder_fuzzer.cc     [License:
LGPL (v3+)]
A  +168  -0    core/dplugins/dimg/heif/libheif/error.cc     [License: LGPL
(v3+)]
A  +112  -0    core/dplugins/dimg/heif/libheif/error.h     [License: LGPL
(v3+)]
A  +115  -0    core/dplugins/dimg/heif/libheif/file_fuzzer.cc     [License:
LGPL (v3+)]
A  +1864 -0    core/dplugins/dimg/heif/libheif/heif.cc     [License: LGPL
(v3+)]
A  +1221 -0    core/dplugins/dimg/heif/libheif/heif.h     [License: LGPL (v3+)]
A  +66   -0    core/dplugins/dimg/heif/libheif/heif_api_structs.h     [License:
LGPL (v3+)]
A  +2299 -0    core/dplugins/dimg/heif/libheif/heif_colorconversion.cc    
[License: LGPL (v3+)]
A  +129  -0    core/dplugins/dimg/heif/libheif/heif_colorconversion.h    
[License: LGPL (v3+)]
A  +1944 -0    core/dplugins/dimg/heif/libheif/heif_context.cc     [License:
LGPL (v3+)]
A  +293  -0    core/dplugins/dimg/heif/libheif/heif_context.h     [License:
LGPL (v3+)]
A  +1029 -0    core/dplugins/dimg/heif/libheif/heif_cxx.h     [License: GPL
(v3+)]
A  +355  -0    core/dplugins/dimg/heif/libheif/heif_decoder_libde265.cc    
[License: LGPL (v3+)]
A  +26   -0    core/dplugins/dimg/heif/libheif/heif_decoder_libde265.h    
[License: LGPL (v3+)]
A  +290  -0    core/dplugins/dimg/heif/libheif/heif_emscripten.h     [License:
UNKNOWN]  *
A  +837  -0    core/dplugins/dimg/heif/libheif/heif_encoder_x265.cc    
[License: LGPL (v3+)]
A  +40   -0    core/dplugins/dimg/heif/libheif/heif_encoder_x265.h    
[License: GENERATED FILE]  *
A  +655  -0    core/dplugins/dimg/heif/libheif/heif_file.cc     [License: LGPL
(v3+)]
A  +165  -0    core/dplugins/dimg/heif/libheif/heif_file.h     [License: LGPL
(v3+)]
A  +302  -0    core/dplugins/dimg/heif/libheif/heif_hevc.cc     [License: LGPL
(v3+)]
A  +61   -0    core/dplugins/dimg/heif/libheif/heif_hevc.h     [License: LGPL
(v3+)]
A  +802  -0    core/dplugins/dimg/heif/libheif/heif_image.cc     [License: LGPL
(v3+)]
A  +130  -0    core/dplugins/dimg/heif/libheif/heif_image.h     [License: LGPL
(v3+)]
A  +53   -0    core/dplugins/dimg/heif/libheif/heif_limits.h     [License: LGPL
(v3+)]
A  +32   -0    core/dplugins/dimg/heif/libheif/heif_plugin.cc     [License:
LGPL (v3+)]
A  +254  -0    core/dplugins/dimg/heif/libheif/heif_plugin.h     [License:
GENERATED FILE]  *
A  +148  -0    core/dplugins/dimg/heif/libheif/heif_plugin_registry.cc    
[License: LGPL (v3+)]
A  +62   -0    core/dplugins/dimg/heif/libheif/heif_plugin_registry.h    
[License: LGPL (v3+)]
A  +36   -0    core/dplugins/dimg/heif/libheif/heif_version.h.in
A  +66   -0    core/dplugins/dimg/heif/libheif/logging.h     [License: LGPL
(v3+)]
M  +6    -27   core/dplugins/dimg/imagemagick/dimgimagemagickplugin.cpp
M  +6    -26   core/dplugins/dimg/qimage/dimgqimageplugin.cpp
M  +42   -34   core/libs/dimg/dimg_p.h
M  +11   -2    core/tests/dimg/testdimgloader.cpp

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/kde/digikam/commit/8c604bdfc4f2c93934f359dfa2cfd66e787eb205

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to