| Index: core/src/fxcodec/codec/fx_codec_progress.h
|
| diff --git a/core/src/fxcodec/codec/fx_codec_progress.h b/core/src/fxcodec/codec/fx_codec_progress.h
|
| index cee8b39c50ad164a4a3e4a2df5f795f4adbf3fae..2da92c9b01c5ce08da3d3116c234cc787f06eebc 100644
|
| --- a/core/src/fxcodec/codec/fx_codec_progress.h
|
| +++ b/core/src/fxcodec/codec/fx_codec_progress.h
|
| @@ -1,223 +1,223 @@
|
| -// Copyright 2014 PDFium Authors. All rights reserved.
|
| -// Use of this source code is governed by a BSD-style license that can be
|
| -// found in the LICENSE file.
|
| -
|
| -// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
|
| -
|
| -#ifndef _FX_CODEC_PROGRESS_H_
|
| -#define _FX_CODEC_PROGRESS_H_
|
| -#define FXCODEC_BLOCK_SIZE 4096
|
| -#define FXCODEC_PNG_GAMMA 2.2
|
| -#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 {
|
| - public:
|
| - CFXCODEC_WeightTable() { m_pWeightTables = NULL; }
|
| - ~CFXCODEC_WeightTable() {
|
| - if (m_pWeightTables != NULL) {
|
| - 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() {
|
| - if (m_pWeightTables != NULL) {
|
| - 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() {
|
| - if (m_pWeightTables != NULL) {
|
| - 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;
|
| -
|
| - FXCODEC_STATUS LoadImageInfo(IFX_FileRead* pFile,
|
| - FXCODEC_IMAGE_TYPE imageType,
|
| - CFX_DIBAttribute* pAttribute) override;
|
| -
|
| - 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_STATUS GetFrames(int32_t& frames, IFX_Pause* pPause) override;
|
| - 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;
|
| -
|
| - FXCODEC_STATUS ContinueDecode(IFX_Pause* pPause) override;
|
| -
|
| - protected:
|
| - static FX_BOOL PngReadHeaderFunc(void* pModule,
|
| - int width,
|
| - int height,
|
| - int bpc,
|
| - int pass,
|
| - int* color_type,
|
| - double* gamma);
|
| - static FX_BOOL PngAskScanlineBufFunc(void* pModule,
|
| - int line,
|
| - uint8_t*& src_buf);
|
| - static void PngFillScanlineBufCompletedFunc(void* pModule,
|
| - int pass,
|
| - int line);
|
| - static void GifRecordCurrentPositionCallback(void* pModule,
|
| - FX_DWORD& cur_pos);
|
| - static uint8_t* GifAskLocalPaletteBufCallback(void* pModule,
|
| - int32_t frame_num,
|
| - int32_t pal_size);
|
| - static FX_BOOL GifInputRecordPositionBufCallback(void* pModule,
|
| - FX_DWORD rcd_pos,
|
| - const FX_RECT& img_rc,
|
| - int32_t pal_num,
|
| - void* pal_ptr,
|
| - int32_t delay_time,
|
| - FX_BOOL user_input,
|
| - int32_t trans_index,
|
| - int32_t disposal_method,
|
| - FX_BOOL interlace);
|
| - static void GifReadScanlineCallback(void* pModule,
|
| - int32_t row_num,
|
| - uint8_t* row_buf);
|
| - static FX_BOOL BmpInputImagePositionBufCallback(void* pModule,
|
| - FX_DWORD rcd_pos);
|
| - static void BmpReadScanlineCallback(void* pModule,
|
| - int32_t row_num,
|
| - uint8_t* row_buf);
|
| -
|
| - FX_BOOL DetectImageType(FXCODEC_IMAGE_TYPE imageType,
|
| - CFX_DIBAttribute* pAttribute);
|
| - void GetDownScale(int& down_scale);
|
| - void GetTransMethod(FXDIB_Format des_format, FXCodec_Format src_format);
|
| - void ReSampleScanline(CFX_DIBitmap* pDeviceBitmap,
|
| - int32_t des_line,
|
| - uint8_t* src_scan,
|
| - FXCodec_Format src_format);
|
| - void Resample(CFX_DIBitmap* pDeviceBitmap,
|
| - int32_t src_line,
|
| - 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,
|
| - 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,
|
| - FXCODEC_STATUS& err_status);
|
| - void GifDoubleLineResampleVert(CFX_DIBitmap* pDeviceBitmap,
|
| - double scale_y,
|
| - int des_row);
|
| - FX_BOOL BmpReadMoreData(ICodec_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;
|
| - FX_DWORD m_offSet;
|
| - uint8_t* m_pSrcBuf;
|
| - FX_DWORD 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
|
| +// Copyright 2014 PDFium Authors. All rights reserved.
|
| +// Use of this source code is governed by a BSD-style license that can be
|
| +// found in the LICENSE file.
|
| +
|
| +// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
|
| +
|
| +#ifndef _FX_CODEC_PROGRESS_H_
|
| +#define _FX_CODEC_PROGRESS_H_
|
| +#define FXCODEC_BLOCK_SIZE 4096
|
| +#define FXCODEC_PNG_GAMMA 2.2
|
| +#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 {
|
| + public:
|
| + CFXCODEC_WeightTable() { m_pWeightTables = NULL; }
|
| + ~CFXCODEC_WeightTable() {
|
| + if (m_pWeightTables != NULL) {
|
| + 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() {
|
| + if (m_pWeightTables != NULL) {
|
| + 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() {
|
| + if (m_pWeightTables != NULL) {
|
| + 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;
|
| +
|
| + FXCODEC_STATUS LoadImageInfo(IFX_FileRead* pFile,
|
| + FXCODEC_IMAGE_TYPE imageType,
|
| + CFX_DIBAttribute* pAttribute) override;
|
| +
|
| + 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_STATUS GetFrames(int32_t& frames, IFX_Pause* pPause) override;
|
| + 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;
|
| +
|
| + FXCODEC_STATUS ContinueDecode(IFX_Pause* pPause) override;
|
| +
|
| + protected:
|
| + static FX_BOOL PngReadHeaderFunc(void* pModule,
|
| + int width,
|
| + int height,
|
| + int bpc,
|
| + int pass,
|
| + int* color_type,
|
| + double* gamma);
|
| + static FX_BOOL PngAskScanlineBufFunc(void* pModule,
|
| + int line,
|
| + uint8_t*& src_buf);
|
| + static void PngFillScanlineBufCompletedFunc(void* pModule,
|
| + int pass,
|
| + int line);
|
| + static void GifRecordCurrentPositionCallback(void* pModule,
|
| + FX_DWORD& cur_pos);
|
| + static uint8_t* GifAskLocalPaletteBufCallback(void* pModule,
|
| + int32_t frame_num,
|
| + int32_t pal_size);
|
| + static FX_BOOL GifInputRecordPositionBufCallback(void* pModule,
|
| + FX_DWORD rcd_pos,
|
| + const FX_RECT& img_rc,
|
| + int32_t pal_num,
|
| + void* pal_ptr,
|
| + int32_t delay_time,
|
| + FX_BOOL user_input,
|
| + int32_t trans_index,
|
| + int32_t disposal_method,
|
| + FX_BOOL interlace);
|
| + static void GifReadScanlineCallback(void* pModule,
|
| + int32_t row_num,
|
| + uint8_t* row_buf);
|
| + static FX_BOOL BmpInputImagePositionBufCallback(void* pModule,
|
| + FX_DWORD rcd_pos);
|
| + static void BmpReadScanlineCallback(void* pModule,
|
| + int32_t row_num,
|
| + uint8_t* row_buf);
|
| +
|
| + FX_BOOL DetectImageType(FXCODEC_IMAGE_TYPE imageType,
|
| + CFX_DIBAttribute* pAttribute);
|
| + void GetDownScale(int& down_scale);
|
| + void GetTransMethod(FXDIB_Format des_format, FXCodec_Format src_format);
|
| + void ReSampleScanline(CFX_DIBitmap* pDeviceBitmap,
|
| + int32_t des_line,
|
| + uint8_t* src_scan,
|
| + FXCodec_Format src_format);
|
| + void Resample(CFX_DIBitmap* pDeviceBitmap,
|
| + int32_t src_line,
|
| + 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,
|
| + 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,
|
| + FXCODEC_STATUS& err_status);
|
| + void GifDoubleLineResampleVert(CFX_DIBitmap* pDeviceBitmap,
|
| + double scale_y,
|
| + int des_row);
|
| + FX_BOOL BmpReadMoreData(ICodec_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;
|
| + FX_DWORD m_offSet;
|
| + uint8_t* m_pSrcBuf;
|
| + FX_DWORD 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
|
|
|