From 630a28442364f03c1d3d9b48873da42755e1fddf Mon Sep 17 00:00:00 2001 From: Lei Zhang Date: Thu, 24 Sep 2015 01:09:57 -0700 Subject: Split up JBig2_GeneralDecoder.cpp. R=tsepez@chromium.org Review URL: https://codereview.chromium.org/1359233002 . --- core/src/fxcodec/jbig2/JBig2_ArithDecoder.h | 100 ++-------------------------- 1 file changed, 5 insertions(+), 95 deletions(-) (limited to 'core/src/fxcodec/jbig2/JBig2_ArithDecoder.h') diff --git a/core/src/fxcodec/jbig2/JBig2_ArithDecoder.h b/core/src/fxcodec/jbig2/JBig2_ArithDecoder.h index 7acfe9cd36..02c81b34c0 100644 --- a/core/src/fxcodec/jbig2/JBig2_ArithDecoder.h +++ b/core/src/fxcodec/jbig2/JBig2_ArithDecoder.h @@ -4,11 +4,10 @@ // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com -#ifndef _JBIG2_ARITHMETIC_DECODER_H_ -#define _JBIG2_ARITHMETIC_DECODER_H_ -#include "JBig2_Define.h" -#include "JBig2_BitStream.h" -#include "JBig2_ArithQe.h" +#ifndef CORE_SRC_FXCODEC_JBIG2_JBIG2_ARITHDECODER_H_ +#define CORE_SRC_FXCODEC_JBIG2_JBIG2_ARITHDECODER_H_ + +class CJBig2_BitStream; struct JBig2ArithCtx { unsigned int MPS; @@ -34,93 +33,4 @@ class CJBig2_ArithDecoder { CJBig2_BitStream* m_pStream; }; -inline CJBig2_ArithDecoder::CJBig2_ArithDecoder(CJBig2_BitStream* pStream) { - m_pStream = pStream; - INITDEC(); -} -inline CJBig2_ArithDecoder::~CJBig2_ArithDecoder() {} -inline void CJBig2_ArithDecoder::INITDEC() { - B = m_pStream->getCurByte_arith(); - C = (B ^ 0xff) << 16; - ; - BYTEIN(); - C = C << 7; - CT = CT - 7; - A = 0x8000; -} -inline void CJBig2_ArithDecoder::BYTEIN() { - unsigned char B1; - if (B == 0xff) { - B1 = m_pStream->getNextByte_arith(); - if (B1 > 0x8f) { - CT = 8; - } else { - m_pStream->incByteIdx(); - B = B1; - C = C + 0xfe00 - (B << 9); - CT = 7; - } - } else { - m_pStream->incByteIdx(); - B = m_pStream->getCurByte_arith(); - C = C + 0xff00 - (B << 8); - CT = 8; - } -} -inline int CJBig2_ArithDecoder::DECODE(JBig2ArithCtx* pCX) { - if (!pCX || pCX->I >= JBIG2_QE_NUM) { - return 0; - } - - int D; - const JBig2ArithQe* qe = &QeTable[pCX->I]; - A = A - qe->Qe; - if ((C >> 16) < A) { - if (A & 0x8000) { - D = pCX->MPS; - } else { - if (A < qe->Qe) { - D = 1 - pCX->MPS; - if (qe->nSwitch == 1) { - pCX->MPS = 1 - pCX->MPS; - } - pCX->I = qe->NLPS; - } else { - D = pCX->MPS; - pCX->I = qe->NMPS; - } - do { - if (CT == 0) { - BYTEIN(); - } - A <<= 1; - C <<= 1; - CT--; - } while ((A & 0x8000) == 0); - } - } else { - C -= A << 16; - if (A < qe->Qe) { - A = qe->Qe; - D = pCX->MPS; - pCX->I = qe->NMPS; - } else { - A = qe->Qe; - D = 1 - pCX->MPS; - if (qe->nSwitch == 1) { - pCX->MPS = 1 - pCX->MPS; - } - pCX->I = qe->NLPS; - } - do { - if (CT == 0) { - BYTEIN(); - } - A <<= 1; - C <<= 1; - CT--; - } while ((A & 0x8000) == 0); - } - return D; -} -#endif +#endif // CORE_SRC_FXCODEC_JBIG2_JBIG2_ARITHDECODER_H_ -- cgit v1.2.3