diff options
Diffstat (limited to 'core/fxcodec/codec/ccodec_jpegmodule.h')
-rw-r--r-- | core/fxcodec/codec/ccodec_jpegmodule.h | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/core/fxcodec/codec/ccodec_jpegmodule.h b/core/fxcodec/codec/ccodec_jpegmodule.h new file mode 100644 index 0000000000..98554fea1c --- /dev/null +++ b/core/fxcodec/codec/ccodec_jpegmodule.h @@ -0,0 +1,68 @@ +// Copyright 2016 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 CORE_FXCODEC_CODEC_CCODEC_JPEGMODULE_H_ +#define CORE_FXCODEC_CODEC_CCODEC_JPEGMODULE_H_ + +#include "core/fxcrt/include/fx_system.h" + +class CCodec_ScanlineDecoder; +class CFX_DIBSource; +struct FXJPEG_Context; + +#ifdef PDF_ENABLE_XFA +class CFX_DIBAttribute; +#endif // PDF_ENABLE_XFA + +class CCodec_JpegModule { + public: + CCodec_JpegModule() {} + CCodec_ScanlineDecoder* CreateDecoder(const uint8_t* src_buf, + uint32_t src_size, + int width, + int height, + int nComps, + FX_BOOL ColorTransform); + FX_BOOL LoadInfo(const uint8_t* src_buf, + uint32_t src_size, + int& width, + int& height, + int& num_components, + int& bits_per_components, + FX_BOOL& color_transform, + uint8_t** icc_buf_ptr = nullptr, + uint32_t* icc_length = nullptr); + FX_BOOL Encode(const CFX_DIBSource* pSource, + uint8_t*& dest_buf, + FX_STRSIZE& dest_size, + int quality = 75, + const uint8_t* icc_buf = nullptr, + uint32_t icc_length = 0); + FXJPEG_Context* Start(); + void Finish(FXJPEG_Context* pContext); + void Input(FXJPEG_Context* pContext, + const uint8_t* src_buf, + uint32_t src_size); + +#ifndef PDF_ENABLE_XFA + int ReadHeader(FXJPEG_Context* pContext, + int* width, + int* height, + int* nComps); +#else // PDF_ENABLE_XFA + int ReadHeader(FXJPEG_Context* pContext, + int* width, + int* height, + int* nComps, + CFX_DIBAttribute* pAttribute); +#endif // PDF_ENABLE_XFA + + int StartScanline(FXJPEG_Context* pContext, int down_scale); + FX_BOOL ReadScanline(FXJPEG_Context* pContext, uint8_t* dest_buf); + uint32_t GetAvailInput(FXJPEG_Context* pContext, uint8_t** avail_buf_ptr); +}; + +#endif // CORE_FXCODEC_CODEC_CCODEC_JPEGMODULE_H_ |