1// Copyright 2016 PDFium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com 6 7#ifndef CORE_FXCODEC_CODEC_CCODEC_JBIG2MODULE_H_ 8#define CORE_FXCODEC_CODEC_CCODEC_JBIG2MODULE_H_ 9 10#include <memory> 11 12#include "core/fxcodec/fx_codec_def.h" 13#include "core/fxcrt/fx_basic.h" 14 15class CJBig2_Context; 16class CJBig2_Image; 17class CPDF_StreamAcc; 18class IFX_Pause; 19class JBig2_DocumentContext; 20 21class CCodec_Jbig2Context { 22 public: 23 CCodec_Jbig2Context(); 24 ~CCodec_Jbig2Context(); 25 26 uint32_t m_width; 27 uint32_t m_height; 28 CPDF_StreamAcc* m_pGlobalStream; 29 CPDF_StreamAcc* m_pSrcStream; 30 uint8_t* m_dest_buf; 31 uint32_t m_dest_pitch; 32 IFX_Pause* m_pPause; 33 std::unique_ptr<CJBig2_Context> m_pContext; 34}; 35 36class CCodec_Jbig2Module { 37 public: 38 CCodec_Jbig2Module() {} 39 ~CCodec_Jbig2Module(); 40 41 FXCODEC_STATUS StartDecode( 42 CCodec_Jbig2Context* pJbig2Context, 43 std::unique_ptr<JBig2_DocumentContext>* pContextHolder, 44 uint32_t width, 45 uint32_t height, 46 CPDF_StreamAcc* src_stream, 47 CPDF_StreamAcc* global_stream, 48 uint8_t* dest_buf, 49 uint32_t dest_pitch, 50 IFX_Pause* pPause); 51 FXCODEC_STATUS ContinueDecode(CCodec_Jbig2Context* pJbig2Context, 52 IFX_Pause* pPause); 53}; 54 55#endif // CORE_FXCODEC_CODEC_CCODEC_JBIG2MODULE_H_ 56