OLD | NEW |
1 // Copyright 2014 PDFium Authors. All rights reserved. | 1 // Copyright 2014 PDFium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com | 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com |
6 | 6 |
7 #ifndef CORE_SRC_FPDFAPI_FPDF_PARSER_FILTERS_INT_H_ | 7 #ifndef CORE_SRC_FPDFAPI_FPDF_PARSER_FILTERS_INT_H_ |
8 #define CORE_SRC_FPDFAPI_FPDF_PARSER_FILTERS_INT_H_ | 8 #define CORE_SRC_FPDFAPI_FPDF_PARSER_FILTERS_INT_H_ |
9 | 9 |
10 class CPDF_DecryptFilter : public CFX_DataFilter | 10 class CPDF_DecryptFilter : public CFX_DataFilter { |
11 { | 11 public: |
12 public: | 12 CPDF_DecryptFilter(CPDF_CryptoHandler* pCryptoHandler, |
13 CPDF_DecryptFilter(CPDF_CryptoHandler* pCryptoHandler, FX_DWORD objnum, FX_D
WORD gennum); | 13 FX_DWORD objnum, |
14 virtual ~CPDF_DecryptFilter(); | 14 FX_DWORD gennum); |
15 virtual» void» v_FilterIn(const uint8_t* src_buf, FX_DWORD src_size, CF
X_BinaryBuf& dest_buf); | 15 virtual ~CPDF_DecryptFilter(); |
16 virtual void» v_FilterFinish(CFX_BinaryBuf& dest_buf); | 16 virtual void v_FilterIn(const uint8_t* src_buf, |
17 CPDF_CryptoHandler*»m_pCryptoHandler; | 17 FX_DWORD src_size, |
18 void*» » m_pContext; | 18 CFX_BinaryBuf& dest_buf); |
19 FX_DWORD» » m_ObjNum, m_GenNum; | 19 virtual void v_FilterFinish(CFX_BinaryBuf& dest_buf); |
| 20 CPDF_CryptoHandler* m_pCryptoHandler; |
| 21 void* m_pContext; |
| 22 FX_DWORD m_ObjNum, m_GenNum; |
20 }; | 23 }; |
21 class CPDF_FlateFilter : public CFX_DataFilter | 24 class CPDF_FlateFilter : public CFX_DataFilter { |
22 { | 25 public: |
23 public: | 26 CPDF_FlateFilter(); |
24 CPDF_FlateFilter(); | 27 virtual ~CPDF_FlateFilter(); |
25 virtual ~CPDF_FlateFilter(); | 28 virtual void v_FilterIn(const uint8_t* src_buf, |
26 virtual» void» v_FilterIn(const uint8_t* src_buf, FX_DWORD src_size, CF
X_BinaryBuf& dest_buf); | 29 FX_DWORD src_size, |
27 virtual void» v_FilterFinish(CFX_BinaryBuf& dest_buf) {} | 30 CFX_BinaryBuf& dest_buf); |
28 void*» » » m_pContext; | 31 virtual void v_FilterFinish(CFX_BinaryBuf& dest_buf) {} |
29 uint8_t» » » m_DestBuffer[FPDF_FILTER_BUFFER_SIZE]; | 32 void* m_pContext; |
| 33 uint8_t m_DestBuffer[FPDF_FILTER_BUFFER_SIZE]; |
30 }; | 34 }; |
31 class CPDF_LzwFilter : public CFX_DataFilter | 35 class CPDF_LzwFilter : public CFX_DataFilter { |
32 { | 36 public: |
33 public: | 37 CPDF_LzwFilter(FX_BOOL bEarlyChange); |
34 CPDF_LzwFilter(FX_BOOL bEarlyChange); | 38 virtual ~CPDF_LzwFilter() {} |
35 virtual ~CPDF_LzwFilter() {} | 39 virtual void v_FilterIn(const uint8_t* src_buf, |
36 virtual» void» v_FilterIn(const uint8_t* src_buf, FX_DWORD src_size, CF
X_BinaryBuf& dest_buf); | 40 FX_DWORD src_size, |
37 virtual void» v_FilterFinish(CFX_BinaryBuf& dest_buf) {} | 41 CFX_BinaryBuf& dest_buf); |
38 FX_BOOL» » » m_bEarlyChange; | 42 virtual void v_FilterFinish(CFX_BinaryBuf& dest_buf) {} |
39 FX_DWORD» » m_CodeArray[5021]; | 43 FX_BOOL m_bEarlyChange; |
40 FX_DWORD» » m_nCodes; | 44 FX_DWORD m_CodeArray[5021]; |
41 FX_DWORD» » m_CodeLen; | 45 FX_DWORD m_nCodes; |
42 FX_DWORD» » m_OldCode; | 46 FX_DWORD m_CodeLen; |
43 uint8_t» » » m_LastChar; | 47 FX_DWORD m_OldCode; |
44 FX_DWORD» » m_nLeftBits, m_LeftBits; | 48 uint8_t m_LastChar; |
45 uint8_t» » » m_DecodeStack[4000]; | 49 FX_DWORD m_nLeftBits, m_LeftBits; |
46 FX_DWORD» » m_StackLen; | 50 uint8_t m_DecodeStack[4000]; |
47 void» » » AddCode(FX_DWORD prefix_code, uint8_t append_cha
r); | 51 FX_DWORD m_StackLen; |
48 void» » » DecodeString(FX_DWORD code); | 52 void AddCode(FX_DWORD prefix_code, uint8_t append_char); |
| 53 void DecodeString(FX_DWORD code); |
49 }; | 54 }; |
50 class CPDF_PredictorFilter : public CFX_DataFilter | 55 class CPDF_PredictorFilter : public CFX_DataFilter { |
51 { | 56 public: |
52 public: | 57 CPDF_PredictorFilter(int predictor, int colors, int bpc, int cols); |
53 CPDF_PredictorFilter(int predictor, int colors, int bpc, int cols); | 58 virtual ~CPDF_PredictorFilter(); |
54 virtual ~CPDF_PredictorFilter(); | 59 virtual void v_FilterIn(const uint8_t* src_buf, |
55 virtual» void» v_FilterIn(const uint8_t* src_buf, FX_DWORD src_size, CF
X_BinaryBuf& dest_buf); | 60 FX_DWORD src_size, |
56 virtual void» v_FilterFinish(CFX_BinaryBuf& dest_buf) {} | 61 CFX_BinaryBuf& dest_buf); |
57 FX_BOOL» » » m_bTiff; | 62 virtual void v_FilterFinish(CFX_BinaryBuf& dest_buf) {} |
58 FX_DWORD» » m_Pitch, m_Bpp; | 63 FX_BOOL m_bTiff; |
59 uint8_t*» » m_pRefLine; | 64 FX_DWORD m_Pitch, m_Bpp; |
60 uint8_t*» » m_pCurLine; | 65 uint8_t* m_pRefLine; |
61 FX_DWORD» » m_iLine, m_LineInSize; | 66 uint8_t* m_pCurLine; |
| 67 FX_DWORD m_iLine, m_LineInSize; |
62 }; | 68 }; |
63 class CPDF_AsciiHexFilter : public CFX_DataFilter | 69 class CPDF_AsciiHexFilter : public CFX_DataFilter { |
64 { | 70 public: |
65 public: | 71 CPDF_AsciiHexFilter(); |
66 CPDF_AsciiHexFilter(); | 72 virtual ~CPDF_AsciiHexFilter() {} |
67 virtual ~CPDF_AsciiHexFilter() {} | 73 virtual void v_FilterIn(const uint8_t* src_buf, |
68 virtual» void» v_FilterIn(const uint8_t* src_buf, FX_DWORD src_size, CF
X_BinaryBuf& dest_buf); | 74 FX_DWORD src_size, |
69 virtual void» v_FilterFinish(CFX_BinaryBuf& dest_buf) {} | 75 CFX_BinaryBuf& dest_buf); |
70 int»» » » m_State; | 76 virtual void v_FilterFinish(CFX_BinaryBuf& dest_buf) {} |
71 int»» » » m_FirstDigit; | 77 int m_State; |
| 78 int m_FirstDigit; |
72 }; | 79 }; |
73 class CPDF_Ascii85Filter : public CFX_DataFilter | 80 class CPDF_Ascii85Filter : public CFX_DataFilter { |
74 { | 81 public: |
75 public: | 82 CPDF_Ascii85Filter(); |
76 CPDF_Ascii85Filter(); | 83 virtual ~CPDF_Ascii85Filter() {} |
77 virtual ~CPDF_Ascii85Filter() {} | 84 virtual void v_FilterIn(const uint8_t* src_buf, |
78 virtual» void» v_FilterIn(const uint8_t* src_buf, FX_DWORD src_size, CF
X_BinaryBuf& dest_buf); | 85 FX_DWORD src_size, |
79 virtual void» v_FilterFinish(CFX_BinaryBuf& dest_buf) {} | 86 CFX_BinaryBuf& dest_buf); |
80 int»» » » m_State; | 87 virtual void v_FilterFinish(CFX_BinaryBuf& dest_buf) {} |
81 int»» » » m_CharCount; | 88 int m_State; |
82 FX_DWORD» » m_CurDWord; | 89 int m_CharCount; |
| 90 FX_DWORD m_CurDWord; |
83 }; | 91 }; |
84 class CPDF_RunLenFilter : public CFX_DataFilter | 92 class CPDF_RunLenFilter : public CFX_DataFilter { |
85 { | 93 public: |
86 public: | 94 CPDF_RunLenFilter(); |
87 CPDF_RunLenFilter(); | 95 virtual ~CPDF_RunLenFilter() {} |
88 virtual ~CPDF_RunLenFilter() {} | 96 virtual void v_FilterIn(const uint8_t* src_buf, |
89 virtual» void» v_FilterIn(const uint8_t* src_buf, FX_DWORD src_size, CF
X_BinaryBuf& dest_buf); | 97 FX_DWORD src_size, |
90 virtual void» v_FilterFinish(CFX_BinaryBuf& dest_buf) {} | 98 CFX_BinaryBuf& dest_buf); |
91 int»» » » m_State; | 99 virtual void v_FilterFinish(CFX_BinaryBuf& dest_buf) {} |
92 FX_DWORD» » m_Count; | 100 int m_State; |
| 101 FX_DWORD m_Count; |
93 }; | 102 }; |
94 class CPDF_JpegFilter : public CFX_DataFilter | 103 class CPDF_JpegFilter : public CFX_DataFilter { |
95 { | 104 public: |
96 public: | 105 CPDF_JpegFilter(); |
97 CPDF_JpegFilter(); | 106 virtual ~CPDF_JpegFilter(); |
98 virtual ~CPDF_JpegFilter(); | 107 virtual void v_FilterIn(const uint8_t* src_buf, |
99 virtual» void» v_FilterIn(const uint8_t* src_buf, FX_DWORD src_size, CF
X_BinaryBuf& dest_buf); | 108 FX_DWORD src_size, |
100 virtual void» v_FilterFinish(CFX_BinaryBuf& dest_buf) {} | 109 CFX_BinaryBuf& dest_buf); |
101 void*» » » m_pContext; | 110 virtual void v_FilterFinish(CFX_BinaryBuf& dest_buf) {} |
102 CFX_BinaryBuf» m_InputBuf; | 111 void* m_pContext; |
103 uint8_t*» » m_pScanline; | 112 CFX_BinaryBuf m_InputBuf; |
104 int»» » » m_Pitch, m_Height, m_Width, m_nComps, m_iLine; | 113 uint8_t* m_pScanline; |
105 FX_BOOL» » » m_bGotHeader; | 114 int m_Pitch, m_Height, m_Width, m_nComps, m_iLine; |
| 115 FX_BOOL m_bGotHeader; |
106 }; | 116 }; |
107 class CPDF_FaxFilter : public CFX_DataFilter | 117 class CPDF_FaxFilter : public CFX_DataFilter { |
108 { | 118 public: |
109 public: | 119 CPDF_FaxFilter(); |
110 CPDF_FaxFilter(); | 120 virtual ~CPDF_FaxFilter(); |
111 virtual ~CPDF_FaxFilter(); | 121 FX_BOOL Initialize(int Encoding, |
112 FX_BOOL» » » Initialize(int Encoding, int bEndOfLine, int bBy
teAlign, int bBlack, int nRows, int nColumns); | 122 int bEndOfLine, |
113 virtual» void» v_FilterIn(const uint8_t* src_buf, FX_DWORD src_size, CF
X_BinaryBuf& dest_buf); | 123 int bByteAlign, |
114 virtual void» v_FilterFinish(CFX_BinaryBuf& dest_buf); | 124 int bBlack, |
115 int»» » » m_Encoding, m_bEndOfLine, m_bByteAlign, m_bBlack
; | 125 int nRows, |
116 int»» » » m_nRows, m_nColumns, m_Pitch, m_iRow; | 126 int nColumns); |
117 uint8_t*» » m_pScanlineBuf; | 127 virtual void v_FilterIn(const uint8_t* src_buf, |
118 » uint8_t*» » m_pRefBuf; | 128 FX_DWORD src_size, |
119 CFX_BinaryBuf» m_InputBuf; | 129 CFX_BinaryBuf& dest_buf); |
120 int»» » » m_InputBitPos; | 130 virtual void v_FilterFinish(CFX_BinaryBuf& dest_buf); |
121 void» » » ProcessData(const uint8_t* src_buf, FX_DWORD src
_size, int& bitpos, FX_BOOL bFinish, | 131 int m_Encoding, m_bEndOfLine, m_bByteAlign, m_bBlack; |
122 CFX_BinaryBuf& dest_buf); | 132 int m_nRows, m_nColumns, m_Pitch, m_iRow; |
123 FX_BOOL» » » ReadLine(const uint8_t* src_buf, int bitsize, in
t& bitpos); | 133 uint8_t* m_pScanlineBuf; |
| 134 uint8_t* m_pRefBuf; |
| 135 CFX_BinaryBuf m_InputBuf; |
| 136 int m_InputBitPos; |
| 137 void ProcessData(const uint8_t* src_buf, |
| 138 FX_DWORD src_size, |
| 139 int& bitpos, |
| 140 FX_BOOL bFinish, |
| 141 CFX_BinaryBuf& dest_buf); |
| 142 FX_BOOL ReadLine(const uint8_t* src_buf, int bitsize, int& bitpos); |
124 }; | 143 }; |
125 | 144 |
126 #endif // CORE_SRC_FPDFAPI_FPDF_PARSER_FILTERS_INT_H_ | 145 #endif // CORE_SRC_FPDFAPI_FPDF_PARSER_FILTERS_INT_H_ |
OLD | NEW |