Index: core/src/fxcodec/jbig2/JBig2_Context.cpp |
diff --git a/core/src/fxcodec/jbig2/JBig2_Context.cpp b/core/src/fxcodec/jbig2/JBig2_Context.cpp |
index b70054171da8cb001610a002008f51af68febcee..396ae5cd11e9e9e81b7c9b176fe3c23dea1d114e 100644 |
--- a/core/src/fxcodec/jbig2/JBig2_Context.cpp |
+++ b/core/src/fxcodec/jbig2/JBig2_Context.cpp |
@@ -21,11 +21,10 @@ CJBig2_Context* CJBig2_Context::CreateContext( |
FX_DWORD dwGlobalLength, |
const uint8_t* pData, |
FX_DWORD dwLength, |
- int32_t nStreamType, |
std::list<CJBig2_CachePair>* pSymbolDictCache, |
IFX_Pause* pPause) { |
return new CJBig2_Context(pGlobalData, dwGlobalLength, pData, dwLength, |
- nStreamType, pSymbolDictCache, pPause); |
+ pSymbolDictCache, pPause); |
} |
void CJBig2_Context::DestroyContext(CJBig2_Context* pContext) { |
delete pContext; |
@@ -34,18 +33,16 @@ CJBig2_Context::CJBig2_Context(const uint8_t* pGlobalData, |
FX_DWORD dwGlobalLength, |
const uint8_t* pData, |
FX_DWORD dwLength, |
- int32_t nStreamType, |
std::list<CJBig2_CachePair>* pSymbolDictCache, |
IFX_Pause* pPause) { |
if (pGlobalData && (dwGlobalLength > 0)) { |
- m_pGlobalContext = |
- new CJBig2_Context(NULL, 0, pGlobalData, dwGlobalLength, |
- JBIG2_EMBED_STREAM, pSymbolDictCache, pPause); |
+ m_pGlobalContext = new CJBig2_Context( |
+ nullptr, 0, pGlobalData, dwGlobalLength, pSymbolDictCache, pPause); |
} else { |
- m_pGlobalContext = NULL; |
+ m_pGlobalContext = nullptr; |
} |
+ |
m_pStream = new CJBig2_BitStream(pData, dwLength); |
- m_nStreamType = nStreamType; |
m_nState = JBIG2_OUT_OF_PAGE; |
m_pPage = NULL; |
m_bBufSpecified = FALSE; |
@@ -76,40 +73,6 @@ CJBig2_Context::~CJBig2_Context() { |
m_pStream = NULL; |
} |
-int32_t CJBig2_Context::decodeFile(IFX_Pause* pPause) { |
- if (m_pStream->getByteLeft() < 8) |
- return JBIG2_ERROR_TOO_SHORT; |
- |
- const uint8_t fileID[] = {0x97, 0x4A, 0x42, 0x32, 0x0D, 0x0A, 0x1A, 0x0A}; |
- if (JBIG2_memcmp(m_pStream->getPointer(), fileID, 8) != 0) |
- return JBIG2_ERROR_FILE_FORMAT; |
- |
- m_pStream->offset(8); |
- |
- uint8_t cFlags; |
- if (m_pStream->read1Byte(&cFlags) != 0) |
- return JBIG2_ERROR_TOO_SHORT; |
- |
- if (!(cFlags & 0x02)) { |
- FX_DWORD dwTemp; |
- if (m_pStream->readInteger(&dwTemp) != 0) |
- return JBIG2_ERROR_TOO_SHORT; |
- |
- if (dwTemp > 0) { |
- m_PageInfoList.clear(); |
- m_PageInfoList.resize(dwTemp); |
- } |
- } |
- |
- if (cFlags & 0x01) { |
- m_nStreamType = JBIG2_SQUENTIAL_STREAM; |
- return decode_SquentialOrgnazation(pPause); |
- } |
- |
- m_nStreamType = JBIG2_RANDOM_STREAM; |
- return decode_RandomOrgnazation_FirstPage(pPause); |
-} |
- |
int32_t CJBig2_Context::decode_SquentialOrgnazation(IFX_Pause* pPause) { |
int32_t nRet; |
if (m_pStream->getByteLeft() <= 0) |
@@ -226,27 +189,7 @@ int32_t CJBig2_Context::Continue(IFX_Pause* pPause) { |
m_ProcessingStatus = FXCODEC_STATUS_DECODE_READY; |
int32_t nRet; |
if (m_PauseStep <= 1) { |
- switch (m_nStreamType) { |
- case JBIG2_FILE_STREAM: |
- nRet = decodeFile(pPause); |
- break; |
- case JBIG2_SQUENTIAL_STREAM: |
- nRet = decode_SquentialOrgnazation(pPause); |
- break; |
- case JBIG2_RANDOM_STREAM: |
- if (m_bFirstPage) { |
- nRet = decode_RandomOrgnazation_FirstPage(pPause); |
- } else { |
- nRet = decode_RandomOrgnazation(pPause); |
- } |
- break; |
- case JBIG2_EMBED_STREAM: |
- nRet = decode_EmbedOrgnazation(pPause); |
- break; |
- default: |
- m_ProcessingStatus = FXCODEC_STATUS_ERROR; |
- return JBIG2_ERROR_STREAM_TYPE; |
- } |
+ nRet = decode_EmbedOrgnazation(pPause); |
} else if (m_PauseStep == 2) { |
nRet = decode_SquentialOrgnazation(pPause); |
} else if (m_PauseStep == 3) { |
@@ -272,19 +215,7 @@ int32_t CJBig2_Context::Continue(IFX_Pause* pPause) { |
} |
return nRet; |
} |
-int32_t CJBig2_Context::getFirstPage(CJBig2_Image** image, IFX_Pause* pPause) { |
- int32_t nRet; |
- m_bFirstPage = TRUE; |
- m_PauseStep = 0; |
- if (m_pGlobalContext) { |
- nRet = m_pGlobalContext->decode_EmbedOrgnazation(pPause); |
- if (nRet != JBIG2_SUCCESS) { |
- return nRet; |
- } |
- } |
- m_bBufSpecified = FALSE; |
- return Continue(pPause); |
-} |
+ |
CJBig2_Segment* CJBig2_Context::findSegmentByNumber(FX_DWORD dwNumber) { |
CJBig2_Segment* pSeg; |
if (m_pGlobalContext) { |