| 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_INCLUDE_FXCODEC_FX_CODEC_H_ | 7 #ifndef CORE_INCLUDE_FXCODEC_FX_CODEC_H_ |
| 8 #define CORE_INCLUDE_FXCODEC_FX_CODEC_H_ | 8 #define CORE_INCLUDE_FXCODEC_FX_CODEC_H_ |
| 9 | 9 |
| 10 #include <map> | 10 #include <map> |
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 44 ~CFX_DIBAttribute(); | 44 ~CFX_DIBAttribute(); |
| 45 | 45 |
| 46 int32_t m_nXDPI; | 46 int32_t m_nXDPI; |
| 47 int32_t m_nYDPI; | 47 int32_t m_nYDPI; |
| 48 FX_FLOAT m_fAspectRatio; | 48 FX_FLOAT m_fAspectRatio; |
| 49 uint16_t m_wDPIUnit; | 49 uint16_t m_wDPIUnit; |
| 50 CFX_ByteString m_strAuthor; | 50 CFX_ByteString m_strAuthor; |
| 51 uint8_t m_strTime[20]; | 51 uint8_t m_strTime[20]; |
| 52 int32_t m_nGifLeft; | 52 int32_t m_nGifLeft; |
| 53 int32_t m_nGifTop; | 53 int32_t m_nGifTop; |
| 54 FX_DWORD* m_pGifLocalPalette; | 54 uint32_t* m_pGifLocalPalette; |
| 55 FX_DWORD m_nGifLocalPalNum; | 55 uint32_t m_nGifLocalPalNum; |
| 56 int32_t m_nBmpCompressType; | 56 int32_t m_nBmpCompressType; |
| 57 std::map<FX_DWORD, void*> m_Exif; | 57 std::map<uint32_t, void*> m_Exif; |
| 58 }; | 58 }; |
| 59 #endif // PDF_ENABLE_XFA | 59 #endif // PDF_ENABLE_XFA |
| 60 | 60 |
| 61 class CCodec_ModuleMgr { | 61 class CCodec_ModuleMgr { |
| 62 public: | 62 public: |
| 63 CCodec_ModuleMgr(); | 63 CCodec_ModuleMgr(); |
| 64 | 64 |
| 65 ICodec_BasicModule* GetBasicModule() const { return m_pBasicModule.get(); } | 65 ICodec_BasicModule* GetBasicModule() const { return m_pBasicModule.get(); } |
| 66 ICodec_FaxModule* GetFaxModule() const { return m_pFaxModule.get(); } | 66 ICodec_FaxModule* GetFaxModule() const { return m_pFaxModule.get(); } |
| 67 ICodec_JpegModule* GetJpegModule() const { return m_pJpegModule.get(); } | 67 ICodec_JpegModule* GetJpegModule() const { return m_pJpegModule.get(); } |
| (...skipping 22 matching lines...) Expand all Loading... |
| 90 std::unique_ptr<ICodec_GifModule> m_pGifModule; | 90 std::unique_ptr<ICodec_GifModule> m_pGifModule; |
| 91 std::unique_ptr<ICodec_BmpModule> m_pBmpModule; | 91 std::unique_ptr<ICodec_BmpModule> m_pBmpModule; |
| 92 std::unique_ptr<ICodec_TiffModule> m_pTiffModule; | 92 std::unique_ptr<ICodec_TiffModule> m_pTiffModule; |
| 93 #endif // PDF_ENABLE_XFA | 93 #endif // PDF_ENABLE_XFA |
| 94 std::unique_ptr<ICodec_FlateModule> m_pFlateModule; | 94 std::unique_ptr<ICodec_FlateModule> m_pFlateModule; |
| 95 }; | 95 }; |
| 96 class ICodec_BasicModule { | 96 class ICodec_BasicModule { |
| 97 public: | 97 public: |
| 98 virtual ~ICodec_BasicModule() {} | 98 virtual ~ICodec_BasicModule() {} |
| 99 virtual FX_BOOL RunLengthEncode(const uint8_t* src_buf, | 99 virtual FX_BOOL RunLengthEncode(const uint8_t* src_buf, |
| 100 FX_DWORD src_size, | 100 uint32_t src_size, |
| 101 uint8_t*& dest_buf, | 101 uint8_t*& dest_buf, |
| 102 FX_DWORD& dest_size) = 0; | 102 uint32_t& dest_size) = 0; |
| 103 virtual FX_BOOL A85Encode(const uint8_t* src_buf, | 103 virtual FX_BOOL A85Encode(const uint8_t* src_buf, |
| 104 FX_DWORD src_size, | 104 uint32_t src_size, |
| 105 uint8_t*& dest_buf, | 105 uint8_t*& dest_buf, |
| 106 FX_DWORD& dest_size) = 0; | 106 uint32_t& dest_size) = 0; |
| 107 virtual ICodec_ScanlineDecoder* CreateRunLengthDecoder(const uint8_t* src_buf, | 107 virtual ICodec_ScanlineDecoder* CreateRunLengthDecoder(const uint8_t* src_buf, |
| 108 FX_DWORD src_size, | 108 uint32_t src_size, |
| 109 int width, | 109 int width, |
| 110 int height, | 110 int height, |
| 111 int nComps, | 111 int nComps, |
| 112 int bpc) = 0; | 112 int bpc) = 0; |
| 113 }; | 113 }; |
| 114 | 114 |
| 115 class ICodec_ScanlineDecoder { | 115 class ICodec_ScanlineDecoder { |
| 116 public: | 116 public: |
| 117 virtual ~ICodec_ScanlineDecoder() {} | 117 virtual ~ICodec_ScanlineDecoder() {} |
| 118 | 118 |
| 119 virtual FX_DWORD GetSrcOffset() = 0; | 119 virtual uint32_t GetSrcOffset() = 0; |
| 120 | 120 |
| 121 virtual void DownScale(int dest_width, int dest_height) = 0; | 121 virtual void DownScale(int dest_width, int dest_height) = 0; |
| 122 | 122 |
| 123 virtual const uint8_t* GetScanline(int line) = 0; | 123 virtual const uint8_t* GetScanline(int line) = 0; |
| 124 | 124 |
| 125 virtual FX_BOOL SkipToScanline(int line, IFX_Pause* pPause) = 0; | 125 virtual FX_BOOL SkipToScanline(int line, IFX_Pause* pPause) = 0; |
| 126 | 126 |
| 127 virtual int GetWidth() = 0; | 127 virtual int GetWidth() = 0; |
| 128 | 128 |
| 129 virtual int GetHeight() = 0; | 129 virtual int GetHeight() = 0; |
| 130 | 130 |
| 131 virtual int CountComps() = 0; | 131 virtual int CountComps() = 0; |
| 132 | 132 |
| 133 virtual int GetBPC() = 0; | 133 virtual int GetBPC() = 0; |
| 134 | 134 |
| 135 virtual FX_BOOL IsColorTransformed() = 0; | 135 virtual FX_BOOL IsColorTransformed() = 0; |
| 136 | 136 |
| 137 virtual void ClearImageData() = 0; | 137 virtual void ClearImageData() = 0; |
| 138 }; | 138 }; |
| 139 | 139 |
| 140 class ICodec_FlateModule { | 140 class ICodec_FlateModule { |
| 141 public: | 141 public: |
| 142 virtual ~ICodec_FlateModule() {} | 142 virtual ~ICodec_FlateModule() {} |
| 143 virtual ICodec_ScanlineDecoder* CreateDecoder(const uint8_t* src_buf, | 143 virtual ICodec_ScanlineDecoder* CreateDecoder(const uint8_t* src_buf, |
| 144 FX_DWORD src_size, | 144 uint32_t src_size, |
| 145 int width, | 145 int width, |
| 146 int height, | 146 int height, |
| 147 int nComps, | 147 int nComps, |
| 148 int bpc, | 148 int bpc, |
| 149 int predictor, | 149 int predictor, |
| 150 int Colors, | 150 int Colors, |
| 151 int BitsPerComponent, | 151 int BitsPerComponent, |
| 152 int Columns) = 0; | 152 int Columns) = 0; |
| 153 virtual FX_DWORD FlateOrLZWDecode(FX_BOOL bLZW, | 153 virtual uint32_t FlateOrLZWDecode(FX_BOOL bLZW, |
| 154 const uint8_t* src_buf, | 154 const uint8_t* src_buf, |
| 155 FX_DWORD src_size, | 155 uint32_t src_size, |
| 156 FX_BOOL bEarlyChange, | 156 FX_BOOL bEarlyChange, |
| 157 int predictor, | 157 int predictor, |
| 158 int Colors, | 158 int Colors, |
| 159 int BitsPerComponent, | 159 int BitsPerComponent, |
| 160 int Columns, | 160 int Columns, |
| 161 FX_DWORD estimated_size, | 161 uint32_t estimated_size, |
| 162 uint8_t*& dest_buf, | 162 uint8_t*& dest_buf, |
| 163 FX_DWORD& dest_size) = 0; | 163 uint32_t& dest_size) = 0; |
| 164 virtual FX_BOOL Encode(const uint8_t* src_buf, | 164 virtual FX_BOOL Encode(const uint8_t* src_buf, |
| 165 FX_DWORD src_size, | 165 uint32_t src_size, |
| 166 int predictor, | 166 int predictor, |
| 167 int Colors, | 167 int Colors, |
| 168 int BitsPerComponent, | 168 int BitsPerComponent, |
| 169 int Columns, | 169 int Columns, |
| 170 uint8_t*& dest_buf, | 170 uint8_t*& dest_buf, |
| 171 FX_DWORD& dest_size) = 0; | 171 uint32_t& dest_size) = 0; |
| 172 virtual FX_BOOL Encode(const uint8_t* src_buf, | 172 virtual FX_BOOL Encode(const uint8_t* src_buf, |
| 173 FX_DWORD src_size, | 173 uint32_t src_size, |
| 174 uint8_t*& dest_buf, | 174 uint8_t*& dest_buf, |
| 175 FX_DWORD& dest_size) = 0; | 175 uint32_t& dest_size) = 0; |
| 176 }; | 176 }; |
| 177 class ICodec_FaxModule { | 177 class ICodec_FaxModule { |
| 178 public: | 178 public: |
| 179 virtual ~ICodec_FaxModule() {} | 179 virtual ~ICodec_FaxModule() {} |
| 180 | 180 |
| 181 virtual ICodec_ScanlineDecoder* CreateDecoder(const uint8_t* src_buf, | 181 virtual ICodec_ScanlineDecoder* CreateDecoder(const uint8_t* src_buf, |
| 182 FX_DWORD src_size, | 182 uint32_t src_size, |
| 183 int width, | 183 int width, |
| 184 int height, | 184 int height, |
| 185 int K, | 185 int K, |
| 186 FX_BOOL EndOfLine, | 186 FX_BOOL EndOfLine, |
| 187 FX_BOOL EncodedByteAlign, | 187 FX_BOOL EncodedByteAlign, |
| 188 FX_BOOL BlackIs1, | 188 FX_BOOL BlackIs1, |
| 189 int Columns, | 189 int Columns, |
| 190 int Rows) = 0; | 190 int Rows) = 0; |
| 191 | 191 |
| 192 virtual FX_BOOL Encode(const uint8_t* src_buf, | 192 virtual FX_BOOL Encode(const uint8_t* src_buf, |
| 193 int width, | 193 int width, |
| 194 int height, | 194 int height, |
| 195 int pitch, | 195 int pitch, |
| 196 uint8_t*& dest_buf, | 196 uint8_t*& dest_buf, |
| 197 FX_DWORD& dest_size) = 0; | 197 uint32_t& dest_size) = 0; |
| 198 }; | 198 }; |
| 199 class ICodec_JpegModule { | 199 class ICodec_JpegModule { |
| 200 public: | 200 public: |
| 201 virtual ~ICodec_JpegModule() {} | 201 virtual ~ICodec_JpegModule() {} |
| 202 | 202 |
| 203 virtual ICodec_ScanlineDecoder* CreateDecoder(const uint8_t* src_buf, | 203 virtual ICodec_ScanlineDecoder* CreateDecoder(const uint8_t* src_buf, |
| 204 FX_DWORD src_size, | 204 uint32_t src_size, |
| 205 int width, | 205 int width, |
| 206 int height, | 206 int height, |
| 207 int nComps, | 207 int nComps, |
| 208 FX_BOOL ColorTransform) = 0; | 208 FX_BOOL ColorTransform) = 0; |
| 209 | 209 |
| 210 virtual FX_BOOL LoadInfo(const uint8_t* src_buf, | 210 virtual FX_BOOL LoadInfo(const uint8_t* src_buf, |
| 211 FX_DWORD src_size, | 211 uint32_t src_size, |
| 212 int& width, | 212 int& width, |
| 213 int& height, | 213 int& height, |
| 214 int& num_components, | 214 int& num_components, |
| 215 int& bits_per_components, | 215 int& bits_per_components, |
| 216 FX_BOOL& color_transform, | 216 FX_BOOL& color_transform, |
| 217 uint8_t** icc_buf_ptr = NULL, | 217 uint8_t** icc_buf_ptr = NULL, |
| 218 FX_DWORD* icc_length = NULL) = 0; | 218 uint32_t* icc_length = NULL) = 0; |
| 219 | 219 |
| 220 virtual FX_BOOL Encode(const class CFX_DIBSource* pSource, | 220 virtual FX_BOOL Encode(const class CFX_DIBSource* pSource, |
| 221 uint8_t*& dest_buf, | 221 uint8_t*& dest_buf, |
| 222 FX_STRSIZE& dest_size, | 222 FX_STRSIZE& dest_size, |
| 223 int quality = 75, | 223 int quality = 75, |
| 224 const uint8_t* icc_buf = NULL, | 224 const uint8_t* icc_buf = NULL, |
| 225 FX_DWORD icc_length = 0) = 0; | 225 uint32_t icc_length = 0) = 0; |
| 226 | 226 |
| 227 virtual void* Start() = 0; | 227 virtual void* Start() = 0; |
| 228 | 228 |
| 229 virtual void Finish(void* pContext) = 0; | 229 virtual void Finish(void* pContext) = 0; |
| 230 | 230 |
| 231 virtual void Input(void* pContext, | 231 virtual void Input(void* pContext, |
| 232 const uint8_t* src_buf, | 232 const uint8_t* src_buf, |
| 233 FX_DWORD src_size) = 0; | 233 uint32_t src_size) = 0; |
| 234 | 234 |
| 235 #ifdef PDF_ENABLE_XFA | 235 #ifdef PDF_ENABLE_XFA |
| 236 virtual int ReadHeader(void* pContext, | 236 virtual int ReadHeader(void* pContext, |
| 237 int* width, | 237 int* width, |
| 238 int* height, | 238 int* height, |
| 239 int* nComps, | 239 int* nComps, |
| 240 CFX_DIBAttribute* pAttribute) = 0; | 240 CFX_DIBAttribute* pAttribute) = 0; |
| 241 #else // PDF_ENABLE_XFA | 241 #else // PDF_ENABLE_XFA |
| 242 virtual int ReadHeader(void* pContext, | 242 virtual int ReadHeader(void* pContext, |
| 243 int* width, | 243 int* width, |
| 244 int* height, | 244 int* height, |
| 245 int* nComps) = 0; | 245 int* nComps) = 0; |
| 246 #endif // PDF_ENABLE_XFA | 246 #endif // PDF_ENABLE_XFA |
| 247 | 247 |
| 248 virtual int StartScanline(void* pContext, int down_scale) = 0; | 248 virtual int StartScanline(void* pContext, int down_scale) = 0; |
| 249 | 249 |
| 250 virtual FX_BOOL ReadScanline(void* pContext, uint8_t* dest_buf) = 0; | 250 virtual FX_BOOL ReadScanline(void* pContext, uint8_t* dest_buf) = 0; |
| 251 | 251 |
| 252 virtual FX_DWORD GetAvailInput(void* pContext, | 252 virtual uint32_t GetAvailInput(void* pContext, |
| 253 uint8_t** avail_buf_ptr = NULL) = 0; | 253 uint8_t** avail_buf_ptr = NULL) = 0; |
| 254 }; | 254 }; |
| 255 | 255 |
| 256 class ICodec_JpxModule { | 256 class ICodec_JpxModule { |
| 257 public: | 257 public: |
| 258 virtual ~ICodec_JpxModule() {} | 258 virtual ~ICodec_JpxModule() {} |
| 259 | 259 |
| 260 virtual CJPX_Decoder* CreateDecoder(const uint8_t* src_buf, | 260 virtual CJPX_Decoder* CreateDecoder(const uint8_t* src_buf, |
| 261 FX_DWORD src_size, | 261 uint32_t src_size, |
| 262 CPDF_ColorSpace* cs) = 0; | 262 CPDF_ColorSpace* cs) = 0; |
| 263 | 263 |
| 264 virtual void GetImageInfo(CJPX_Decoder* pDecoder, | 264 virtual void GetImageInfo(CJPX_Decoder* pDecoder, |
| 265 FX_DWORD* width, | 265 uint32_t* width, |
| 266 FX_DWORD* height, | 266 uint32_t* height, |
| 267 FX_DWORD* components) = 0; | 267 uint32_t* components) = 0; |
| 268 | 268 |
| 269 virtual bool Decode(CJPX_Decoder* pDecoder, | 269 virtual bool Decode(CJPX_Decoder* pDecoder, |
| 270 uint8_t* dest_data, | 270 uint8_t* dest_data, |
| 271 int pitch, | 271 int pitch, |
| 272 const std::vector<uint8_t>& offsets) = 0; | 272 const std::vector<uint8_t>& offsets) = 0; |
| 273 | 273 |
| 274 virtual void DestroyDecoder(CJPX_Decoder* pDecoder) = 0; | 274 virtual void DestroyDecoder(CJPX_Decoder* pDecoder) = 0; |
| 275 }; | 275 }; |
| 276 #ifdef PDF_ENABLE_XFA | 276 #ifdef PDF_ENABLE_XFA |
| 277 class ICodec_PngModule { | 277 class ICodec_PngModule { |
| 278 public: | 278 public: |
| 279 virtual ~ICodec_PngModule() {} | 279 virtual ~ICodec_PngModule() {} |
| 280 | 280 |
| 281 virtual void* Start(void* pModule) = 0; | 281 virtual void* Start(void* pModule) = 0; |
| 282 | 282 |
| 283 virtual void Finish(void* pContext) = 0; | 283 virtual void Finish(void* pContext) = 0; |
| 284 | 284 |
| 285 virtual FX_BOOL Input(void* pContext, | 285 virtual FX_BOOL Input(void* pContext, |
| 286 const uint8_t* src_buf, | 286 const uint8_t* src_buf, |
| 287 FX_DWORD src_size, | 287 uint32_t src_size, |
| 288 CFX_DIBAttribute* pAttribute) = 0; | 288 CFX_DIBAttribute* pAttribute) = 0; |
| 289 | 289 |
| 290 FX_BOOL (*ReadHeaderCallback)(void* pModule, | 290 FX_BOOL (*ReadHeaderCallback)(void* pModule, |
| 291 int width, | 291 int width, |
| 292 int height, | 292 int height, |
| 293 int bpc, | 293 int bpc, |
| 294 int pass, | 294 int pass, |
| 295 int* color_type, | 295 int* color_type, |
| 296 double* gamma); | 296 double* gamma); |
| 297 | 297 |
| 298 FX_BOOL (*AskScanlineBufCallback)(void* pModule, int line, uint8_t*& src_buf); | 298 FX_BOOL (*AskScanlineBufCallback)(void* pModule, int line, uint8_t*& src_buf); |
| 299 | 299 |
| 300 void (*FillScanlineBufCompletedCallback)(void* pModule, int pass, int line); | 300 void (*FillScanlineBufCompletedCallback)(void* pModule, int pass, int line); |
| 301 }; | 301 }; |
| 302 class ICodec_GifModule { | 302 class ICodec_GifModule { |
| 303 public: | 303 public: |
| 304 virtual ~ICodec_GifModule() {} | 304 virtual ~ICodec_GifModule() {} |
| 305 | 305 |
| 306 virtual void* Start(void* pModule) = 0; | 306 virtual void* Start(void* pModule) = 0; |
| 307 | 307 |
| 308 virtual void Finish(void* pContext) = 0; | 308 virtual void Finish(void* pContext) = 0; |
| 309 | 309 |
| 310 virtual FX_DWORD GetAvailInput(void* pContext, | 310 virtual uint32_t GetAvailInput(void* pContext, |
| 311 uint8_t** avail_buf_ptr = NULL) = 0; | 311 uint8_t** avail_buf_ptr = NULL) = 0; |
| 312 | 312 |
| 313 virtual void Input(void* pContext, | 313 virtual void Input(void* pContext, |
| 314 const uint8_t* src_buf, | 314 const uint8_t* src_buf, |
| 315 FX_DWORD src_size) = 0; | 315 uint32_t src_size) = 0; |
| 316 | 316 |
| 317 virtual int32_t ReadHeader(void* pContext, | 317 virtual int32_t ReadHeader(void* pContext, |
| 318 int* width, | 318 int* width, |
| 319 int* height, | 319 int* height, |
| 320 int* pal_num, | 320 int* pal_num, |
| 321 void** pal_pp, | 321 void** pal_pp, |
| 322 int* bg_index, | 322 int* bg_index, |
| 323 CFX_DIBAttribute* pAttribute) = 0; | 323 CFX_DIBAttribute* pAttribute) = 0; |
| 324 | 324 |
| 325 virtual int32_t LoadFrameInfo(void* pContext, int* frame_num) = 0; | 325 virtual int32_t LoadFrameInfo(void* pContext, int* frame_num) = 0; |
| 326 | 326 |
| 327 void (*RecordCurrentPositionCallback)(void* pModule, FX_DWORD& cur_pos); | 327 void (*RecordCurrentPositionCallback)(void* pModule, uint32_t& cur_pos); |
| 328 | 328 |
| 329 uint8_t* (*AskLocalPaletteBufCallback)(void* pModule, | 329 uint8_t* (*AskLocalPaletteBufCallback)(void* pModule, |
| 330 int32_t frame_num, | 330 int32_t frame_num, |
| 331 int32_t pal_size); | 331 int32_t pal_size); |
| 332 | 332 |
| 333 virtual int32_t LoadFrame(void* pContext, | 333 virtual int32_t LoadFrame(void* pContext, |
| 334 int frame_num, | 334 int frame_num, |
| 335 CFX_DIBAttribute* pAttribute) = 0; | 335 CFX_DIBAttribute* pAttribute) = 0; |
| 336 | 336 |
| 337 FX_BOOL (*InputRecordPositionBufCallback)(void* pModule, | 337 FX_BOOL (*InputRecordPositionBufCallback)(void* pModule, |
| 338 FX_DWORD rcd_pos, | 338 uint32_t rcd_pos, |
| 339 const FX_RECT& img_rc, | 339 const FX_RECT& img_rc, |
| 340 int32_t pal_num, | 340 int32_t pal_num, |
| 341 void* pal_ptr, | 341 void* pal_ptr, |
| 342 int32_t delay_time, | 342 int32_t delay_time, |
| 343 FX_BOOL user_input, | 343 FX_BOOL user_input, |
| 344 int32_t trans_index, | 344 int32_t trans_index, |
| 345 int32_t disposal_method, | 345 int32_t disposal_method, |
| 346 FX_BOOL interlace); | 346 FX_BOOL interlace); |
| 347 | 347 |
| 348 void (*ReadScanlineCallback)(void* pModule, | 348 void (*ReadScanlineCallback)(void* pModule, |
| 349 int32_t row_num, | 349 int32_t row_num, |
| 350 uint8_t* row_buf); | 350 uint8_t* row_buf); |
| 351 }; | 351 }; |
| 352 class ICodec_BmpModule { | 352 class ICodec_BmpModule { |
| 353 public: | 353 public: |
| 354 virtual ~ICodec_BmpModule() {} | 354 virtual ~ICodec_BmpModule() {} |
| 355 | 355 |
| 356 virtual void* Start(void* pModule) = 0; | 356 virtual void* Start(void* pModule) = 0; |
| 357 | 357 |
| 358 virtual void Finish(void* pContext) = 0; | 358 virtual void Finish(void* pContext) = 0; |
| 359 | 359 |
| 360 virtual FX_DWORD GetAvailInput(void* pContext, | 360 virtual uint32_t GetAvailInput(void* pContext, |
| 361 uint8_t** avail_buf_ptr = NULL) = 0; | 361 uint8_t** avail_buf_ptr = NULL) = 0; |
| 362 | 362 |
| 363 virtual void Input(void* pContext, | 363 virtual void Input(void* pContext, |
| 364 const uint8_t* src_buf, | 364 const uint8_t* src_buf, |
| 365 FX_DWORD src_size) = 0; | 365 uint32_t src_size) = 0; |
| 366 | 366 |
| 367 virtual int32_t ReadHeader(void* pContext, | 367 virtual int32_t ReadHeader(void* pContext, |
| 368 int32_t* width, | 368 int32_t* width, |
| 369 int32_t* height, | 369 int32_t* height, |
| 370 FX_BOOL* tb_flag, | 370 FX_BOOL* tb_flag, |
| 371 int32_t* components, | 371 int32_t* components, |
| 372 int* pal_num, | 372 int* pal_num, |
| 373 FX_DWORD** pal_pp, | 373 uint32_t** pal_pp, |
| 374 CFX_DIBAttribute* pAttribute) = 0; | 374 CFX_DIBAttribute* pAttribute) = 0; |
| 375 | 375 |
| 376 virtual int32_t LoadImage(void* pContext) = 0; | 376 virtual int32_t LoadImage(void* pContext) = 0; |
| 377 | 377 |
| 378 FX_BOOL (*InputImagePositionBufCallback)(void* pModule, FX_DWORD rcd_pos); | 378 FX_BOOL (*InputImagePositionBufCallback)(void* pModule, uint32_t rcd_pos); |
| 379 | 379 |
| 380 void (*ReadScanlineCallback)(void* pModule, | 380 void (*ReadScanlineCallback)(void* pModule, |
| 381 int32_t row_num, | 381 int32_t row_num, |
| 382 uint8_t* row_buf); | 382 uint8_t* row_buf); |
| 383 }; | 383 }; |
| 384 class ICodec_TiffModule { | 384 class ICodec_TiffModule { |
| 385 public: | 385 public: |
| 386 virtual ~ICodec_TiffModule() {} | 386 virtual ~ICodec_TiffModule() {} |
| 387 | 387 |
| 388 virtual void* CreateDecoder(IFX_FileRead* file_ptr) = 0; | 388 virtual void* CreateDecoder(IFX_FileRead* file_ptr) = 0; |
| 389 | 389 |
| 390 virtual void GetFrames(void* ctx, int32_t& frames) = 0; | 390 virtual void GetFrames(void* ctx, int32_t& frames) = 0; |
| 391 | 391 |
| 392 virtual FX_BOOL LoadFrameInfo(void* ctx, | 392 virtual FX_BOOL LoadFrameInfo(void* ctx, |
| 393 int32_t frame, | 393 int32_t frame, |
| 394 FX_DWORD& width, | 394 uint32_t& width, |
| 395 FX_DWORD& height, | 395 uint32_t& height, |
| 396 FX_DWORD& comps, | 396 uint32_t& comps, |
| 397 FX_DWORD& bpc, | 397 uint32_t& bpc, |
| 398 CFX_DIBAttribute* pAttribute) = 0; | 398 CFX_DIBAttribute* pAttribute) = 0; |
| 399 | 399 |
| 400 virtual FX_BOOL Decode(void* ctx, class CFX_DIBitmap* pDIBitmap) = 0; | 400 virtual FX_BOOL Decode(void* ctx, class CFX_DIBitmap* pDIBitmap) = 0; |
| 401 | 401 |
| 402 virtual void DestroyDecoder(void* ctx) = 0; | 402 virtual void DestroyDecoder(void* ctx) = 0; |
| 403 }; | 403 }; |
| 404 #endif | 404 #endif |
| 405 | 405 |
| 406 class ICodec_Jbig2Module { | 406 class ICodec_Jbig2Module { |
| 407 public: | 407 public: |
| 408 virtual ~ICodec_Jbig2Module() {} | 408 virtual ~ICodec_Jbig2Module() {} |
| 409 | 409 |
| 410 virtual void* CreateJbig2Context() = 0; | 410 virtual void* CreateJbig2Context() = 0; |
| 411 | 411 |
| 412 virtual FXCODEC_STATUS StartDecode(void* pJbig2Context, | 412 virtual FXCODEC_STATUS StartDecode(void* pJbig2Context, |
| 413 CFX_PrivateData* pPrivateData, | 413 CFX_PrivateData* pPrivateData, |
| 414 FX_DWORD width, | 414 uint32_t width, |
| 415 FX_DWORD height, | 415 uint32_t height, |
| 416 CPDF_StreamAcc* src_stream, | 416 CPDF_StreamAcc* src_stream, |
| 417 CPDF_StreamAcc* global_stream, | 417 CPDF_StreamAcc* global_stream, |
| 418 uint8_t* dest_buf, | 418 uint8_t* dest_buf, |
| 419 FX_DWORD dest_pitch, | 419 uint32_t dest_pitch, |
| 420 IFX_Pause* pPause) = 0; | 420 IFX_Pause* pPause) = 0; |
| 421 | 421 |
| 422 virtual FXCODEC_STATUS ContinueDecode(void* pJbig2Content, | 422 virtual FXCODEC_STATUS ContinueDecode(void* pJbig2Content, |
| 423 IFX_Pause* pPause) = 0; | 423 IFX_Pause* pPause) = 0; |
| 424 virtual void DestroyJbig2Context(void* pJbig2Content) = 0; | 424 virtual void DestroyJbig2Context(void* pJbig2Content) = 0; |
| 425 }; | 425 }; |
| 426 #ifdef PDF_ENABLE_XFA | 426 #ifdef PDF_ENABLE_XFA |
| 427 class ICodec_ProgressiveDecoder { | 427 class ICodec_ProgressiveDecoder { |
| 428 public: | 428 public: |
| 429 virtual ~ICodec_ProgressiveDecoder() {} | 429 virtual ~ICodec_ProgressiveDecoder() {} |
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 470 IccCS_Yxy, | 470 IccCS_Yxy, |
| 471 IccCS_Hsv, | 471 IccCS_Hsv, |
| 472 IccCS_Hls, | 472 IccCS_Hls, |
| 473 IccCS_Gray, | 473 IccCS_Gray, |
| 474 IccCS_Rgb, | 474 IccCS_Rgb, |
| 475 IccCS_Cmyk, | 475 IccCS_Cmyk, |
| 476 IccCS_Cmy | 476 IccCS_Cmy |
| 477 }; | 477 }; |
| 478 | 478 |
| 479 struct IccParam { | 479 struct IccParam { |
| 480 FX_DWORD Version; | 480 uint32_t Version; |
| 481 IccCS ColorSpace; | 481 IccCS ColorSpace; |
| 482 FX_DWORD dwProfileType; | 482 uint32_t dwProfileType; |
| 483 FX_DWORD dwFormat; | 483 uint32_t dwFormat; |
| 484 uint8_t* pProfileData; | 484 uint8_t* pProfileData; |
| 485 FX_DWORD dwProfileSize; | 485 uint32_t dwProfileSize; |
| 486 double Gamma; | 486 double Gamma; |
| 487 }; | 487 }; |
| 488 | 488 |
| 489 virtual ~ICodec_IccModule() {} | 489 virtual ~ICodec_IccModule() {} |
| 490 | 490 |
| 491 virtual IccCS GetProfileCS(const uint8_t* pProfileData, | 491 virtual IccCS GetProfileCS(const uint8_t* pProfileData, |
| 492 unsigned int dwProfileSize) = 0; | 492 unsigned int dwProfileSize) = 0; |
| 493 | 493 |
| 494 virtual IccCS GetProfileCS(IFX_FileRead* pFile) = 0; | 494 virtual IccCS GetProfileCS(IFX_FileRead* pFile) = 0; |
| 495 | 495 |
| 496 virtual void* CreateTransform( | 496 virtual void* CreateTransform( |
| 497 ICodec_IccModule::IccParam* pInputParam, | 497 ICodec_IccModule::IccParam* pInputParam, |
| 498 ICodec_IccModule::IccParam* pOutputParam, | 498 ICodec_IccModule::IccParam* pOutputParam, |
| 499 ICodec_IccModule::IccParam* pProofParam = NULL, | 499 ICodec_IccModule::IccParam* pProofParam = NULL, |
| 500 FX_DWORD dwIntent = Icc_INTENT_PERCEPTUAL, | 500 uint32_t dwIntent = Icc_INTENT_PERCEPTUAL, |
| 501 FX_DWORD dwFlag = Icc_FLAGS_DEFAULT, | 501 uint32_t dwFlag = Icc_FLAGS_DEFAULT, |
| 502 FX_DWORD dwPrfIntent = Icc_INTENT_ABSOLUTE_COLORIMETRIC, | 502 uint32_t dwPrfIntent = Icc_INTENT_ABSOLUTE_COLORIMETRIC, |
| 503 FX_DWORD dwPrfFlag = Icc_FLAGS_SOFTPROOFING) = 0; | 503 uint32_t dwPrfFlag = Icc_FLAGS_SOFTPROOFING) = 0; |
| 504 | 504 |
| 505 virtual void* CreateTransform_sRGB( | 505 virtual void* CreateTransform_sRGB( |
| 506 const uint8_t* pProfileData, | 506 const uint8_t* pProfileData, |
| 507 FX_DWORD dwProfileSize, | 507 uint32_t dwProfileSize, |
| 508 FX_DWORD& nComponents, | 508 uint32_t& nComponents, |
| 509 int32_t intent = 0, | 509 int32_t intent = 0, |
| 510 FX_DWORD dwSrcFormat = Icc_FORMAT_DEFAULT) = 0; | 510 uint32_t dwSrcFormat = Icc_FORMAT_DEFAULT) = 0; |
| 511 | 511 |
| 512 virtual void* CreateTransform_CMYK( | 512 virtual void* CreateTransform_CMYK( |
| 513 const uint8_t* pSrcProfileData, | 513 const uint8_t* pSrcProfileData, |
| 514 FX_DWORD dwSrcProfileSize, | 514 uint32_t dwSrcProfileSize, |
| 515 FX_DWORD& nSrcComponents, | 515 uint32_t& nSrcComponents, |
| 516 const uint8_t* pDstProfileData, | 516 const uint8_t* pDstProfileData, |
| 517 FX_DWORD dwDstProfileSize, | 517 uint32_t dwDstProfileSize, |
| 518 int32_t intent = 0, | 518 int32_t intent = 0, |
| 519 FX_DWORD dwSrcFormat = Icc_FORMAT_DEFAULT, | 519 uint32_t dwSrcFormat = Icc_FORMAT_DEFAULT, |
| 520 FX_DWORD dwDstFormat = Icc_FORMAT_DEFAULT) = 0; | 520 uint32_t dwDstFormat = Icc_FORMAT_DEFAULT) = 0; |
| 521 | 521 |
| 522 virtual void DestroyTransform(void* pTransform) = 0; | 522 virtual void DestroyTransform(void* pTransform) = 0; |
| 523 | 523 |
| 524 virtual void Translate(void* pTransform, | 524 virtual void Translate(void* pTransform, |
| 525 FX_FLOAT* pSrcValues, | 525 FX_FLOAT* pSrcValues, |
| 526 FX_FLOAT* pDestValues) = 0; | 526 FX_FLOAT* pDestValues) = 0; |
| 527 | 527 |
| 528 virtual void TranslateScanline(void* pTransform, | 528 virtual void TranslateScanline(void* pTransform, |
| 529 uint8_t* pDest, | 529 uint8_t* pDest, |
| 530 const uint8_t* pSrc, | 530 const uint8_t* pSrc, |
| 531 int pixels) = 0; | 531 int pixels) = 0; |
| 532 virtual void SetComponents(FX_DWORD nComponents) = 0; | 532 virtual void SetComponents(uint32_t nComponents) = 0; |
| 533 }; | 533 }; |
| 534 | 534 |
| 535 void ReverseRGB(uint8_t* pDestBuf, const uint8_t* pSrcBuf, int pixels); | 535 void ReverseRGB(uint8_t* pDestBuf, const uint8_t* pSrcBuf, int pixels); |
| 536 void sRGB_to_AdobeCMYK(FX_FLOAT R, | 536 void sRGB_to_AdobeCMYK(FX_FLOAT R, |
| 537 FX_FLOAT G, | 537 FX_FLOAT G, |
| 538 FX_FLOAT B, | 538 FX_FLOAT B, |
| 539 FX_FLOAT& c, | 539 FX_FLOAT& c, |
| 540 FX_FLOAT& m, | 540 FX_FLOAT& m, |
| 541 FX_FLOAT& y, | 541 FX_FLOAT& y, |
| 542 FX_FLOAT& k); | 542 FX_FLOAT& k); |
| 543 void AdobeCMYK_to_sRGB(FX_FLOAT c, | 543 void AdobeCMYK_to_sRGB(FX_FLOAT c, |
| 544 FX_FLOAT m, | 544 FX_FLOAT m, |
| 545 FX_FLOAT y, | 545 FX_FLOAT y, |
| 546 FX_FLOAT k, | 546 FX_FLOAT k, |
| 547 FX_FLOAT& R, | 547 FX_FLOAT& R, |
| 548 FX_FLOAT& G, | 548 FX_FLOAT& G, |
| 549 FX_FLOAT& B); | 549 FX_FLOAT& B); |
| 550 void AdobeCMYK_to_sRGB1(uint8_t c, | 550 void AdobeCMYK_to_sRGB1(uint8_t c, |
| 551 uint8_t m, | 551 uint8_t m, |
| 552 uint8_t y, | 552 uint8_t y, |
| 553 uint8_t k, | 553 uint8_t k, |
| 554 uint8_t& R, | 554 uint8_t& R, |
| 555 uint8_t& G, | 555 uint8_t& G, |
| 556 uint8_t& B); | 556 uint8_t& B); |
| 557 FX_BOOL MD5ComputeID(const void* buf, FX_DWORD dwSize, uint8_t ID[16]); | 557 FX_BOOL MD5ComputeID(const void* buf, uint32_t dwSize, uint8_t ID[16]); |
| 558 void FaxG4Decode(const uint8_t* src_buf, | 558 void FaxG4Decode(const uint8_t* src_buf, |
| 559 FX_DWORD src_size, | 559 uint32_t src_size, |
| 560 int* pbitpos, | 560 int* pbitpos, |
| 561 uint8_t* dest_buf, | 561 uint8_t* dest_buf, |
| 562 int width, | 562 int width, |
| 563 int height, | 563 int height, |
| 564 int pitch); | 564 int pitch); |
| 565 | 565 |
| 566 #endif // CORE_INCLUDE_FXCODEC_FX_CODEC_H_ | 566 #endif // CORE_INCLUDE_FXCODEC_FX_CODEC_H_ |
| OLD | NEW |