Mercurial > hg > orthanc
diff Core/DicomParsing/FromDcmtkBridge.cpp @ 3727:090022f1b5e1
auto-generation of primitives to handle transfer syntaxes
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Fri, 06 Mar 2020 17:10:03 +0100 |
parents | 2a170a8f1faf |
children | ae31ba2b09a6 |
line wrap: on
line diff
--- a/Core/DicomParsing/FromDcmtkBridge.cpp Fri Mar 06 11:52:44 2020 +0100 +++ b/Core/DicomParsing/FromDcmtkBridge.cpp Fri Mar 06 17:10:03 2020 +0100 @@ -107,10 +107,16 @@ #if ORTHANC_ENABLE_DCMTK_JPEG == 1 # include <dcmtk/dcmjpeg/djdecode.h> +# if ORTHANC_ENABLE_DCMTK_TRANSCODING == 1 +# include <dcmtk/dcmjpeg/djencode.h> +# endif #endif #if ORTHANC_ENABLE_DCMTK_JPEG_LOSSLESS == 1 # include <dcmtk/dcmjpls/djdecode.h> +# if ORTHANC_ENABLE_DCMTK_TRANSCODING == 1 +# include <dcmtk/dcmjpls/djencode.h> +# endif #endif @@ -2045,12 +2051,18 @@ { #if ORTHANC_ENABLE_DCMTK_JPEG_LOSSLESS == 1 LOG(INFO) << "Registering JPEG Lossless codecs in DCMTK"; - DJLSDecoderRegistration::registerCodecs(); + DJLSDecoderRegistration::registerCodecs(); +# if ORTHANC_ENABLE_DCMTK_TRANSCODING == 1 + DJLSEncoderRegistration::registerCodecs(); +# endif #endif #if ORTHANC_ENABLE_DCMTK_JPEG == 1 LOG(INFO) << "Registering JPEG codecs in DCMTK"; DJDecoderRegistration::registerCodecs(); +# if ORTHANC_ENABLE_DCMTK_TRANSCODING == 1 + DJEncoderRegistration::registerCodecs(); +# endif #endif } @@ -2060,11 +2072,17 @@ #if ORTHANC_ENABLE_DCMTK_JPEG_LOSSLESS == 1 // Unregister JPEG-LS codecs DJLSDecoderRegistration::cleanup(); +# if ORTHANC_ENABLE_DCMTK_TRANSCODING == 1 + DJLSEncoderRegistration::cleanup(); +# endif #endif #if ORTHANC_ENABLE_DCMTK_JPEG == 1 // Unregister JPEG codecs DJDecoderRegistration::cleanup(); +# if ORTHANC_ENABLE_DCMTK_TRANSCODING == 1 + DJDecoderRegistration::cleanup(); +# endif #endif } @@ -2551,4 +2569,181 @@ Encoding encoding = DetectEncoding(hasCodeExtensions, dataset, defaultEncoding); ApplyVisitorToDataset(dataset, visitor, parentTags, parentIndexes, encoding, hasCodeExtensions); } + + + // This function is autogenerated by the script + // "Resources/GenerateTransferSyntaxes.py" + bool FromDcmtkBridge::GetDcmtkTransferSyntax(E_TransferSyntax& target, + DicomTransferSyntax syntax) + { + switch (syntax) + { + case DicomTransferSyntax_LittleEndianImplicit: + target = EXS_LittleEndianImplicit; + return true; + + case DicomTransferSyntax_LittleEndianExplicit: + target = EXS_LittleEndianExplicit; + return true; + + case DicomTransferSyntax_DeflatedLittleEndianExplicit: + target = EXS_DeflatedLittleEndianExplicit; + return true; + + case DicomTransferSyntax_BigEndianExplicit: + target = EXS_BigEndianExplicit; + return true; + + case DicomTransferSyntax_JPEGProcess1: + target = EXS_JPEGProcess1; + return true; + + case DicomTransferSyntax_JPEGProcess2_4: + target = EXS_JPEGProcess2_4; + return true; + + case DicomTransferSyntax_JPEGProcess3_5: + target = EXS_JPEGProcess3_5; + return true; + + case DicomTransferSyntax_JPEGProcess6_8: + target = EXS_JPEGProcess6_8; + return true; + + case DicomTransferSyntax_JPEGProcess7_9: + target = EXS_JPEGProcess7_9; + return true; + + case DicomTransferSyntax_JPEGProcess10_12: + target = EXS_JPEGProcess10_12; + return true; + + case DicomTransferSyntax_JPEGProcess11_13: + target = EXS_JPEGProcess11_13; + return true; + + case DicomTransferSyntax_JPEGProcess14: + target = EXS_JPEGProcess14; + return true; + + case DicomTransferSyntax_JPEGProcess15: + target = EXS_JPEGProcess15; + return true; + + case DicomTransferSyntax_JPEGProcess16_18: + target = EXS_JPEGProcess16_18; + return true; + + case DicomTransferSyntax_JPEGProcess17_19: + target = EXS_JPEGProcess17_19; + return true; + + case DicomTransferSyntax_JPEGProcess20_22: + target = EXS_JPEGProcess20_22; + return true; + + case DicomTransferSyntax_JPEGProcess21_23: + target = EXS_JPEGProcess21_23; + return true; + + case DicomTransferSyntax_JPEGProcess24_26: + target = EXS_JPEGProcess24_26; + return true; + + case DicomTransferSyntax_JPEGProcess25_27: + target = EXS_JPEGProcess25_27; + return true; + + case DicomTransferSyntax_JPEGProcess28: + target = EXS_JPEGProcess28; + return true; + + case DicomTransferSyntax_JPEGProcess29: + target = EXS_JPEGProcess29; + return true; + + case DicomTransferSyntax_JPEGProcess14SV1: + target = EXS_JPEGProcess14SV1; + return true; + + case DicomTransferSyntax_JPEGLSLossless: + target = EXS_JPEGLSLossless; + return true; + + case DicomTransferSyntax_JPEGLSLossy: + target = EXS_JPEGLSLossy; + return true; + + case DicomTransferSyntax_JPEG2000LosslessOnly: + target = EXS_JPEG2000LosslessOnly; + return true; + + case DicomTransferSyntax_JPEG2000: + target = EXS_JPEG2000; + return true; + + case DicomTransferSyntax_JPEG2000MulticomponentLosslessOnly: + target = EXS_JPEG2000MulticomponentLosslessOnly; + return true; + + case DicomTransferSyntax_JPEG2000Multicomponent: + target = EXS_JPEG2000Multicomponent; + return true; + + case DicomTransferSyntax_JPIPReferenced: + target = EXS_JPIPReferenced; + return true; + + case DicomTransferSyntax_JPIPReferencedDeflate: + target = EXS_JPIPReferencedDeflate; + return true; + + case DicomTransferSyntax_MPEG2MainProfileAtMainLevel: + target = EXS_MPEG2MainProfileAtMainLevel; + return true; + + case DicomTransferSyntax_MPEG2MainProfileAtHighLevel: + target = EXS_MPEG2MainProfileAtHighLevel; + return true; + + case DicomTransferSyntax_MPEG4HighProfileLevel4_1: + target = EXS_MPEG4HighProfileLevel4_1; + return true; + + case DicomTransferSyntax_MPEG4BDcompatibleHighProfileLevel4_1: + target = EXS_MPEG4BDcompatibleHighProfileLevel4_1; + return true; + + case DicomTransferSyntax_MPEG4HighProfileLevel4_2_For2DVideo: + target = EXS_MPEG4HighProfileLevel4_2_For2DVideo; + return true; + + case DicomTransferSyntax_MPEG4HighProfileLevel4_2_For3DVideo: + target = EXS_MPEG4HighProfileLevel4_2_For3DVideo; + return true; + + case DicomTransferSyntax_MPEG4StereoHighProfileLevel4_2: + target = EXS_MPEG4StereoHighProfileLevel4_2; + return true; + +#if DCMTK_VERSION_NUMBER >= 362 + case DicomTransferSyntax_HEVCMainProfileLevel5_1: + target = EXS_HEVCMainProfileLevel5_1; + return true; +#endif + +#if DCMTK_VERSION_NUMBER >= 362 + case DicomTransferSyntax_HEVCMain10ProfileLevel5_1: + target = EXS_HEVCMain10ProfileLevel5_1; + return true; +#endif + + case DicomTransferSyntax_RLELossless: + target = EXS_RLELossless; + return true; + + default: + return false; + } + } }