Mercurial > hg > orthanc
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))