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

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

Issue 1292613003: Use override in more classes in core/ (Closed) Base URL: https://pdfium.googlesource.com/pdfium@master
Patch Set: nit Created 5 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
« no previous file with comments | « core/src/fpdftext/text_int.h ('k') | core/src/fxcodec/codec/fx_codec.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 #ifndef CORE_SRC_FXCODEC_CODEC_CODEC_INT_H_ 7 #ifndef CORE_SRC_FXCODEC_CODEC_CODEC_INT_H_
8 #define CORE_SRC_FXCODEC_CODEC_CODEC_INT_H_ 8 #define CORE_SRC_FXCODEC_CODEC_CODEC_INT_H_
9 9
10 #include <limits.h> 10 #include <limits.h>
(...skipping 13 matching lines...) Expand all
24 FX_DWORD src_size, 24 FX_DWORD src_size,
25 uint8_t*& dest_buf, 25 uint8_t*& dest_buf,
26 FX_DWORD& dest_size); 26 FX_DWORD& dest_size);
27 virtual ICodec_ScanlineDecoder* CreateRunLengthDecoder(const uint8_t* src_buf, 27 virtual ICodec_ScanlineDecoder* CreateRunLengthDecoder(const uint8_t* src_buf,
28 FX_DWORD src_size, 28 FX_DWORD src_size,
29 int width, 29 int width,
30 int height, 30 int height,
31 int nComps, 31 int nComps,
32 int bpc); 32 int bpc);
33 }; 33 };
34
34 struct CCodec_ImageDataCache { 35 struct CCodec_ImageDataCache {
35 int m_Width, m_Height; 36 int m_Width, m_Height;
36 int m_nCachedLines; 37 int m_nCachedLines;
37 uint8_t m_Data; 38 uint8_t m_Data;
38 }; 39 };
40
39 class CCodec_ScanlineDecoder : public ICodec_ScanlineDecoder { 41 class CCodec_ScanlineDecoder : public ICodec_ScanlineDecoder {
40 public: 42 public:
41 CCodec_ScanlineDecoder(); 43 CCodec_ScanlineDecoder();
44 ~CCodec_ScanlineDecoder() override;
42 45
43 virtual ~CCodec_ScanlineDecoder(); 46 // ICodec_ScanlineDecoder
44 47 FX_DWORD GetSrcOffset() override { return -1; }
45 virtual FX_DWORD GetSrcOffset() { return -1; } 48 void DownScale(int dest_width, int dest_height) override;
46 49 uint8_t* GetScanline(int line) override;
47 virtual void DownScale(int dest_width, int dest_height); 50 FX_BOOL SkipToScanline(int line, IFX_Pause* pPause) override;
48 51 int GetWidth() override { return m_OutputWidth; }
49 uint8_t* GetScanline(int line); 52 int GetHeight() override { return m_OutputHeight; }
50 53 int CountComps() override { return m_nComps; }
51 FX_BOOL SkipToScanline(int line, IFX_Pause* pPause); 54 int GetBPC() override { return m_bpc; }
52 55 FX_BOOL IsColorTransformed() override { return m_bColorTransformed; }
53 int GetWidth() { return m_OutputWidth; } 56 void ClearImageData() override {
54
55 int GetHeight() { return m_OutputHeight; }
56
57 int CountComps() { return m_nComps; }
58
59 int GetBPC() { return m_bpc; }
60
61 FX_BOOL IsColorTransformed() { return m_bColorTransformed; }
62
63 void ClearImageData() {
64 if (m_pDataCache) { 57 if (m_pDataCache) {
65 FX_Free(m_pDataCache); 58 FX_Free(m_pDataCache);
66 } 59 }
67 m_pDataCache = NULL; 60 m_pDataCache = NULL;
68 } 61 }
69 62
70 protected: 63 protected:
71 int m_OrigWidth; 64 int m_OrigWidth;
72 65
73 int m_OrigHeight; 66 int m_OrigHeight;
(...skipping 19 matching lines...) Expand all
93 virtual uint8_t* v_GetNextLine() = 0; 86 virtual uint8_t* v_GetNextLine() = 0;
94 87
95 virtual void v_DownScale(int dest_width, int dest_height) = 0; 88 virtual void v_DownScale(int dest_width, int dest_height) = 0;
96 89
97 int m_NextLine; 90 int m_NextLine;
98 91
99 uint8_t* m_pLastScanline; 92 uint8_t* m_pLastScanline;
100 93
101 CCodec_ImageDataCache* m_pDataCache; 94 CCodec_ImageDataCache* m_pDataCache;
102 }; 95 };
96
103 class CCodec_FaxModule : public ICodec_FaxModule { 97 class CCodec_FaxModule : public ICodec_FaxModule {
104 public: 98 public:
105 virtual ICodec_ScanlineDecoder* CreateDecoder(const uint8_t* src_buf, 99 virtual ICodec_ScanlineDecoder* CreateDecoder(const uint8_t* src_buf,
106 FX_DWORD src_size, 100 FX_DWORD src_size,
107 int width, 101 int width,
108 int height, 102 int height,
109 int K, 103 int K,
110 FX_BOOL EndOfLine, 104 FX_BOOL EndOfLine,
111 FX_BOOL EncodedByteAlign, 105 FX_BOOL EncodedByteAlign,
112 FX_BOOL BlackIs1, 106 FX_BOOL BlackIs1,
113 int Columns, 107 int Columns,
114 int Rows); 108 int Rows);
115 FX_BOOL Encode(const uint8_t* src_buf, 109 FX_BOOL Encode(const uint8_t* src_buf,
116 int width, 110 int width,
117 int height, 111 int height,
118 int pitch, 112 int pitch,
119 uint8_t*& dest_buf, 113 uint8_t*& dest_buf,
120 FX_DWORD& dest_size); 114 FX_DWORD& dest_size);
121 }; 115 };
116
122 class CCodec_FlateModule : public ICodec_FlateModule { 117 class CCodec_FlateModule : public ICodec_FlateModule {
123 public: 118 public:
124 virtual ICodec_ScanlineDecoder* CreateDecoder(const uint8_t* src_buf, 119 virtual ICodec_ScanlineDecoder* CreateDecoder(const uint8_t* src_buf,
125 FX_DWORD src_size, 120 FX_DWORD src_size,
126 int width, 121 int width,
127 int height, 122 int height,
128 int nComps, 123 int nComps,
129 int bpc, 124 int bpc,
130 int predictor, 125 int predictor,
131 int Colors, 126 int Colors,
(...skipping 16 matching lines...) Expand all
148 int Colors, 143 int Colors,
149 int BitsPerComponent, 144 int BitsPerComponent,
150 int Columns, 145 int Columns,
151 uint8_t*& dest_buf, 146 uint8_t*& dest_buf,
152 FX_DWORD& dest_size); 147 FX_DWORD& dest_size);
153 virtual FX_BOOL Encode(const uint8_t* src_buf, 148 virtual FX_BOOL Encode(const uint8_t* src_buf,
154 FX_DWORD src_size, 149 FX_DWORD src_size,
155 uint8_t*& dest_buf, 150 uint8_t*& dest_buf,
156 FX_DWORD& dest_size); 151 FX_DWORD& dest_size);
157 }; 152 };
153
158 class CCodec_JpegModule : public ICodec_JpegModule { 154 class CCodec_JpegModule : public ICodec_JpegModule {
159 public: 155 public:
160 CCodec_JpegModule() : m_pExtProvider(NULL) {} 156 CCodec_JpegModule() : m_pExtProvider(NULL) {}
161 void SetPovider(IFX_JpegProvider* pJP) { m_pExtProvider = pJP; } 157 void SetPovider(IFX_JpegProvider* pJP) { m_pExtProvider = pJP; }
162 ICodec_ScanlineDecoder* CreateDecoder(const uint8_t* src_buf, 158 ICodec_ScanlineDecoder* CreateDecoder(const uint8_t* src_buf,
163 FX_DWORD src_size, 159 FX_DWORD src_size,
164 int width, 160 int width,
165 int height, 161 int height,
166 int nComps, 162 int nComps,
167 FX_BOOL ColorTransform); 163 FX_BOOL ColorTransform);
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after
237 typedef enum { 233 typedef enum {
238 Icc_CLASS_INPUT = 0, 234 Icc_CLASS_INPUT = 0,
239 Icc_CLASS_OUTPUT, 235 Icc_CLASS_OUTPUT,
240 Icc_CLASS_PROOF, 236 Icc_CLASS_PROOF,
241 Icc_CLASS_MAX 237 Icc_CLASS_MAX
242 } Icc_CLASS; 238 } Icc_CLASS;
243 void* CreateProfile(ICodec_IccModule::IccParam* pIccParam, 239 void* CreateProfile(ICodec_IccModule::IccParam* pIccParam,
244 Icc_CLASS ic, 240 Icc_CLASS ic,
245 CFX_BinaryBuf* pTransformKey); 241 CFX_BinaryBuf* pTransformKey);
246 }; 242 };
243
247 class CCodec_JpxModule : public ICodec_JpxModule { 244 class CCodec_JpxModule : public ICodec_JpxModule {
248 public: 245 public:
249 CCodec_JpxModule(); 246 CCodec_JpxModule();
250 void* CreateDecoder(const uint8_t* src_buf, 247 void* CreateDecoder(const uint8_t* src_buf,
251 FX_DWORD src_size, 248 FX_DWORD src_size,
252 FX_BOOL useColorSpace = FALSE); 249 FX_BOOL useColorSpace = FALSE);
253 void GetImageInfo(void* ctx, 250 void GetImageInfo(void* ctx,
254 FX_DWORD& width, 251 FX_DWORD& width,
255 FX_DWORD& height, 252 FX_DWORD& height,
256 FX_DWORD& codestream_nComps, 253 FX_DWORD& codestream_nComps,
257 FX_DWORD& output_nComps); 254 FX_DWORD& output_nComps);
258 FX_BOOL Decode(void* ctx, 255 FX_BOOL Decode(void* ctx,
259 uint8_t* dest_data, 256 uint8_t* dest_data,
260 int pitch, 257 int pitch,
261 FX_BOOL bTranslateColor, 258 FX_BOOL bTranslateColor,
262 uint8_t* offsets); 259 uint8_t* offsets);
263 void DestroyDecoder(void* ctx); 260 void DestroyDecoder(void* ctx);
264 }; 261 };
262
265 class CPDF_Jbig2Interface : public CJBig2_Module { 263 class CPDF_Jbig2Interface : public CJBig2_Module {
266 public: 264 public:
267 virtual void* JBig2_Malloc(FX_DWORD dwSize) { 265 virtual void* JBig2_Malloc(FX_DWORD dwSize) {
268 return FX_Alloc(uint8_t, dwSize); 266 return FX_Alloc(uint8_t, dwSize);
269 } 267 }
270 virtual void* JBig2_Malloc2(FX_DWORD num, FX_DWORD dwSize) { 268 virtual void* JBig2_Malloc2(FX_DWORD num, FX_DWORD dwSize) {
271 if (dwSize && num >= UINT_MAX / dwSize) { 269 if (dwSize && num >= UINT_MAX / dwSize) {
272 return NULL; 270 return NULL;
273 } 271 }
274 return FX_Alloc(uint8_t, num * dwSize); 272 return FX_Alloc(uint8_t, num * dwSize);
275 } 273 }
276 virtual void* JBig2_Malloc3(FX_DWORD num, FX_DWORD dwSize, FX_DWORD dwSize2) { 274 virtual void* JBig2_Malloc3(FX_DWORD num, FX_DWORD dwSize, FX_DWORD dwSize2) {
277 if (dwSize2 && dwSize >= UINT_MAX / dwSize2) { 275 if (dwSize2 && dwSize >= UINT_MAX / dwSize2) {
278 return NULL; 276 return NULL;
279 } 277 }
280 FX_DWORD size = dwSize2 * dwSize; 278 FX_DWORD size = dwSize2 * dwSize;
281 if (size && num >= UINT_MAX / size) { 279 if (size && num >= UINT_MAX / size) {
282 return NULL; 280 return NULL;
283 } 281 }
284 return FX_Alloc(uint8_t, num * size); 282 return FX_Alloc(uint8_t, num * size);
285 } 283 }
286 virtual void* JBig2_Realloc(void* pMem, FX_DWORD dwSize) { 284 virtual void* JBig2_Realloc(void* pMem, FX_DWORD dwSize) {
287 return FX_Realloc(uint8_t, pMem, dwSize); 285 return FX_Realloc(uint8_t, pMem, dwSize);
288 } 286 }
289 virtual void JBig2_Free(void* pMem) { FX_Free(pMem); } 287 virtual void JBig2_Free(void* pMem) { FX_Free(pMem); }
290 }; 288 };
289
291 class CCodec_Jbig2Context { 290 class CCodec_Jbig2Context {
292 public: 291 public:
293 CCodec_Jbig2Context(); 292 CCodec_Jbig2Context();
294 ~CCodec_Jbig2Context(){}; 293 ~CCodec_Jbig2Context(){};
295 294
296 FX_DWORD m_width; 295 FX_DWORD m_width;
297 FX_DWORD m_height; 296 FX_DWORD m_height;
298 uint8_t* m_src_buf; 297 uint8_t* m_src_buf;
299 FX_DWORD m_src_size; 298 FX_DWORD m_src_size;
300 const uint8_t* m_global_data; 299 const uint8_t* m_global_data;
301 FX_DWORD m_global_size; 300 FX_DWORD m_global_size;
302 uint8_t* m_dest_buf; 301 uint8_t* m_dest_buf;
303 FX_DWORD m_dest_pitch; 302 FX_DWORD m_dest_pitch;
304 FX_BOOL m_bFileReader; 303 FX_BOOL m_bFileReader;
305 IFX_Pause* m_pPause; 304 IFX_Pause* m_pPause;
306 CJBig2_Context* m_pContext; 305 CJBig2_Context* m_pContext;
307 CJBig2_Image* m_dest_image; 306 CJBig2_Image* m_dest_image;
308 }; 307 };
309 class CCodec_Jbig2Module : public ICodec_Jbig2Module { 308 class CCodec_Jbig2Module : public ICodec_Jbig2Module {
310 public: 309 public:
311 CCodec_Jbig2Module(){}; 310 CCodec_Jbig2Module(){};
312 ~CCodec_Jbig2Module(); 311 ~CCodec_Jbig2Module() override;
312
313 // ICodec_Jbig2Module
313 FX_BOOL Decode(FX_DWORD width, 314 FX_BOOL Decode(FX_DWORD width,
314 FX_DWORD height, 315 FX_DWORD height,
315 const uint8_t* src_buf, 316 const uint8_t* src_buf,
316 FX_DWORD src_size, 317 FX_DWORD src_size,
317 const uint8_t* global_data, 318 const uint8_t* global_data,
318 FX_DWORD global_size, 319 FX_DWORD global_size,
319 uint8_t* dest_buf, 320 uint8_t* dest_buf,
320 FX_DWORD dest_pitch); 321 FX_DWORD dest_pitch) override;
321 FX_BOOL Decode(IFX_FileRead* file_ptr, 322 FX_BOOL Decode(IFX_FileRead* file_ptr,
322 FX_DWORD& width, 323 FX_DWORD& width,
323 FX_DWORD& height, 324 FX_DWORD& height,
324 FX_DWORD& pitch, 325 FX_DWORD& pitch,
325 uint8_t*& dest_buf); 326 uint8_t*& dest_buf) override;
326 void* CreateJbig2Context(); 327 void* CreateJbig2Context() override;
327 FXCODEC_STATUS StartDecode(void* pJbig2Context, 328 FXCODEC_STATUS StartDecode(void* pJbig2Context,
328 FX_DWORD width, 329 FX_DWORD width,
329 FX_DWORD height, 330 FX_DWORD height,
330 const uint8_t* src_buf, 331 const uint8_t* src_buf,
331 FX_DWORD src_size, 332 FX_DWORD src_size,
332 const uint8_t* global_data, 333 const uint8_t* global_data,
333 FX_DWORD global_size, 334 FX_DWORD global_size,
334 uint8_t* dest_buf, 335 uint8_t* dest_buf,
335 FX_DWORD dest_pitch, 336 FX_DWORD dest_pitch,
336 IFX_Pause* pPause); 337 IFX_Pause* pPause) override;
337
338 FXCODEC_STATUS StartDecode(void* pJbig2Context, 338 FXCODEC_STATUS StartDecode(void* pJbig2Context,
339 IFX_FileRead* file_ptr, 339 IFX_FileRead* file_ptr,
340 FX_DWORD& width, 340 FX_DWORD& width,
341 FX_DWORD& height, 341 FX_DWORD& height,
342 FX_DWORD& pitch, 342 FX_DWORD& pitch,
343 uint8_t*& dest_buf, 343 uint8_t*& dest_buf,
344 IFX_Pause* pPause); 344 IFX_Pause* pPause) override;
345 FXCODEC_STATUS ContinueDecode(void* pJbig2Context, IFX_Pause* pPause); 345 FXCODEC_STATUS ContinueDecode(void* pJbig2Context,
346 void DestroyJbig2Context(void* pJbig2Context); 346 IFX_Pause* pPause) override;
347 void DestroyJbig2Context(void* pJbig2Context) override;
348
349 private:
347 CPDF_Jbig2Interface m_Module; 350 CPDF_Jbig2Interface m_Module;
348 std::list<CJBig2_CachePair> m_SymbolDictCache; 351 std::list<CJBig2_CachePair> m_SymbolDictCache;
349
350 private:
351 }; 352 };
352 353
353 struct DecodeData { 354 struct DecodeData {
354 public: 355 public:
355 DecodeData(unsigned char* src_data, OPJ_SIZE_T src_size) 356 DecodeData(unsigned char* src_data, OPJ_SIZE_T src_size)
356 : src_data(src_data), src_size(src_size), offset(0) {} 357 : src_data(src_data), src_size(src_size), offset(0) {}
357 unsigned char* src_data; 358 unsigned char* src_data;
358 OPJ_SIZE_T src_size; 359 OPJ_SIZE_T src_size;
359 OPJ_SIZE_T offset; 360 OPJ_SIZE_T offset;
360 }; 361 };
361 362
362 /* Wrappers for C-style callbacks. */ 363 /* Wrappers for C-style callbacks. */
363 OPJ_SIZE_T opj_read_from_memory(void* p_buffer, 364 OPJ_SIZE_T opj_read_from_memory(void* p_buffer,
364 OPJ_SIZE_T nb_bytes, 365 OPJ_SIZE_T nb_bytes,
365 void* p_user_data); 366 void* p_user_data);
366 OPJ_SIZE_T opj_write_from_memory(void* p_buffer, 367 OPJ_SIZE_T opj_write_from_memory(void* p_buffer,
367 OPJ_SIZE_T nb_bytes, 368 OPJ_SIZE_T nb_bytes,
368 void* p_user_data); 369 void* p_user_data);
369 OPJ_OFF_T opj_skip_from_memory(OPJ_OFF_T nb_bytes, void* p_user_data); 370 OPJ_OFF_T opj_skip_from_memory(OPJ_OFF_T nb_bytes, void* p_user_data);
370 OPJ_BOOL opj_seek_from_memory(OPJ_OFF_T nb_bytes, void* p_user_data); 371 OPJ_BOOL opj_seek_from_memory(OPJ_OFF_T nb_bytes, void* p_user_data);
371 372
372 #endif // CORE_SRC_FXCODEC_CODEC_CODEC_INT_H_ 373 #endif // CORE_SRC_FXCODEC_CODEC_CODEC_INT_H_
OLDNEW
« no previous file with comments | « core/src/fpdftext/text_int.h ('k') | core/src/fxcodec/codec/fx_codec.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698