From 8845dd9818355542b373d6b3fe63526c8d385f82 Mon Sep 17 00:00:00 2001 From: Daniel Novomesky Date: Tue, 2 Feb 2021 09:28:32 +0100 Subject: [PATCH] Simplify portion of NCLX color profile code --- src/imageformats/avif.cpp | 27 +++++++-------------------- 1 file changed, 7 insertions(+), 20 deletions(-) diff --git a/src/imageformats/avif.cpp b/src/imageformats/avif.cpp index 3d9d7fa..33c32d2 100644 --- a/src/imageformats/avif.cpp +++ b/src/imageformats/avif.cpp @@ -198,25 +198,8 @@ bool QAVIFHandler::decode_one_frame() qWarning("Invalid QColorSpace created from ICC!\n"); } } else { - - avifColorPrimaries primaries_to_load; - avifTransferCharacteristics trc_to_load; - - if ((m_decoder->image->colorPrimaries == 2 /* AVIF_COLOR_PRIMARIES_UNSPECIFIED */) || - (m_decoder->image->colorPrimaries == 0 /* AVIF_COLOR_PRIMARIES_UNKNOWN */)) { - primaries_to_load = (avifColorPrimaries) 1; // AVIF_COLOR_PRIMARIES_BT709 - } else { - primaries_to_load = m_decoder->image->colorPrimaries; - } - if ((m_decoder->image->transferCharacteristics == 2 /* AVIF_TRANSFER_CHARACTERISTICS_UNSPECIFIED */) || - (m_decoder->image->transferCharacteristics == 0 /* AVIF_TRANSFER_CHARACTERISTICS_UNKNOWN */)) { - trc_to_load = (avifTransferCharacteristics) 13; // AVIF_TRANSFER_CHARACTERISTICS_SRGB - } else { - trc_to_load = m_decoder->image->transferCharacteristics; - } - float prim[8]; // outPrimaries: rX, rY, gX, gY, bX, bY, wX, wY - avifColorPrimariesGetValues(primaries_to_load, prim); + avifColorPrimariesGetValues(m_decoder->image->colorPrimaries, prim); QPointF redPoint(prim[0], prim[1]); QPointF greenPoint(prim[2], prim[3]); @@ -227,7 +210,7 @@ bool QAVIFHandler::decode_one_frame() QColorSpace::TransferFunction q_trc = QColorSpace::TransferFunction::Custom; float q_trc_gamma = 0.0f; - switch (trc_to_load) { + switch (m_decoder->image->transferCharacteristics) { /* AVIF_TRANSFER_CHARACTERISTICS_BT470M */ case 4: q_trc = QColorSpace::TransferFunction::Gamma; @@ -243,6 +226,8 @@ bool QAVIFHandler::decode_one_frame() q_trc = QColorSpace::TransferFunction::Linear; break; /* AVIF_TRANSFER_CHARACTERISTICS_SRGB */ + case 0: + case 2: /* AVIF_TRANSFER_CHARACTERISTICS_UNSPECIFIED */ case 13: q_trc = QColorSpace::TransferFunction::SRgb; break; @@ -254,9 +239,11 @@ bool QAVIFHandler::decode_one_frame() } if (q_trc != QColorSpace::TransferFunction::Custom) { //we create new colorspace using Qt - switch (primaries_to_load) { + switch (m_decoder->image->colorPrimaries) { /* AVIF_COLOR_PRIMARIES_BT709 */ + case 0: case 1: + case 2: /* AVIF_COLOR_PRIMARIES_UNSPECIFIED */ result.setColorSpace(QColorSpace(QColorSpace::Primaries::SRgb, q_trc, q_trc_gamma)); break; /* AVIF_COLOR_PRIMARIES_SMPTE432 */