summaryrefslogtreecommitdiff
path: root/src/JP2K_Codestream_Parser.cpp
diff options
context:
space:
mode:
authorjhurst <jhurst@cinecert.com>2007-10-20 19:43:18 +0000
committerjhurst <>2007-10-20 19:43:18 +0000
commit70bbc088b0b8f079c41b07141bec35447be469c5 (patch)
treee49dfeead6921dd637608ee40cbaca8d25c80448 /src/JP2K_Codestream_Parser.cpp
parentf457a7ea8fa446b71e7802a20f575ae5bcc9926b (diff)
3-D love
Diffstat (limited to 'src/JP2K_Codestream_Parser.cpp')
-rwxr-xr-xsrc/JP2K_Codestream_Parser.cpp27
1 files changed, 16 insertions, 11 deletions
diff --git a/src/JP2K_Codestream_Parser.cpp b/src/JP2K_Codestream_Parser.cpp
index 32a5316..f4596a8 100755
--- a/src/JP2K_Codestream_Parser.cpp
+++ b/src/JP2K_Codestream_Parser.cpp
@@ -96,10 +96,6 @@ public:
result = RESULT_RAW_ESS;
break;
}
-#if 0
- fprintf(stderr, "%s Length: %u\n",
- GetMarkerString(NextMarker.m_Type), NextMarker.m_DataSize);
-#endif
switch ( NextMarker.m_Type )
{
@@ -137,25 +133,34 @@ public:
break;
case MRK_COD:
- if ( NextMarker.m_DataSize > DefaultCodingDataLength )
+ memset(&m_PDesc.CodingStyleDefault, 0, sizeof(CodingStyleDefault_t));
+
+ if ( NextMarker.m_DataSize > sizeof(CodingStyleDefault_t) )
{
DefaultLogSink().Error("Unexpectedly large CodingStyle data: %u\n", NextMarker.m_DataSize);
return RESULT_RAW_FORMAT;
}
- m_PDesc.CodingStyleLength = NextMarker.m_DataSize;
- memcpy(m_PDesc.CodingStyle, NextMarker.m_Data, m_PDesc.CodingStyleLength);
+ memcpy(&m_PDesc.CodingStyleDefault, NextMarker.m_Data, NextMarker.m_DataSize);
break;
case MRK_QCD:
- if ( NextMarker.m_DataSize > DefaultCodingDataLength )
+ memset(&m_PDesc.QuantizationDefault, 0, sizeof(QuantizationDefault_t));
+
+ if ( NextMarker.m_DataSize < 16 )
+ {
+ DefaultLogSink().Error("No quantization signaled\n");
+ return RESULT_RAW_FORMAT;
+ }
+
+ if ( NextMarker.m_DataSize > MaxDefaults )
{
- DefaultLogSink().Error("Unexpectedly large QuantDefault data: %u\n", NextMarker.m_DataSize);
+ DefaultLogSink().Error("Quantization Default length exceeds maximum %d\n", NextMarker.m_DataSize);
return RESULT_RAW_FORMAT;
}
- m_PDesc.QuantDefaultLength = NextMarker.m_DataSize;
- memcpy(m_PDesc.QuantDefault, NextMarker.m_Data, m_PDesc.QuantDefaultLength);
+ memcpy(&m_PDesc.QuantizationDefault, NextMarker.m_Data, NextMarker.m_DataSize);
+ m_PDesc.QuantizationDefault.SPqcdLength = NextMarker.m_DataSize - 1;
break;
}
}