OLD | NEW |
| (Empty) |
1 // Copyright 2015 PDFium Authors. All rights reserved. | |
2 // Use of this source code is governed by a BSD-style license that can be | |
3 // found in the LICENSE file. | |
4 | |
5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com | |
6 | |
7 #ifndef CORE_SRC_FXCODEC_JBIG2_JBIG2_GRDPROC_H_ | |
8 #define CORE_SRC_FXCODEC_JBIG2_JBIG2_GRDPROC_H_ | |
9 | |
10 #include "core/include/fxcodec/fx_codec_def.h" | |
11 #include "core/include/fxcrt/fx_coordinates.h" | |
12 #include "core/include/fxcrt/fx_system.h" | |
13 | |
14 class CJBig2_ArithDecoder; | |
15 class CJBig2_BitStream; | |
16 class CJBig2_Image; | |
17 class IFX_Pause; | |
18 struct JBig2ArithCtx; | |
19 | |
20 class CJBig2_GRDProc { | |
21 public: | |
22 CJBig2_GRDProc(); | |
23 | |
24 CJBig2_Image* decode_Arith(CJBig2_ArithDecoder* pArithDecoder, | |
25 JBig2ArithCtx* gbContext); | |
26 | |
27 FXCODEC_STATUS Start_decode_Arith(CJBig2_Image** pImage, | |
28 CJBig2_ArithDecoder* pArithDecoder, | |
29 JBig2ArithCtx* gbContext, | |
30 IFX_Pause* pPause); | |
31 FXCODEC_STATUS Start_decode_MMR(CJBig2_Image** pImage, | |
32 CJBig2_BitStream* pStream, | |
33 IFX_Pause* pPause); | |
34 FXCODEC_STATUS Continue_decode(IFX_Pause* pPause); | |
35 FX_RECT GetReplaceRect() const { return m_ReplaceRect; } | |
36 | |
37 FX_BOOL MMR; | |
38 FX_DWORD GBW; | |
39 FX_DWORD GBH; | |
40 uint8_t GBTEMPLATE; | |
41 FX_BOOL TPGDON; | |
42 FX_BOOL USESKIP; | |
43 CJBig2_Image* SKIP; | |
44 int8_t GBAT[8]; | |
45 | |
46 private: | |
47 bool UseTemplate0Opt3() const; | |
48 bool UseTemplate1Opt3() const; | |
49 bool UseTemplate23Opt3() const; | |
50 | |
51 FXCODEC_STATUS decode_Arith(IFX_Pause* pPause); | |
52 FXCODEC_STATUS decode_Arith_Template0_opt3(CJBig2_Image* pImage, | |
53 CJBig2_ArithDecoder* pArithDecoder, | |
54 JBig2ArithCtx* gbContext, | |
55 IFX_Pause* pPause); | |
56 FXCODEC_STATUS decode_Arith_Template0_unopt( | |
57 CJBig2_Image* pImage, | |
58 CJBig2_ArithDecoder* pArithDecoder, | |
59 JBig2ArithCtx* gbContext, | |
60 IFX_Pause* pPause); | |
61 FXCODEC_STATUS decode_Arith_Template1_opt3(CJBig2_Image* pImage, | |
62 CJBig2_ArithDecoder* pArithDecoder, | |
63 JBig2ArithCtx* gbContext, | |
64 IFX_Pause* pPause); | |
65 FXCODEC_STATUS decode_Arith_Template1_unopt( | |
66 CJBig2_Image* pImage, | |
67 CJBig2_ArithDecoder* pArithDecoder, | |
68 JBig2ArithCtx* gbContext, | |
69 IFX_Pause* pPause); | |
70 FXCODEC_STATUS decode_Arith_Template2_opt3(CJBig2_Image* pImage, | |
71 CJBig2_ArithDecoder* pArithDecoder, | |
72 JBig2ArithCtx* gbContext, | |
73 IFX_Pause* pPause); | |
74 FXCODEC_STATUS decode_Arith_Template2_unopt( | |
75 CJBig2_Image* pImage, | |
76 CJBig2_ArithDecoder* pArithDecoder, | |
77 JBig2ArithCtx* gbContext, | |
78 IFX_Pause* pPause); | |
79 FXCODEC_STATUS decode_Arith_Template3_opt3(CJBig2_Image* pImage, | |
80 CJBig2_ArithDecoder* pArithDecoder, | |
81 JBig2ArithCtx* gbContext, | |
82 IFX_Pause* pPause); | |
83 FXCODEC_STATUS decode_Arith_Template3_unopt( | |
84 CJBig2_Image* pImage, | |
85 CJBig2_ArithDecoder* pArithDecoder, | |
86 JBig2ArithCtx* gbContext, | |
87 IFX_Pause* pPause); | |
88 CJBig2_Image* decode_Arith_Template0_opt3(CJBig2_ArithDecoder* pArithDecoder, | |
89 JBig2ArithCtx* gbContext); | |
90 | |
91 CJBig2_Image* decode_Arith_Template0_unopt(CJBig2_ArithDecoder* pArithDecoder, | |
92 JBig2ArithCtx* gbContext); | |
93 | |
94 CJBig2_Image* decode_Arith_Template1_opt3(CJBig2_ArithDecoder* pArithDecoder, | |
95 JBig2ArithCtx* gbContext); | |
96 | |
97 CJBig2_Image* decode_Arith_Template1_unopt(CJBig2_ArithDecoder* pArithDecoder, | |
98 JBig2ArithCtx* gbContext); | |
99 | |
100 CJBig2_Image* decode_Arith_Template2_opt3(CJBig2_ArithDecoder* pArithDecoder, | |
101 JBig2ArithCtx* gbContext); | |
102 | |
103 CJBig2_Image* decode_Arith_Template2_unopt(CJBig2_ArithDecoder* pArithDecoder, | |
104 JBig2ArithCtx* gbContext); | |
105 | |
106 CJBig2_Image* decode_Arith_Template3_opt3(CJBig2_ArithDecoder* pArithDecoder, | |
107 JBig2ArithCtx* gbContext); | |
108 | |
109 CJBig2_Image* decode_Arith_Template3_unopt(CJBig2_ArithDecoder* pArithDecoder, | |
110 JBig2ArithCtx* gbContext); | |
111 | |
112 FX_DWORD m_loopIndex; | |
113 uint8_t* m_pLine; | |
114 IFX_Pause* m_pPause; | |
115 FXCODEC_STATUS m_ProssiveStatus; | |
116 CJBig2_Image** m_pImage; | |
117 CJBig2_ArithDecoder* m_pArithDecoder; | |
118 JBig2ArithCtx* m_gbContext; | |
119 FX_WORD m_DecodeType; | |
120 FX_BOOL LTP; | |
121 FX_RECT m_ReplaceRect; | |
122 }; | |
123 | |
124 #endif // CORE_SRC_FXCODEC_JBIG2_JBIG2_GRDPROC_H_ | |
OLD | NEW |