Blob Blame History Raw
From e31292ddd7f296e88a390566e632e5eab25eabb1 Mon Sep 17 00:00:00 2001
From: "Ankur Sinha (Ankur Sinha Gmail)" <sanjay.ankur@gmail.com>
Date: Sun, 28 Jul 2019 19:20:49 +0100
Subject: [PATCH 11/16] 3.6.4 update ilv for new CharLS

---
 dcmjpls/libsrc/djcodecd.cc |  4 ++--
 dcmjpls/libsrc/djcodece.cc | 48 +++++++++++++++++++-------------------
 2 files changed, 26 insertions(+), 26 deletions(-)

diff --git a/dcmjpls/libsrc/djcodecd.cc b/dcmjpls/libsrc/djcodecd.cc
index 6f1ddba61..2e36680cd 100644
--- a/dcmjpls/libsrc/djcodecd.cc
+++ b/dcmjpls/libsrc/djcodecd.cc
@@ -409,7 +409,7 @@ OFCondition DJLSDecoderBase::decodeFrame(
 
       if (result.good() && imageSamplesPerPixel == 3)
       {
-        if (imagePlanarConfiguration == 1 && params.ilv != ILV_NONE)
+        if (imagePlanarConfiguration == 1 && params.interleaveMode != charls::InterleaveMode::None)
         {
           // The dataset says this should be planarConfiguration == 1, but
           // it isn't -> convert it.
@@ -419,7 +419,7 @@ OFCondition DJLSDecoderBase::decodeFrame(
           else
             result = createPlanarConfiguration1Word(OFreinterpret_cast(Uint16*, buffer), imageColumns, imageRows);
         }
-        else if (imagePlanarConfiguration == 0 && params.ilv != ILV_SAMPLE && params.ilv != ILV_LINE)
+        else if (imagePlanarConfiguration == 0 && params.interleaveMode != charls::InterleaveMode::Sample && params.interleaveMode != charls::InterleaveMode::Line)
         {
           // The dataset says this should be planarConfiguration == 0, but
           // it isn't -> convert it.
diff --git a/dcmjpls/libsrc/djcodece.cc b/dcmjpls/libsrc/djcodece.cc
index 8e68f7386..9e06d842a 100644
--- a/dcmjpls/libsrc/djcodece.cc
+++ b/dcmjpls/libsrc/djcodece.cc
@@ -597,15 +597,15 @@ OFCondition DJLSEncoderBase::compressRawFrame(
   else
     return EC_IllegalCall;
 
-  enum interleavemode ilv;
+  CharlsInterleaveModeType ilv;
   switch (planarConfiguration)
   {
-    // ILV_LINE is not supported by DICOM
+    // charls::InterleaveMode::Line is not supported by DICOM
     case 0:
-      ilv = ILV_SAMPLE;
+      ilv = charls::InterleaveMode::Sample;
       break;
     case 1:
-      ilv = ILV_NONE;
+      ilv = charls::InterleaveMode::None;
       break;
     default:
       return EC_IllegalCall;
@@ -614,39 +614,39 @@ OFCondition DJLSEncoderBase::compressRawFrame(
   switch (djcp->getJplsInterleaveMode())
   {
     case DJLSCodecParameter::interleaveSample:
-      jls_params.ilv = ILV_SAMPLE;
+      jls_params.interleaveMode = charls::InterleaveMode::Sample;
       break;
     case DJLSCodecParameter::interleaveLine:
-      jls_params.ilv = ILV_LINE;
+      jls_params.interleaveMode = charls::InterleaveMode::Line;
       break;
     case DJLSCodecParameter::interleaveNone:
-      jls_params.ilv = ILV_NONE;
+      jls_params.interleaveMode = charls::InterleaveMode::None;
       break;
     case DJLSCodecParameter::interleaveDefault:
     default:
       // In default mode we just never convert the image to another
       // interleave-mode. Instead, we use what is already there.
-      jls_params.ilv = ilv;
+      jls_params.interleaveMode = ilv;
       break;
   }
 
-  // Special case: one component images are always ILV_NONE (Standard requires this)
+  // Special case: one component images are always charls::InterleaveMode::None (Standard requires this)
   if (jls_params.components == 1)
   {
-    jls_params.ilv = ILV_NONE;
+    jls_params.interleaveMode = charls::InterleaveMode::None;
     // Don't try to convert to another interleave mode, not necessary
-    ilv = ILV_NONE;
+    ilv = charls::InterleaveMode::None;
   }
 
   // Do we have to convert the image to some other interleave mode?
-  if ((jls_params.ilv == ILV_NONE && (ilv == ILV_SAMPLE || ilv == ILV_LINE)) ||
-      (ilv == ILV_NONE && (jls_params.ilv == ILV_SAMPLE || jls_params.ilv == ILV_LINE)))
+  if ((jls_params.interleaveMode == charls::InterleaveMode::None && (ilv == charls::InterleaveMode::Sample || ilv == charls::InterleaveMode::Line)) ||
+      (ilv == charls::InterleaveMode::None && (jls_params.interleaveMode == charls::InterleaveMode::Sample || jls_params.interleaveMode == charls::InterleaveMode::Line)))
   {
-    DCMJPLS_DEBUG("Converting image from " << (ilv == ILV_NONE ? "color-by-plane" : "color-by-pixel")
-          << " to " << (jls_params.ilv == ILV_NONE ? "color-by-plane" : "color-by-pixel"));
+    DCMJPLS_DEBUG("Converting image from " << (ilv == charls::InterleaveMode::None ? "color-by-plane" : "color-by-pixel")
+          << " to " << (jls_params.interleaveMode == charls::InterleaveMode::None ? "color-by-plane" : "color-by-pixel"));
 
     frameBuffer = new Uint8[frameSize];
-    if (jls_params.ilv == ILV_NONE)
+    if (jls_params.interleaveMode == charls::InterleaveMode::None)
       result = convertToUninterleaved(frameBuffer, framePointer, samplesPerPixel, width, height, bitsAllocated);
     else
       /* For CharLS, sample-interleaved and line-interleaved is both expected to
@@ -1034,31 +1034,31 @@ OFCondition DJLSEncoderBase::compressCookedFrame(
   switch (djcp->getJplsInterleaveMode())
   {
     case DJLSCodecParameter::interleaveSample:
-      jls_params.ilv = ILV_SAMPLE;
+      jls_params.interleaveMode = charls::InterleaveMode::Sample;
       break;
     case DJLSCodecParameter::interleaveLine:
-      jls_params.ilv = ILV_LINE;
+      jls_params.interleaveMode = charls::InterleaveMode::Line;
       break;
     case DJLSCodecParameter::interleaveNone:
-      jls_params.ilv = ILV_NONE;
+      jls_params.interleaveMode = charls::InterleaveMode::None;
       break;
     case DJLSCodecParameter::interleaveDefault:
     default:
-      // Default for the cooked encoder is always ILV_LINE
-      jls_params.ilv = ILV_LINE;
+      // Default for the cooked encoder is always charls::InterleaveMode::Line
+      jls_params.interleaveMode = charls::InterleaveMode::Line;
       break;
   }
 
-  // Special case: one component images are always ILV_NONE (Standard requires this)
+  // Special case: one component images are always CharlsInterleaveMode.None (Standard requires this)
   if (jls_params.components == 1)
   {
-    jls_params.ilv = ILV_NONE;
+    jls_params.interleaveMode = charls::InterleaveMode::None;
   }
 
   Uint8 *frameBuffer = NULL;
   Uint8 *framePointer = buffer;
   // Do we have to convert the image to color-by-plane now?
-  if (jls_params.ilv == ILV_NONE && jls_params.components != 1)
+  if (jls_params.interleaveMode == charls::InterleaveMode::None && jls_params.components != 1)
   {
     DCMJPLS_DEBUG("Converting image from color-by-pixel to color-by-plane");
 
-- 
2.21.0