diff options
| author | jhurst <jhurst@cinecert.com> | 2007-10-20 19:43:18 +0000 |
|---|---|---|
| committer | jhurst <> | 2007-10-20 19:43:18 +0000 |
| commit | 70bbc088b0b8f079c41b07141bec35447be469c5 (patch) | |
| tree | e49dfeead6921dd637608ee40cbaca8d25c80448 /src/JP2K_Codestream_Parser.cpp | |
| parent | f457a7ea8fa446b71e7802a20f575ae5bcc9926b (diff) | |
3-D love
Diffstat (limited to 'src/JP2K_Codestream_Parser.cpp')
| -rwxr-xr-x | src/JP2K_Codestream_Parser.cpp | 27 |
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; } } |
