diff options
Diffstat (limited to 'core/fxcodec/jbig2/jbig2_decoder.h')
-rw-r--r-- | core/fxcodec/jbig2/jbig2_decoder.h | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/core/fxcodec/jbig2/jbig2_decoder.h b/core/fxcodec/jbig2/jbig2_decoder.h new file mode 100644 index 000000000..0a94f5de8 --- /dev/null +++ b/core/fxcodec/jbig2/jbig2_decoder.h @@ -0,0 +1,65 @@ +// Copyright 2016 The PDFium Authors +// 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_JBIG2_JBIG2_DECODER_H_ +#define CORE_FXCODEC_JBIG2_JBIG2_DECODER_H_ + +#include <memory> + +#include "core/fxcodec/fx_codec_def.h" +#include "third_party/base/span.h" + +class CJBig2_Context; +class JBig2_DocumentContext; +class PauseIndicatorIface; + +namespace fxcodec { + +class Jbig2Context { + public: + Jbig2Context(); + ~Jbig2Context(); + + uint32_t m_width = 0; + uint32_t m_height = 0; + uint64_t m_nGlobalKey = 0; + uint64_t m_nSrcKey = 0; + pdfium::span<const uint8_t> m_pGlobalSpan; + pdfium::span<const uint8_t> m_pSrcSpan; + uint8_t* m_dest_buf = nullptr; + uint32_t m_dest_pitch = 0; + std::unique_ptr<CJBig2_Context> m_pContext; +}; + +class Jbig2Decoder { + public: + static FXCODEC_STATUS StartDecode( + Jbig2Context* pJbig2Context, + JBig2_DocumentContext* pJbig2DocumentContext, + uint32_t width, + uint32_t height, + pdfium::span<const uint8_t> src_span, + uint64_t src_key, + pdfium::span<const uint8_t> global_span, + uint64_t global_key, + pdfium::span<uint8_t> dest_buf, + uint32_t dest_pitch, + PauseIndicatorIface* pPause); + + static FXCODEC_STATUS ContinueDecode(Jbig2Context* pJbig2Context, + PauseIndicatorIface* pPause); + + Jbig2Decoder() = delete; + Jbig2Decoder(const Jbig2Decoder&) = delete; + Jbig2Decoder& operator=(const Jbig2Decoder&) = delete; +}; + +} // namespace fxcodec + +using Jbig2Context = fxcodec::Jbig2Context; +using Jbig2Decoder = fxcodec::Jbig2Decoder; + +#endif // CORE_FXCODEC_JBIG2_JBIG2_DECODER_H_ |