Chromium Code Reviews| Index: core/fxcodec/codec/include/ccodec_progressivedecoder.h |
| diff --git a/core/fxcodec/codec/fx_codec_progress.h b/core/fxcodec/codec/include/ccodec_progressivedecoder.h |
| similarity index 64% |
| rename from core/fxcodec/codec/fx_codec_progress.h |
| rename to core/fxcodec/codec/include/ccodec_progressivedecoder.h |
| index e8e885b3b57d5a1099235cb42fe6ed75df335ec4..048f456dee4e3e7a7d165807d7729451aae40cfa 100644 |
| --- a/core/fxcodec/codec/fx_codec_progress.h |
| +++ b/core/fxcodec/codec/include/ccodec_progressivedecoder.h |
| @@ -4,108 +4,154 @@ |
| // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com |
| -#ifndef CORE_FXCODEC_CODEC_FX_CODEC_PROGRESS_H_ |
| -#define CORE_FXCODEC_CODEC_FX_CODEC_PROGRESS_H_ |
| +#ifndef CORE_FXCODEC_CODEC_INCLUDE_CCODEC_PROGRESSIVEDECODER_H_ |
| +#define CORE_FXCODEC_CODEC_INCLUDE_CCODEC_PROGRESSIVEDECODER_H_ |
| -#include "core/fxcodec/include/fx_codec.h" |
| -#include "core/fxcrt/include/fx_memory.h" |
| #include "core/fxcrt/include/fx_system.h" |
| +#include "core/fxcodec/include/fx_codec_def.h" |
|
Tom Sepez
2016/04/11 17:16:21
alphabetize
dsinclair
2016/04/11 20:40:40
Done.
|
| #include "core/fxge/include/fx_dib.h" |
| -#define FXCODEC_BLOCK_SIZE 4096 |
| -#define FXCODEC_PNG_GAMMA 2.2 |
| +class CCodec_BmpModule; |
| +class CCodec_GifModule; |
| +class CCodec_JpegModule; |
| +class CCodec_ModuleMgr; |
| +class CFX_DIBAttribute; |
| +class IFX_FileRead; |
| +class IFX_Pause; |
| -#if _FX_OS_ == _FX_MACOSX_ || _FX_OS_ == _FX_IOS_ |
| -#undef FXCODEC_PNG_GAMMA |
| -#define FXCODEC_PNG_GAMMA 1.7 |
| -#endif |
| - |
| -struct PixelWeight { |
| - int m_SrcStart; |
| - int m_SrcEnd; |
| - int m_Weights[1]; |
| -}; |
| - |
| -class CFXCODEC_WeightTable { |
| +class CCodec_ProgressiveDecoder { |
| public: |
| - CFXCODEC_WeightTable() { m_pWeightTables = NULL; } |
| - ~CFXCODEC_WeightTable() { FX_Free(m_pWeightTables); } |
| - |
| - void Calc(int dest_len, |
| - int dest_min, |
| - int dest_max, |
| - int src_len, |
| - int src_min, |
| - int src_max, |
| - FX_BOOL bInterpol); |
| - PixelWeight* GetPixelWeight(int pixel) { |
| - return (PixelWeight*)(m_pWeightTables + (pixel - m_DestMin) * m_ItemSize); |
| - } |
| - |
| - int m_DestMin, m_ItemSize; |
| - uint8_t* m_pWeightTables; |
| -}; |
| -class CFXCODEC_HorzTable { |
| - public: |
| - CFXCODEC_HorzTable() { m_pWeightTables = NULL; } |
| - ~CFXCODEC_HorzTable() { FX_Free(m_pWeightTables); } |
| - |
| - void Calc(int dest_len, int src_len, FX_BOOL bInterpol); |
| - PixelWeight* GetPixelWeight(int pixel) { |
| - return (PixelWeight*)(m_pWeightTables + pixel * m_ItemSize); |
| - } |
| + enum FXCodec_Format { |
| + FXCodec_Invalid = 0, |
| + FXCodec_1bppGray = 0x101, |
| + FXCodec_1bppRgb = 0x001, |
| + FXCodec_8bppGray = 0x108, |
| + FXCodec_8bppRgb = 0x008, |
| + FXCodec_Rgb = 0x018, |
| + FXCodec_Rgb32 = 0x020, |
| + FXCodec_Argb = 0x220, |
| + FXCodec_Cmyk = 0x120 |
| + }; |
| - int m_ItemSize; |
| - uint8_t* m_pWeightTables; |
| -}; |
| -class CFXCODEC_VertTable { |
| - public: |
| - CFXCODEC_VertTable() { m_pWeightTables = NULL; } |
| - ~CFXCODEC_VertTable() { FX_Free(m_pWeightTables); } |
| - void Calc(int dest_len, int src_len); |
| - PixelWeight* GetPixelWeight(int pixel) { |
| - return (PixelWeight*)(m_pWeightTables + pixel * m_ItemSize); |
| - } |
| - int m_ItemSize; |
| - uint8_t* m_pWeightTables; |
| -}; |
| -enum FXCodec_Format { |
| - FXCodec_Invalid = 0, |
| - FXCodec_1bppGray = 0x101, |
| - FXCodec_1bppRgb = 0x001, |
| - FXCodec_8bppGray = 0x108, |
| - FXCodec_8bppRgb = 0x008, |
| - FXCodec_Rgb = 0x018, |
| - FXCodec_Rgb32 = 0x020, |
| - FXCodec_Argb = 0x220, |
| - FXCodec_Cmyk = 0x120 |
| -}; |
| -class CCodec_ProgressiveDecoder : public ICodec_ProgressiveDecoder { |
| - public: |
| CCodec_ProgressiveDecoder(CCodec_ModuleMgr* pCodecMgr); |
| - ~CCodec_ProgressiveDecoder() override; |
| + ~CCodec_ProgressiveDecoder(); |
| FXCODEC_STATUS LoadImageInfo(IFX_FileRead* pFile, |
| FXCODEC_IMAGE_TYPE imageType, |
| - CFX_DIBAttribute* pAttribute) override; |
| + CFX_DIBAttribute* pAttribute); |
| - FXCODEC_IMAGE_TYPE GetType() const override { return m_imagType; } |
| - int32_t GetWidth() const override { return m_SrcWidth; } |
| - int32_t GetHeight() const override { return m_SrcHeight; } |
| - int32_t GetNumComponents() const override { return m_SrcComponents; } |
| - int32_t GetBPC() const override { return m_SrcBPC; } |
| - void SetClipBox(FX_RECT* clip) override; |
| + FXCODEC_IMAGE_TYPE GetType() const { return m_imagType; } |
| + int32_t GetWidth() const { return m_SrcWidth; } |
| + int32_t GetHeight() const { return m_SrcHeight; } |
| + int32_t GetNumComponents() const { return m_SrcComponents; } |
| + int32_t GetBPC() const { return m_SrcBPC; } |
| + void SetClipBox(FX_RECT* clip); |
| - FXCODEC_STATUS GetFrames(int32_t& frames, IFX_Pause* pPause) override; |
| + FXCODEC_STATUS GetFrames(int32_t& frames, IFX_Pause* pPause = nullptr); |
| FXCODEC_STATUS StartDecode(CFX_DIBitmap* pDIBitmap, |
| int start_x, |
| int start_y, |
| int size_x, |
| int size_y, |
| - int32_t frames, |
| - FX_BOOL bInterpol) override; |
| + int32_t frames = 0, |
| + FX_BOOL bInterpol = TRUE); |
| + |
| + FXCODEC_STATUS ContinueDecode(IFX_Pause* pPause = nullptr); |
| + |
| + struct PixelWeight { |
| + int m_SrcStart; |
| + int m_SrcEnd; |
| + int m_Weights[1]; |
| + }; |
| + |
| + class CFXCODEC_WeightTable { |
| + public: |
| + CFXCODEC_WeightTable() { m_pWeightTables = NULL; } |
| + ~CFXCODEC_WeightTable() { FX_Free(m_pWeightTables); } |
| + |
| + void Calc(int dest_len, |
| + int dest_min, |
| + int dest_max, |
| + int src_len, |
| + int src_min, |
| + int src_max, |
| + FX_BOOL bInterpol); |
| + PixelWeight* GetPixelWeight(int pixel) { |
| + return (PixelWeight*)(m_pWeightTables + (pixel - m_DestMin) * m_ItemSize); |
| + } |
| + |
| + int m_DestMin, m_ItemSize; |
| + uint8_t* m_pWeightTables; |
| + }; |
| + |
| + class CFXCODEC_HorzTable { |
| + public: |
| + CFXCODEC_HorzTable() { m_pWeightTables = NULL; } |
| + ~CFXCODEC_HorzTable() { FX_Free(m_pWeightTables); } |
| + |
| + void Calc(int dest_len, int src_len, FX_BOOL bInterpol); |
| + PixelWeight* GetPixelWeight(int pixel) { |
| + return (PixelWeight*)(m_pWeightTables + pixel * m_ItemSize); |
| + } |
| + |
| + int m_ItemSize; |
| + uint8_t* m_pWeightTables; |
| + }; |
| + |
| + class CFXCODEC_VertTable { |
| + public: |
| + CFXCODEC_VertTable() { m_pWeightTables = NULL; } |
| + ~CFXCODEC_VertTable() { FX_Free(m_pWeightTables); } |
| + void Calc(int dest_len, int src_len); |
| + PixelWeight* GetPixelWeight(int pixel) { |
| + return (PixelWeight*)(m_pWeightTables + pixel * m_ItemSize); |
| + } |
| + int m_ItemSize; |
| + uint8_t* m_pWeightTables; |
| + }; |
| - FXCODEC_STATUS ContinueDecode(IFX_Pause* pPause) override; |
| + IFX_FileRead* m_pFile; |
| + CCodec_ModuleMgr* m_pCodecMgr; |
| + void* m_pJpegContext; |
| + void* m_pPngContext; |
| + void* m_pGifContext; |
| + void* m_pBmpContext; |
| + void* m_pTiffContext; |
| + FXCODEC_IMAGE_TYPE m_imagType; |
| + uint32_t m_offSet; |
| + uint8_t* m_pSrcBuf; |
| + uint32_t m_SrcSize; |
| + uint8_t* m_pDecodeBuf; |
| + int m_ScanlineSize; |
| + CFX_DIBitmap* m_pDeviceBitmap; |
| + FX_BOOL m_bInterpol; |
| + CFXCODEC_WeightTable m_WeightHorz; |
| + CFXCODEC_VertTable m_WeightVert; |
| + CFXCODEC_HorzTable m_WeightHorzOO; |
| + int m_SrcWidth; |
| + int m_SrcHeight; |
| + int m_SrcComponents; |
| + int m_SrcBPC; |
| + FX_RECT m_clipBox; |
| + int m_startX; |
| + int m_startY; |
| + int m_sizeX; |
| + int m_sizeY; |
| + int m_TransMethod; |
| + FX_ARGB* m_pSrcPalette; |
| + int m_SrcPaletteNumber; |
| + int m_SrcRow; |
| + FXCodec_Format m_SrcFormat; |
| + int m_SrcPassNumber; |
| + int m_FrameNumber; |
| + int m_FrameCur; |
| + int m_GifBgIndex; |
| + uint8_t* m_pGifPalette; |
| + int32_t m_GifPltNumber; |
| + int m_GifTransIndex; |
| + FX_RECT m_GifFrameRect; |
| + FX_BOOL m_BmpIsTopBottom; |
| + FXCODEC_STATUS m_status; |
| protected: |
| static FX_BOOL PngReadHeaderFunc(void* pModule, |
| @@ -158,64 +204,20 @@ class CCodec_ProgressiveDecoder : public ICodec_ProgressiveDecoder { |
| uint8_t* src_scan, |
| FXCodec_Format src_format); |
| void ResampleVert(CFX_DIBitmap* pDeviceBitmap, double scale_y, int des_row); |
| - FX_BOOL JpegReadMoreData(ICodec_JpegModule* pJpegModule, |
| + FX_BOOL JpegReadMoreData(CCodec_JpegModule* pJpegModule, |
| FXCODEC_STATUS& err_status); |
| void PngOneOneMapResampleHorz(CFX_DIBitmap* pDeviceBitmap, |
| int32_t des_line, |
| uint8_t* src_scan, |
| FXCodec_Format src_format); |
| - FX_BOOL GifReadMoreData(ICodec_GifModule* pGifModule, |
| + FX_BOOL GifReadMoreData(CCodec_GifModule* pGifModule, |
| FXCODEC_STATUS& err_status); |
| void GifDoubleLineResampleVert(CFX_DIBitmap* pDeviceBitmap, |
| double scale_y, |
| int des_row); |
| - FX_BOOL BmpReadMoreData(ICodec_BmpModule* pBmpModule, |
| + FX_BOOL BmpReadMoreData(CCodec_BmpModule* pBmpModule, |
| FXCODEC_STATUS& err_status); |
| void ResampleVertBT(CFX_DIBitmap* pDeviceBitmap, double scale_y, int des_row); |
| - |
| - public: |
| - IFX_FileRead* m_pFile; |
| - CCodec_ModuleMgr* m_pCodecMgr; |
| - void* m_pJpegContext; |
| - void* m_pPngContext; |
| - void* m_pGifContext; |
| - void* m_pBmpContext; |
| - void* m_pTiffContext; |
| - FXCODEC_IMAGE_TYPE m_imagType; |
| - uint32_t m_offSet; |
| - uint8_t* m_pSrcBuf; |
| - uint32_t m_SrcSize; |
| - uint8_t* m_pDecodeBuf; |
| - int m_ScanlineSize; |
| - CFX_DIBitmap* m_pDeviceBitmap; |
| - FX_BOOL m_bInterpol; |
| - CFXCODEC_WeightTable m_WeightHorz; |
| - CFXCODEC_VertTable m_WeightVert; |
| - CFXCODEC_HorzTable m_WeightHorzOO; |
| - int m_SrcWidth; |
| - int m_SrcHeight; |
| - int m_SrcComponents; |
| - int m_SrcBPC; |
| - FX_RECT m_clipBox; |
| - int m_startX; |
| - int m_startY; |
| - int m_sizeX; |
| - int m_sizeY; |
| - int m_TransMethod; |
| - FX_ARGB* m_pSrcPalette; |
| - int m_SrcPaletteNumber; |
| - int m_SrcRow; |
| - FXCodec_Format m_SrcFormat; |
| - int m_SrcPassNumber; |
| - int m_FrameNumber; |
| - int m_FrameCur; |
| - int m_GifBgIndex; |
| - uint8_t* m_pGifPalette; |
| - int32_t m_GifPltNumber; |
| - int m_GifTransIndex; |
| - FX_RECT m_GifFrameRect; |
| - FX_BOOL m_BmpIsTopBottom; |
| - FXCODEC_STATUS m_status; |
| }; |
| -#endif // CORE_FXCODEC_CODEC_FX_CODEC_PROGRESS_H_ |
| +#endif // CORE_FXCODEC_CODEC_INCLUDE_CCODEC_PROGRESSIVEDECODER_H_ |