diff OrthancServer/ServerContext.cpp @ 3904:c62f84c7eda9 transcoding

fixing incorrect behavior in MemoryBufferTranscoder
author Sebastien Jodogne <s.jodogne@gmail.com>
date Thu, 07 May 2020 17:21:20 +0200
parents d1273d7cc200
children f0dd5ded8927
line wrap: on
line diff
--- a/OrthancServer/ServerContext.cpp	Thu May 07 16:43:08 2020 +0200
+++ b/OrthancServer/ServerContext.cpp	Thu May 07 17:21:20 2020 +0200
@@ -1161,6 +1161,13 @@
                                 const std::set<DicomTransferSyntax>& allowedSyntaxes,
                                 bool allowNewSopInstanceUid)
   {
+    DicomTransferSyntax inputSyntax;
+    if (!FromDcmtkBridge::LookupOrthancTransferSyntax(inputSyntax, dicom.GetDcmtkObject()))
+    {
+      throw OrthancException(ErrorCode_BadFileFormat,
+                             "Cannot determine the source transfer syntax during transcoding");
+    }
+
     IDicomTranscoder* transcoder = dcmtkTranscoder_.get();
     
 #if ORTHANC_ENABLE_PLUGINS == 1
@@ -1174,7 +1181,7 @@
     {
       throw OrthancException(ErrorCode_InternalError);
     }
-    else if (transcoder->HasInplaceTranscode())
+    else if (transcoder->HasInplaceTranscode(inputSyntax, allowedSyntaxes))
     {
       if (transcoder->InplaceTranscode(hasSopInstanceUidChanged, dicom.GetDcmtkObject(),
                                        allowedSyntaxes, allowNewSopInstanceUid))