changeset 630:5860af2e363b

Removed misleading log messages about transcoding
author Alain Mazy <am@osimis.io>
date Fri, 13 Oct 2023 08:35:59 +0200
parents 6fc1fc5da5f4
children 5b519fbe779d
files NEWS Plugin/WadoRsRetrieveFrames.cpp
diffstat 2 files changed, 15 insertions(+), 11 deletions(-) [+]
line wrap: on
line diff
--- a/NEWS	Mon Sep 04 07:51:47 2023 +0200
+++ b/NEWS	Fri Oct 13 08:35:59 2023 +0200
@@ -1,3 +1,9 @@
+Pending changes in the mainline
+===============================
+
+* Removed misleading log messages about transcoding.
+  https://discourse.orthanc-server.org/t/dicomweb-plugin-1-13-possible-unnecessary-transcoding/3979
+
 Version 1.15 (2023-08-24)
 =========================
 
--- a/Plugin/WadoRsRetrieveFrames.cpp	Mon Sep 04 07:51:47 2023 +0200
+++ b/Plugin/WadoRsRetrieveFrames.cpp	Fri Oct 13 08:35:59 2023 +0200
@@ -456,9 +456,16 @@
     }
 
     Orthanc::DicomTransferSyntax targetSyntax;
+    Orthanc::DicomTransferSyntax currentSyntax;
 
-    std::unique_ptr<OrthancPlugins::DicomInstance> instance;
-    if (ParseTransferSyntax(targetSyntax, request))
+    std::unique_ptr<OrthancPlugins::DicomInstance> instance(new OrthancPlugins::DicomInstance(content.GetData(), content.GetSize()));
+    if (!Orthanc::LookupTransferSyntax(currentSyntax, instance->GetTransferSyntaxUid()))
+    {
+      throw Orthanc::OrthancException(Orthanc::ErrorCode_NotImplemented,
+                                      "Unknown transfer syntax: " + std::string(GetTransferSyntaxUid(currentSyntax)));
+    }
+
+    if (ParseTransferSyntax(targetSyntax, request) && targetSyntax != currentSyntax)
     {
       OrthancPlugins::LogInfo("DICOMweb RetrieveFrames: Transcoding instance " + orthancId + 
                               " to transfer syntax " + Orthanc::GetTransferSyntaxUid(targetSyntax));
@@ -466,15 +473,6 @@
       instance.reset(OrthancPlugins::DicomInstance::Transcode(
                        content.GetData(), content.GetSize(), GetTransferSyntaxUid(targetSyntax)));
     }
-    else
-    {
-      instance.reset(new OrthancPlugins::DicomInstance(content.GetData(), content.GetSize()));
-      if (!Orthanc::LookupTransferSyntax(targetSyntax, instance->GetTransferSyntaxUid()))
-      {
-        throw Orthanc::OrthancException(Orthanc::ErrorCode_NotImplemented,
-                                        "Unknown transfer syntax: " + std::string(GetTransferSyntaxUid(targetSyntax)));
-      }
-    }
 
     if (instance.get() == NULL)
     {