Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
JBig2_HuffmanTable.h
Go to the documentation of this file.
1// Copyright 2014 The PDFium Authors
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_JBIG2_JBIG2_HUFFMANTABLE_H_
8#define CORE_FXCODEC_JBIG2_JBIG2_HUFFMANTABLE_H_
9
10#include <stddef.h>
11#include <stdint.h>
12
13#include <vector>
14
15#include "core/fxcodec/jbig2/JBig2_Define.h"
16
18
20 public:
21 explicit CJBig2_HuffmanTable(size_t idx);
22 explicit CJBig2_HuffmanTable(CJBig2_BitStream* pStream);
24
25 bool IsHTOOB() const { return HTOOB; }
26 uint32_t Size() const { return NTEMP; }
27 const std::vector<JBig2HuffmanCode>& GetCODES() const { return CODES; }
28 const std::vector<int>& GetRANGELEN() const { return RANGELEN; }
29 const std::vector<int>& GetRANGELOW() const { return RANGELOW; }
30 bool IsOK() const { return m_bOK; }
31
32 constexpr static size_t kNumHuffmanTables = 16;
33
34 private:
35 bool ParseFromStandardTable(size_t table_idx);
36 bool ParseFromCodedBuffer(CJBig2_BitStream* pStream);
37 void ExtendBuffers(bool increment);
38
39 bool m_bOK;
40 bool HTOOB;
41 uint32_t NTEMP;
42 std::vector<JBig2HuffmanCode> CODES;
43 std::vector<int> RANGELEN;
44 std::vector<int> RANGELOW;
45};
46
47#endif // CORE_FXCODEC_JBIG2_JBIG2_HUFFMANTABLE_H_
static const size_t kSymbolDictCacheMaxSize
JBig2_Result
#define JBIG2_MIN_SEGMENT_SIZE
constexpr uint32_t kJBig2MaxNewSymbols
constexpr int32_t kJBig2MaxReferredSegmentCount
constexpr uint32_t kJBig2MaxExportSymbols
constexpr int32_t kJBig2OOB
constexpr int32_t kJBig2MaxImageSize
constexpr uint32_t kJBig2MaxPatternIndex
JBig2ComposeOp
Definition JBig2_Image.h:19
JBig2_ResultType
@ JBIG2_IMAGE_POINTER
@ JBIG2_VOID_POINTER
@ JBIG2_HUFFMAN_TABLE_POINTER
@ JBIG2_SYMBOL_DICT_POINTER
@ JBIG2_PATTERN_DICT_POINTER
JBig2_SegmentState
@ JBIG2_SEGMENT_DATA_UNPARSED
@ JBIG2_SEGMENT_PARSE_COMPLETE
@ JBIG2_SEGMENT_ERROR
@ JBIG2_SEGMENT_HEADER_UNPARSED
@ JBIG2_SEGMENT_PAUSED
JBig2Corner
static std::unique_ptr< CJBig2_Context > Create(pdfium::span< const uint8_t > pGlobalSpan, uint64_t global_key, pdfium::span< const uint8_t > pSrcSpan, uint64_t src_key, std::list< CJBig2_CachePair > *pSymbolDictCache)
static bool HuffmanAssignCode(JBig2HuffmanCode *SBSYMCODES, uint32_t NTEMP)
bool GetFirstPage(pdfium::span< uint8_t > pBuf, int32_t width, int32_t height, int32_t stride, PauseIndicatorIface *pPause)
bool Continue(PauseIndicatorIface *pPause)
FXCODEC_STATUS GetProcessingStatus() const
static constexpr size_t kNumHuffmanTables
const std::vector< int > & GetRANGELEN() const
const std::vector< JBig2HuffmanCode > & GetCODES() const
CJBig2_HuffmanTable(CJBig2_BitStream *pStream)
uint32_t Size() const
const std::vector< int > & GetRANGELOW() const
static bool IsValidImageSize(int32_t w, int32_t h)
std::vector< uint32_t > m_Referred_to_segment_numbers
std::unique_ptr< CJBig2_SymbolDict > m_SymbolDict
std::unique_ptr< CJBig2_HuffmanTable > m_HuffmanTable
JBig2_SegmentState m_State
std::unique_ptr< CJBig2_PatternDict > m_PatternDict
JBig2_ResultType m_nResultType
uint8_t deferred_non_retain
uint8_t page_association_size
uint32_t m_dwData_length
uint32_t m_dwHeader_Length
uint32_t m_dwDataOffset
int32_t m_nReferred_to_segment_count
uint32_t m_dwPage_association
std::unique_ptr< CJBig2_Image > m_Image
uint32_t m_dwNumber
virtual bool NeedToPauseNow()=0
FXCODEC_STATUS
bool m_bIsStriped
Definition JBig2_Page.h:19
uint16_t m_wMaxStripeSize
Definition JBig2_Page.h:20
uint32_t m_dwHeight
Definition JBig2_Page.h:14
bool m_bDefaultPixelValue
Definition JBig2_Page.h:18
uint32_t m_dwResolutionY
Definition JBig2_Page.h:16
uint32_t m_dwWidth
Definition JBig2_Page.h:13
uint32_t m_dwResolutionX
Definition JBig2_Page.h:15