Program: gdcm
Module: $RCSfile: gdcmTS.cxx,v $
Language: C++
- Date: $Date: 2005/02/11 15:22:18 $
- Version: $Revision: 1.43 $
+ Date: $Date: 2005/07/02 18:09:36 $
+ Version: $Revision: 1.49 $
Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
l'Image). All rights reserved. See Doc/License.txt or
#include <fstream>
#include <string>
#include <iostream>
+#include <ctype.h> // for isdigit
// TODO
// a lot of troubles expected with TS : 1.2.840.113619.5.2
namespace gdcm
{
//-----------------------------------------------------------------------------
-/// \brief Transfer Syntaxes gdcm deals with (internal use onky)
+/// \brief Transfer Syntaxes gdcm deals with (internal use only)
static const char *SpecialStrings[] = {
// Implicit VR Little Endian
"1.2.840.10008.1.2",
"1.2.840.10008.1.2.4.91",
// RLE Lossless
"1.2.840.10008.1.2.5",
+ // MPEG2 Main Profile @ Main Level
+ "1.2.840.10008.1.2.4.100",
// Unknown
"Unknown Transfer Syntax"
};
{
std::string filename = DictSet::BuildDictPath() + DICT_TS;
std::ifstream from(filename.c_str());
- if( !from )
+ if ( !from )
{
gdcmWarningMacro("Can't open dictionary" << filename.c_str());
FillDefaultTSDict( TsMap );
from >> std::ws;
std::getline(from, name);
- if(key != "")
+ if (key != "")
{
TsMap[key] = name;
}
{
bool r = false;
// First check this is an actual transfer syntax
- if( IsTransferSyntax(key) )
+ if ( IsTransferSyntax(key) )
{
if ( key == SpecialStrings[RLELossless] )
{
{
bool r = false;
// First check this is an actual transfer syntax
- if( IsTransferSyntax(key) )
+ if ( IsTransferSyntax(key) )
{
if ( key == SpecialStrings[JPEGFullProgressionProcess10_12]
|| key == SpecialStrings[JPEGLosslessProcess14]
{
bool r = false;
// First check this is an actual transfer syntax
- if( IsTransferSyntax(key) )
+ if ( IsTransferSyntax(key) )
{
if ( key == SpecialStrings[JPEGBaselineProcess1]
|| key == SpecialStrings[JPEGExtendedProcess2_4]
{
bool r = false;
// First check this is an actual transfer syntax
- if( IsTransferSyntax(key) )
+ if ( IsTransferSyntax(key) )
{
if ( key == SpecialStrings[JPEG2000Lossless]
|| key == SpecialStrings[JPEG2000] )
{
bool r = false;
// First check this is an actual transfer syntax
- if( IsTransferSyntax(key) )
+ if ( IsTransferSyntax(key) )
{
if ( IsJPEGLossy( key )
|| IsJPEGLossless( key )
+ || IsJPEG2000( key )
+ || IsJPEGLS( key )
)
{
r = true;
{
bool r = false;
// First check this is an actual transfer syntax
- if( IsTransferSyntax(key) )
+ if ( IsTransferSyntax(key) )
{
if ( key == SpecialStrings[JPEGLSLossless]
|| key == SpecialStrings[JPEGLSNearLossless] )
return r;
}
+/**
+ * \brief Determines if the Transfer Syntax corresponds to any form
+ * of MPEG encoded Pixel data.
+ * @return True when any form of MPEG found. False otherwise.
+ */
+bool TS::IsMPEG(TSKey const &key)
+{
+ bool r = false;
+ // First check this is an actual transfer syntax
+ if ( IsTransferSyntax(key) )
+ {
+ if ( key == SpecialStrings[MPEG2MainProfile] )
+ {
+ r = true;
+ }
+ }
+ return r;
+}
+
+/**
+ * \brief GetSpecialTransferSyntax ??
+ * @param key TSKey const &key ??
+ * @return TS::SpecialType ??.
+ */
TS::SpecialType TS::GetSpecialTransferSyntax(TSKey const &key)
{
for (int i = 0; SpecialStrings[i] != NULL; i++)
return SpecialType(i);
}
}
-
return UnknownTS;
}
+/**
+ * \brief GetSpecialTransferSyntax ??
+ * @param t SpecialType t ??
+ * @return char* TS : SpecialStrings[t] ??.
+ */
const char* TS::GetSpecialTransferSyntax(SpecialType t)
{
return SpecialStrings[t];