Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(271)

Side by Side Diff: core/src/fxcodec/codec/codec_int.h

Issue 453133004: clang-format all code (Closed) Base URL: https://pdfium.googlesource.com/pdfium.git@master
Patch Set: Created 6 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 #include <limits.h> 7 #include <limits.h>
8 class CCodec_BasicModule : public ICodec_BasicModule 8 class CCodec_BasicModule : public ICodec_BasicModule {
9 { 9 public:
10 public: 10 virtual FX_BOOL RunLengthEncode(const FX_BYTE* src_buf,
11 virtual FX_BOOL» RunLengthEncode(const FX_BYTE* src_buf, FX_DWORD src_siz e, FX_LPBYTE& dest_buf, 11 FX_DWORD src_size,
12 FX_LPBYTE& dest_buf,
13 FX_DWORD& dest_size);
14 virtual FX_BOOL A85Encode(const FX_BYTE* src_buf,
15 FX_DWORD src_size,
16 FX_LPBYTE& dest_buf,
17 FX_DWORD& dest_size);
18 virtual ICodec_ScanlineDecoder* CreateRunLengthDecoder(FX_LPCBYTE src_buf,
19 FX_DWORD src_size,
20 int width,
21 int height,
22 int nComps,
23 int bpc);
24 };
25 struct CCodec_ImageDataCache {
26 int m_Width, m_Height;
27 int m_nCachedLines;
28 FX_BYTE m_Data;
29 };
30 class CCodec_ScanlineDecoder : public ICodec_ScanlineDecoder {
31 public:
32 CCodec_ScanlineDecoder();
33
34 virtual ~CCodec_ScanlineDecoder();
35
36 virtual FX_DWORD GetSrcOffset() { return -1; }
37
38 virtual void DownScale(int dest_width, int dest_height);
39
40 FX_LPBYTE GetScanline(int line);
41
42 FX_BOOL SkipToScanline(int line, IFX_Pause* pPause);
43
44 int GetWidth() { return m_OutputWidth; }
45
46 int GetHeight() { return m_OutputHeight; }
47
48 int CountComps() { return m_nComps; }
49
50 int GetBPC() { return m_bpc; }
51
52 FX_BOOL IsColorTransformed() { return m_bColorTransformed; }
53
54 void ClearImageData() {
55 if (m_pDataCache) {
56 FX_Free(m_pDataCache);
57 }
58 m_pDataCache = NULL;
59 }
60
61 protected:
62 int m_OrigWidth;
63
64 int m_OrigHeight;
65
66 int m_DownScale;
67
68 int m_OutputWidth;
69
70 int m_OutputHeight;
71
72 int m_nComps;
73
74 int m_bpc;
75
76 int m_Pitch;
77
78 FX_BOOL m_bColorTransformed;
79
80 FX_LPBYTE ReadNextLine();
81
82 virtual FX_BOOL v_Rewind() = 0;
83
84 virtual FX_LPBYTE v_GetNextLine() = 0;
85
86 virtual void v_DownScale(int dest_width, int dest_height) = 0;
87
88 int m_NextLine;
89
90 FX_LPBYTE m_pLastScanline;
91
92 CCodec_ImageDataCache* m_pDataCache;
93 };
94 class CCodec_FaxModule : public ICodec_FaxModule {
95 public:
96 virtual ICodec_ScanlineDecoder* CreateDecoder(FX_LPCBYTE src_buf,
97 FX_DWORD src_size,
98 int width,
99 int height,
100 int K,
101 FX_BOOL EndOfLine,
102 FX_BOOL EncodedByteAlign,
103 FX_BOOL BlackIs1,
104 int Columns,
105 int Rows);
106 FX_BOOL Encode(FX_LPCBYTE src_buf,
107 int width,
108 int height,
109 int pitch,
110 FX_LPBYTE& dest_buf,
111 FX_DWORD& dest_size);
112 };
113 class CCodec_FlateModule : public ICodec_FlateModule {
114 public:
115 virtual ICodec_ScanlineDecoder* CreateDecoder(FX_LPCBYTE src_buf,
116 FX_DWORD src_size,
117 int width,
118 int height,
119 int nComps,
120 int bpc,
121 int predictor,
122 int Colors,
123 int BitsPerComponent,
124 int Columns);
125 virtual FX_DWORD FlateOrLZWDecode(FX_BOOL bLZW,
126 const FX_BYTE* src_buf,
127 FX_DWORD src_size,
128 FX_BOOL bEarlyChange,
129 int predictor,
130 int Colors,
131 int BitsPerComponent,
132 int Columns,
133 FX_DWORD estimated_size,
134 FX_LPBYTE& dest_buf,
12 FX_DWORD& dest_size); 135 FX_DWORD& dest_size);
13 virtual FX_BOOL» A85Encode(const FX_BYTE* src_buf, FX_DWORD src_size, FX_ LPBYTE& dest_buf, 136 virtual FX_BOOL Encode(const FX_BYTE* src_buf,
14 FX_DWORD& dest_size); 137 FX_DWORD src_size,
15 virtual ICodec_ScanlineDecoder*» CreateRunLengthDecoder(FX_LPCBYTE src_bu f, FX_DWORD src_size, int width, int height, 138 int predictor,
16 int nComps, int bpc); 139 int Colors,
17 }; 140 int BitsPerComponent,
18 struct CCodec_ImageDataCache { 141 int Columns,
19 int»» » m_Width, m_Height; 142 FX_LPBYTE& dest_buf,
20 int»» » m_nCachedLines; 143 FX_DWORD& dest_size);
21 FX_BYTE» » m_Data; 144 virtual FX_BOOL Encode(FX_LPCBYTE src_buf,
22 }; 145 FX_DWORD src_size,
23 class CCodec_ScanlineDecoder : public ICodec_ScanlineDecoder 146 FX_LPBYTE& dest_buf,
24 { 147 FX_DWORD& dest_size);
25 public: 148 };
26 149 class CCodec_JpegModule : public ICodec_JpegModule {
27 CCodec_ScanlineDecoder(); 150 public:
28 151 CCodec_JpegModule() : m_pExtProvider(NULL) {}
29 virtual ~CCodec_ScanlineDecoder(); 152 void SetPovider(IFX_JpegProvider* pJP) { m_pExtProvider = pJP; }
30 153 ICodec_ScanlineDecoder* CreateDecoder(FX_LPCBYTE src_buf,
31 virtual FX_DWORD» GetSrcOffset() 154 FX_DWORD src_size,
32 { 155 int width,
33 return -1; 156 int height,
157 int nComps,
158 FX_BOOL ColorTransform);
159 FX_BOOL LoadInfo(FX_LPCBYTE src_buf,
160 FX_DWORD src_size,
161 int& width,
162 int& height,
163 int& num_components,
164 int& bits_per_components,
165 FX_BOOL& color_transform,
166 FX_LPBYTE* icc_buf_ptr,
167 FX_DWORD* icc_length);
168 FX_BOOL Encode(const CFX_DIBSource* pSource,
169 FX_LPBYTE& dest_buf,
170 FX_STRSIZE& dest_size,
171 int quality,
172 FX_LPCBYTE icc_buf,
173 FX_DWORD icc_length);
174 virtual void* Start();
175 virtual void Finish(void* pContext);
176 virtual void Input(void* pContext, FX_LPCBYTE src_buf, FX_DWORD src_size);
177 virtual int ReadHeader(void* pContext, int* width, int* height, int* nComps);
178 virtual FX_BOOL StartScanline(void* pContext, int down_scale);
179 virtual FX_BOOL ReadScanline(void* pContext, FX_LPBYTE dest_buf);
180 virtual FX_DWORD GetAvailInput(void* pContext, FX_LPBYTE* avail_buf_ptr);
181
182 protected:
183 IFX_JpegProvider* m_pExtProvider;
184 };
185 class CCodec_IccModule : public ICodec_IccModule {
186 public:
187 virtual IccCS GetProfileCS(FX_LPCBYTE pProfileData,
188 unsigned int dwProfileSize);
189 virtual IccCS GetProfileCS(IFX_FileRead* pFile);
190 virtual FX_LPVOID CreateTransform(
191 ICodec_IccModule::IccParam* pInputParam,
192 ICodec_IccModule::IccParam* pOutputParam,
193 ICodec_IccModule::IccParam* pProofParam = NULL,
194 FX_DWORD dwIntent = Icc_INTENT_PERCEPTUAL,
195 FX_DWORD dwFlag = Icc_FLAGS_DEFAULT,
196 FX_DWORD dwPrfIntent = Icc_INTENT_ABSOLUTE_COLORIMETRIC,
197 FX_DWORD dwPrfFlag = Icc_FLAGS_SOFTPROOFING);
198 virtual FX_LPVOID CreateTransform_sRGB(
199 FX_LPCBYTE pProfileData,
200 unsigned int dwProfileSize,
201 int nComponents,
202 int intent = 0,
203 FX_DWORD dwSrcFormat = Icc_FORMAT_DEFAULT);
204 virtual FX_LPVOID CreateTransform_CMYK(
205 FX_LPCBYTE pSrcProfileData,
206 unsigned int dwSrcProfileSize,
207 int nSrcComponents,
208 FX_LPCBYTE pDstProfileData,
209 unsigned int dwDstProfileSize,
210 int intent = 0,
211 FX_DWORD dwSrcFormat = Icc_FORMAT_DEFAULT,
212 FX_DWORD dwDstFormat = Icc_FORMAT_DEFAULT);
213 virtual void DestroyTransform(FX_LPVOID pTransform);
214 virtual void Translate(FX_LPVOID pTransform,
215 FX_FLOAT* pSrcValues,
216 FX_FLOAT* pDestValues);
217 virtual void TranslateScanline(FX_LPVOID pTransform,
218 FX_LPBYTE pDest,
219 FX_LPCBYTE pSrc,
220 int pixels);
221 virtual void SetComponents(FX_DWORD nComponents) {
222 m_nComponents = nComponents;
223 }
224 virtual ~CCodec_IccModule();
225
226 protected:
227 CFX_MapByteStringToPtr m_MapTranform;
228 CFX_MapByteStringToPtr m_MapProfile;
229 FX_DWORD m_nComponents;
230 typedef enum {
231 Icc_CLASS_INPUT = 0,
232 Icc_CLASS_OUTPUT,
233 Icc_CLASS_PROOF,
234 Icc_CLASS_MAX
235 } Icc_CLASS;
236 FX_LPVOID CreateProfile(ICodec_IccModule::IccParam* pIccParam,
237 Icc_CLASS ic,
238 CFX_BinaryBuf* pTransformKey);
239 };
240 class CCodec_JpxModule : public ICodec_JpxModule {
241 public:
242 CCodec_JpxModule();
243 void* CreateDecoder(FX_LPCBYTE src_buf,
244 FX_DWORD src_size,
245 FX_BOOL useColorSpace = FALSE);
246 void GetImageInfo(FX_LPVOID ctx,
247 FX_DWORD& width,
248 FX_DWORD& height,
249 FX_DWORD& codestream_nComps,
250 FX_DWORD& output_nComps);
251 FX_BOOL Decode(void* ctx,
252 FX_LPBYTE dest_data,
253 int pitch,
254 FX_BOOL bTranslateColor,
255 FX_LPBYTE offsets);
256 void DestroyDecoder(void* ctx);
257 };
258 #include "../jbig2/JBig2_Context.h"
259 class CPDF_Jbig2Interface : public CFX_Object, public CJBig2_Module {
260 public:
261 virtual void* JBig2_Malloc(FX_DWORD dwSize) {
262 return FX_Alloc(FX_BYTE, dwSize);
263 }
264 virtual void* JBig2_Malloc2(FX_DWORD num, FX_DWORD dwSize) {
265 if (dwSize && num >= UINT_MAX / dwSize) {
266 return NULL;
34 } 267 }
35 268 return FX_Alloc(FX_BYTE, num * dwSize);
36 virtual void» » DownScale(int dest_width, int dest_height); 269 }
37 270 virtual void* JBig2_Malloc3(FX_DWORD num, FX_DWORD dwSize, FX_DWORD dwSize2) {
38 FX_LPBYTE» » » GetScanline(int line); 271 if (dwSize2 && dwSize >= UINT_MAX / dwSize2) {
39 272 return NULL;
40 FX_BOOL» » » » SkipToScanline(int line, IFX_Pause* pPau se);
41
42 int»» » » » GetWidth()
43 {
44 return m_OutputWidth;
45 } 273 }
46 274 FX_DWORD size = dwSize2 * dwSize;
47 int»» » » » GetHeight() 275 if (size && num >= UINT_MAX / size) {
48 { 276 return NULL;
49 return m_OutputHeight;
50 } 277 }
51 278 return FX_Alloc(FX_BYTE, num * size);
52 int CountComps() 279 }
53 { 280 virtual void* JBig2_Realloc(FX_LPVOID pMem, FX_DWORD dwSize) {
54 return m_nComps; 281 return FX_Realloc(FX_BYTE, pMem, dwSize);
55 } 282 }
56 283 virtual void JBig2_Free(FX_LPVOID pMem) { FX_Free(pMem); }
57 int GetBPC() 284 };
58 { 285 class CCodec_Jbig2Context : public CFX_Object {
59 return m_bpc; 286 public:
60 } 287 CCodec_Jbig2Context();
61 288 ~CCodec_Jbig2Context(){};
62 FX_BOOL IsColorTransformed() 289 IFX_FileRead* m_file_ptr;
63 { 290 FX_DWORD m_width;
64 return m_bColorTransformed; 291 FX_DWORD m_height;
65 } 292 FX_LPBYTE m_src_buf;
66 293 FX_DWORD m_src_size;
67 void ClearImageData() 294 FX_LPCBYTE m_global_data;
68 { 295 FX_DWORD m_global_size;
69 if (m_pDataCache) { 296 FX_LPBYTE m_dest_buf;
70 FX_Free(m_pDataCache); 297 FX_DWORD m_dest_pitch;
71 } 298 FX_BOOL m_bFileReader;
72 m_pDataCache = NULL; 299 IFX_Pause* m_pPause;
73 } 300 CJBig2_Context* m_pContext;
74 protected: 301 CJBig2_Image* m_dest_image;
75 302 };
76 int m_OrigWidth; 303 class CCodec_Jbig2Module : public ICodec_Jbig2Module {
77 304 public:
78 int m_OrigHeight; 305 CCodec_Jbig2Module(){};
79 306 ~CCodec_Jbig2Module();
80 int m_DownScale; 307 FX_BOOL Decode(FX_DWORD width,
81 308 FX_DWORD height,
82 int m_OutputWidth; 309 FX_LPCBYTE src_buf,
83 310 FX_DWORD src_size,
84 int m_OutputHeight; 311 FX_LPCBYTE global_data,
85 312 FX_DWORD global_size,
86 int m_nComps; 313 FX_LPBYTE dest_buf,
87 314 FX_DWORD dest_pitch);
88 int m_bpc; 315 FX_BOOL Decode(IFX_FileRead* file_ptr,
89 316 FX_DWORD& width,
90 int m_Pitch; 317 FX_DWORD& height,
91 318 FX_DWORD& pitch,
92 FX_BOOL m_bColorTransformed; 319 FX_LPBYTE& dest_buf);
93 320 void* CreateJbig2Context();
94 FX_LPBYTE ReadNextLine(); 321 FXCODEC_STATUS StartDecode(void* pJbig2Context,
95 322 FX_DWORD width,
96 virtual FX_BOOL v_Rewind() = 0; 323 FX_DWORD height,
97 324 FX_LPCBYTE src_buf,
98 virtual FX_LPBYTE v_GetNextLine() = 0; 325 FX_DWORD src_size,
99 326 FX_LPCBYTE global_data,
100 virtual void v_DownScale(int dest_width, int dest_height) = 0 ; 327 FX_DWORD global_size,
101 328 FX_LPBYTE dest_buf,
102 int m_NextLine; 329 FX_DWORD dest_pitch,
103 330 IFX_Pause* pPause);
104 FX_LPBYTE m_pLastScanline; 331
105 332 FXCODEC_STATUS StartDecode(void* pJbig2Context,
106 CCodec_ImageDataCache* m_pDataCache; 333 IFX_FileRead* file_ptr,
107 }; 334 FX_DWORD& width,
108 class CCodec_FaxModule : public ICodec_FaxModule 335 FX_DWORD& height,
109 { 336 FX_DWORD& pitch,
110 public: 337 FX_LPBYTE& dest_buf,
111 virtual ICodec_ScanlineDecoder* CreateDecoder(FX_LPCBYTE src_buf, FX_DWO RD src_size, int width, int height, 338 IFX_Pause* pPause);
112 int K, FX_BOOL EndOfLine, FX_BOOL EncodedByteAlign, FX_BOOL BlackIs1 , int Columns, int Rows); 339 FXCODEC_STATUS ContinueDecode(void* pJbig2Context, IFX_Pause* pPause);
113 FX_BOOL Encode(FX_LPCBYTE src_buf, int width, int height, int pi tch, FX_LPBYTE& dest_buf, FX_DWORD& dest_size); 340 void DestroyJbig2Context(void* pJbig2Context);
114 }; 341 CPDF_Jbig2Interface m_Module;
115 class CCodec_FlateModule : public ICodec_FlateModule 342
116 { 343 private:
117 public: 344 };
118 virtual ICodec_ScanlineDecoder* CreateDecoder(FX_LPCBYTE src_buf, FX_DWO RD src_size, int width, int height,
119 int nComps, int bpc, int predictor, int Colors, int BitsPerComponent , int Columns);
120 virtual FX_DWORD FlateOrLZWDecode(FX_BOOL bLZW, const FX_BYTE* src_buf, FX_D WORD src_size, FX_BOOL bEarlyChange,
121 int predictor, int Colors, int BitsPerComp onent, int Columns,
122 FX_DWORD estimated_size, FX_LPBYTE& dest_b uf, FX_DWORD& dest_size);
123 virtual FX_BOOL Encode(const FX_BYTE* src_buf, FX_DWORD src_size,
124 int predictor, int Colors, int BitsPerComponent, int Columns,
125 FX_LPBYTE& dest_buf, FX_DWORD& dest_size);
126 virtual FX_BOOL Encode(FX_LPCBYTE src_buf, FX_DWORD src_size, FX _LPBYTE& dest_buf, FX_DWORD& dest_size);
127 };
128 class CCodec_JpegModule : public ICodec_JpegModule
129 {
130 public:
131 CCodec_JpegModule() : m_pExtProvider(NULL) {}
132 void SetPovider(IFX_JpegProvider* pJP)
133 {
134 m_pExtProvider = pJP;
135 }
136 ICodec_ScanlineDecoder* CreateDecoder(FX_LPCBYTE src_buf, FX_DWORD src_s ize,
137 int width, int height, int nComps, FX_ BOOL ColorTransform);
138 FX_BOOL LoadInfo(FX_LPCBYTE src_buf, FX_DWORD src_size, int& wid th, int& height,
139 int& num_components, int& bits_per_components, FX_BOOL& color_transform,
140 FX_LPBYTE* icc_buf_ptr, FX_DWORD* icc_length);
141 FX_BOOL Encode(const CFX_DIBSource* pSource, FX_LPBYTE& dest_buf , FX_STRSIZE& dest_size, int quality, FX_LPCBYTE icc_buf, FX_DWORD icc_length);
142 virtual void* Start();
143 virtual void Finish(void* pContext);
144 virtual void Input(void* pContext, FX_LPCBYTE src_buf, FX_DWO RD src_size);
145 virtual int ReadHeader(void* pContext, int* width, int* heig ht, int* nComps);
146 virtual FX_BOOL StartScanline(void* pContext, int down_scale);
147 virtual FX_BOOL ReadScanline(void* pContext, FX_LPBYTE dest_buf) ;
148 virtual FX_DWORD GetAvailInput(void* pContext, FX_LPBYTE* avail_buf_ptr);
149 protected:
150 IFX_JpegProvider* m_pExtProvider;
151 };
152 class CCodec_IccModule : public ICodec_IccModule
153 {
154 public:
155 virtual IccCS GetProfileCS(FX_LPCBYTE pProfileData, un signed int dwProfileSize);
156 virtual IccCS GetProfileCS(IFX_FileRead* pFile);
157 virtual FX_LPVOID CreateTransform(ICodec_IccModule::IccParam* pInp utParam,
158 ICodec_IccModule::IccParam* pOutputP aram,
159 ICodec_IccModule::IccParam* pProofPa ram = NULL,
160 FX_DWORD dwIntent = Icc_INTENT_PERCE PTUAL,
161 FX_DWORD dwFlag = Icc_FLAGS_DEFAULT,
162 FX_DWORD dwPrfIntent = Icc_INTENT_AB SOLUTE_COLORIMETRIC,
163 FX_DWORD dwPrfFlag = Icc_FLAGS_SOFTP ROOFING
164 );
165 virtual FX_LPVOID CreateTransform_sRGB(FX_LPCBYTE pProfileData, un signed int dwProfileSize, int nComponents, int intent = 0,
166 FX_DWORD dwSrcFormat = Icc_FORMAT_DEFAULT);
167 virtual FX_LPVOID CreateTransform_CMYK(FX_LPCBYTE pSrcProfileData, unsigned int dwSrcProfileSize, int nSrcComponents,
168 FX_LPCBYTE pDstProfileData, unsigned int dwDstProfileSize, int inten t = 0,
169 FX_DWORD dwSrcFormat = Icc_FORMAT_DEFAULT,
170 FX_DWORD dwDstFormat = Icc_FORMAT_DEFAULT
171 );
172 virtual void DestroyTransform(FX_LPVOID pTransform);
173 virtual void Translate(FX_LPVOID pTransform, FX_FLOAT * pSrcValues, FX_FLOAT* pDestValues);
174 virtual void TranslateScanline(FX_LPVOID pTransform, FX_LPBYTE pDest, FX_LPCBYTE pSrc, int pixels);
175 virtual void SetComponents(FX_DWORD nComponents) {m_n Components = nComponents;}
176 virtual ~CCodec_IccModule();
177 protected:
178 CFX_MapByteStringToPtr m_MapTranform;
179 CFX_MapByteStringToPtr m_MapProfile;
180 FX_DWORD m_nComponents;
181 typedef enum {
182 Icc_CLASS_INPUT = 0,
183 Icc_CLASS_OUTPUT,
184 Icc_CLASS_PROOF,
185 Icc_CLASS_MAX
186 } Icc_CLASS;
187 FX_LPVOID CreateProfile(ICodec_IccModule::IccParam* pIccParam, Icc _CLASS ic, CFX_BinaryBuf* pTransformKey);
188 };
189 class CCodec_JpxModule : public ICodec_JpxModule
190 {
191 public:
192 CCodec_JpxModule();
193 void* CreateDecoder(FX_LPCBYTE src_buf, FX_DWORD src_size, FX_ BOOL useColorSpace = FALSE);
194 void GetImageInfo(FX_LPVOID ctx, FX_DWORD& width, FX_DWORD& h eight,
195 FX_DWORD& codestream_nComps, FX_DWORD& output_nComp s);
196 FX_BOOL Decode(void* ctx, FX_LPBYTE dest_data, int pitch, FX_BOO L bTranslateColor, FX_LPBYTE offsets);
197 void DestroyDecoder(void* ctx);
198 };
199 #include "../jbig2/JBig2_Context.h"
200 class CPDF_Jbig2Interface : public CFX_Object, public CJBig2_Module
201 {
202 public:
203 virtual void *JBig2_Malloc(FX_DWORD dwSize)
204 {
205 return FX_Alloc(FX_BYTE, dwSize);
206 }
207 virtual void *JBig2_Malloc2(FX_DWORD num, FX_DWORD dwSize)
208 {
209 if (dwSize && num >= UINT_MAX / dwSize) {
210 return NULL;
211 }
212 return FX_Alloc(FX_BYTE, num * dwSize);
213 }
214 virtual void *JBig2_Malloc3(FX_DWORD num, FX_DWORD dwSize, FX_DWORD dwSize2)
215 {
216 if (dwSize2 && dwSize >= UINT_MAX / dwSize2) {
217 return NULL;
218 }
219 FX_DWORD size = dwSize2 * dwSize;
220 if (size && num >= UINT_MAX / size) {
221 return NULL;
222 }
223 return FX_Alloc(FX_BYTE, num * size);
224 }
225 virtual void *JBig2_Realloc(FX_LPVOID pMem, FX_DWORD dwSize)
226 {
227 return FX_Realloc(FX_BYTE, pMem, dwSize);
228 }
229 virtual void JBig2_Free(FX_LPVOID pMem)
230 {
231 FX_Free(pMem);
232 }
233 };
234 class CCodec_Jbig2Context : public CFX_Object
235 {
236 public:
237 CCodec_Jbig2Context();
238 ~CCodec_Jbig2Context() {};
239 IFX_FileRead* m_file_ptr;
240 FX_DWORD m_width;
241 FX_DWORD m_height;
242 FX_LPBYTE m_src_buf;
243 FX_DWORD m_src_size;
244 FX_LPCBYTE m_global_data;
245 FX_DWORD m_global_size;
246 FX_LPBYTE m_dest_buf;
247 FX_DWORD m_dest_pitch;
248 FX_BOOL m_bFileReader;
249 IFX_Pause* m_pPause;
250 CJBig2_Context* m_pContext;
251 CJBig2_Image* m_dest_image;
252 };
253 class CCodec_Jbig2Module : public ICodec_Jbig2Module
254 {
255 public:
256 CCodec_Jbig2Module() {};
257 ~CCodec_Jbig2Module();
258 FX_BOOL Decode(FX_DWORD width, FX_DWORD height, FX_LPCBYTE src_b uf, FX_DWORD src_size,
259 FX_LPCBYTE global_data, FX_DWORD global_size, FX_LPBYTE d est_buf, FX_DWORD dest_pitch);
260 FX_BOOL Decode(IFX_FileRead* file_ptr,
261 FX_DWORD& width, FX_DWORD& height, FX_DWORD& pitch, FX_LP BYTE& dest_buf);
262 void* CreateJbig2Context();
263 FXCODEC_STATUS StartDecode(void* pJbig2Context, FX_DWORD width, FX_DWORD height, FX_LPCBYTE src_buf, FX_DWORD src_size,
264 FX_LPCBYTE global_data, FX_DWORD global_size , FX_LPBYTE dest_buf, FX_DWORD dest_pitch, IFX_Pause* pPause);
265
266 FXCODEC_STATUS StartDecode(void* pJbig2Context, IFX_FileRead* f ile_ptr,
267 FX_DWORD& width, FX_DWORD& height, FX_DWORD& pitch, FX_LPBYTE& dest_buf, IFX_Pause* pPause);
268 FXCODEC_STATUS ContinueDecode(void* pJbig2Context, IFX_Pause* p Pause);
269 void DestroyJbig2Context(void* pJbig2Context) ;
270 CPDF_Jbig2Interface m_Module;
271 private:
272 };
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698