File indexing completed on 2025-01-19 03:50:59

0001 /* ============================================================
0002  *
0003  * This file is a part of digiKam project
0004  * https://www.digikam.org
0005  *
0006  * Date        : 2019-09-26
0007  * Description : A HEIF IO file for DImg framework
0008  *
0009  * SPDX-FileCopyrightText: 2019-2024 by Gilles Caulier <caulier dot gilles at gmail dot com>
0010  *
0011  * SPDX-License-Identifier: GPL-2.0-or-later
0012  *
0013  * ============================================================ */
0014 
0015 #include "dimgheifloader.h"
0016 
0017 // Local includes
0018 
0019 #include "digikam_config.h"
0020 #include "digikam_debug.h"
0021 #include "dimgloaderobserver.h"
0022 
0023 namespace Digikam
0024 {
0025 
0026 DImgHEIFLoader::DImgHEIFLoader(DImg* const image)
0027     : DImgLoader(image)
0028 {
0029     m_hasAlpha   = false;
0030     m_sixteenBit = false;
0031     m_observer   = nullptr;
0032 }
0033 
0034 DImgHEIFLoader::~DImgHEIFLoader()
0035 {
0036 }
0037 
0038 bool DImgHEIFLoader::hasAlpha() const
0039 {
0040     return m_hasAlpha;
0041 }
0042 
0043 bool DImgHEIFLoader::sixteenBit() const
0044 {
0045     return m_sixteenBit;
0046 }
0047 
0048 bool DImgHEIFLoader::isReadOnly() const
0049 {
0050 
0051 #ifdef HAVE_X265
0052 
0053     return false;
0054 
0055 #else
0056 
0057     return true;
0058 
0059 #endif
0060 
0061 }
0062 
0063 bool DImgHEIFLoader::isHeifSuccess(struct heif_error* const error)
0064 {
0065     if (error->code == 0)
0066     {
0067         return true;
0068     }
0069 
0070     qCWarning(DIGIKAM_DIMG_LOG_HEIF) << "Error while processing HEIF image:" << error->message;
0071 
0072     return false;
0073 }
0074 
0075 } // namespace Digikam