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.