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_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> |
| 11 |
11 #include <list> | 12 #include <list> |
12 #include <map> | 13 #include <map> |
| 14 #include <memory> |
13 | 15 |
14 #include "core/include/fxcodec/fx_codec.h" | 16 #include "core/include/fxcodec/fx_codec.h" |
15 #include "core/src/fxcodec/jbig2/JBig2_Context.h" | 17 #include "core/src/fxcodec/jbig2/JBig2_Context.h" |
16 #include "third_party/base/nonstd_unique_ptr.h" | |
17 #include "third_party/libopenjpeg20/openjpeg.h" // For OPJ_SIZE_T. | 18 #include "third_party/libopenjpeg20/openjpeg.h" // For OPJ_SIZE_T. |
18 | 19 |
19 class CFX_IccProfileCache; | 20 class CFX_IccProfileCache; |
20 class CFX_IccTransformCache; | 21 class CFX_IccTransformCache; |
21 class CPDF_ColorSpace; | 22 class CPDF_ColorSpace; |
22 | 23 |
23 class CCodec_BasicModule : public ICodec_BasicModule { | 24 class CCodec_BasicModule : public ICodec_BasicModule { |
24 public: | 25 public: |
25 // ICodec_BasicModule: | 26 // ICodec_BasicModule: |
26 FX_BOOL RunLengthEncode(const uint8_t* src_buf, | 27 FX_BOOL RunLengthEncode(const uint8_t* src_buf, |
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
71 return width == m_Width && height == m_Height; | 72 return width == m_Width && height == m_Height; |
72 } | 73 } |
73 | 74 |
74 private: | 75 private: |
75 bool IsValid() const { return m_Data.get() != nullptr; } | 76 bool IsValid() const { return m_Data.get() != nullptr; } |
76 | 77 |
77 const int m_Width; | 78 const int m_Width; |
78 const int m_Height; | 79 const int m_Height; |
79 const FX_DWORD m_Pitch; | 80 const FX_DWORD m_Pitch; |
80 int m_nCachedLines; | 81 int m_nCachedLines; |
81 nonstd::unique_ptr<uint8_t, FxFreeDeleter> m_Data; | 82 std::unique_ptr<uint8_t, FxFreeDeleter> m_Data; |
82 }; | 83 }; |
83 | 84 |
84 virtual FX_BOOL v_Rewind() = 0; | 85 virtual FX_BOOL v_Rewind() = 0; |
85 virtual uint8_t* v_GetNextLine() = 0; | 86 virtual uint8_t* v_GetNextLine() = 0; |
86 virtual void v_DownScale(int dest_width, int dest_height) = 0; | 87 virtual void v_DownScale(int dest_width, int dest_height) = 0; |
87 | 88 |
88 uint8_t* ReadNextLine(); | 89 uint8_t* ReadNextLine(); |
89 | 90 |
90 int m_OrigWidth; | 91 int m_OrigWidth; |
91 int m_OrigHeight; | 92 int m_OrigHeight; |
92 int m_DownScale; | 93 int m_DownScale; |
93 int m_OutputWidth; | 94 int m_OutputWidth; |
94 int m_OutputHeight; | 95 int m_OutputHeight; |
95 int m_nComps; | 96 int m_nComps; |
96 int m_bpc; | 97 int m_bpc; |
97 FX_DWORD m_Pitch; | 98 FX_DWORD m_Pitch; |
98 FX_BOOL m_bColorTransformed; | 99 FX_BOOL m_bColorTransformed; |
99 int m_NextLine; | 100 int m_NextLine; |
100 uint8_t* m_pLastScanline; | 101 uint8_t* m_pLastScanline; |
101 nonstd::unique_ptr<ImageDataCache> m_pDataCache; | 102 std::unique_ptr<ImageDataCache> m_pDataCache; |
102 }; | 103 }; |
103 | 104 |
104 class CCodec_FaxModule : public ICodec_FaxModule { | 105 class CCodec_FaxModule : public ICodec_FaxModule { |
105 public: | 106 public: |
106 // ICodec_FaxModule: | 107 // ICodec_FaxModule: |
107 ICodec_ScanlineDecoder* CreateDecoder(const uint8_t* src_buf, | 108 ICodec_ScanlineDecoder* CreateDecoder(const uint8_t* src_buf, |
108 FX_DWORD src_size, | 109 FX_DWORD src_size, |
109 int width, | 110 int width, |
110 int height, | 111 int height, |
111 int K, | 112 int K, |
(...skipping 305 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
417 OPJ_SIZE_T opj_read_from_memory(void* p_buffer, | 418 OPJ_SIZE_T opj_read_from_memory(void* p_buffer, |
418 OPJ_SIZE_T nb_bytes, | 419 OPJ_SIZE_T nb_bytes, |
419 void* p_user_data); | 420 void* p_user_data); |
420 OPJ_SIZE_T opj_write_from_memory(void* p_buffer, | 421 OPJ_SIZE_T opj_write_from_memory(void* p_buffer, |
421 OPJ_SIZE_T nb_bytes, | 422 OPJ_SIZE_T nb_bytes, |
422 void* p_user_data); | 423 void* p_user_data); |
423 OPJ_OFF_T opj_skip_from_memory(OPJ_OFF_T nb_bytes, void* p_user_data); | 424 OPJ_OFF_T opj_skip_from_memory(OPJ_OFF_T nb_bytes, void* p_user_data); |
424 OPJ_BOOL opj_seek_from_memory(OPJ_OFF_T nb_bytes, void* p_user_data); | 425 OPJ_BOOL opj_seek_from_memory(OPJ_OFF_T nb_bytes, void* p_user_data); |
425 | 426 |
426 #endif // CORE_SRC_FXCODEC_CODEC_CODEC_INT_H_ | 427 #endif // CORE_SRC_FXCODEC_CODEC_CODEC_INT_H_ |
OLD | NEW |