summaryrefslogtreecommitdiff
path: root/core/src/fxcodec/jbig2/JBig2_TrdProc.h
diff options
context:
space:
mode:
Diffstat (limited to 'core/src/fxcodec/jbig2/JBig2_TrdProc.h')
-rw-r--r--core/src/fxcodec/jbig2/JBig2_TrdProc.h83
1 files changed, 83 insertions, 0 deletions
diff --git a/core/src/fxcodec/jbig2/JBig2_TrdProc.h b/core/src/fxcodec/jbig2/JBig2_TrdProc.h
new file mode 100644
index 0000000000..1ab7d6a11a
--- /dev/null
+++ b/core/src/fxcodec/jbig2/JBig2_TrdProc.h
@@ -0,0 +1,83 @@
+// Copyright 2015 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_SRC_FXCODEC_JBIG2_JBIG2_TRDPROC_H_
+#define CORE_SRC_FXCODEC_JBIG2_JBIG2_TRDPROC_H_
+
+#include "../../../core/include/fxcrt/fx_system.h"
+
+#include "JBig2_Image.h"
+
+class CJBig2_ArithDecoder;
+class CJBig2_ArithIaidDecoder;
+class CJBig2_ArithIntDecoder;
+class CJBig2_BitStream;
+class CJBig2_HuffmanTable;
+struct JBig2ArithCtx;
+struct JBig2HuffmanCode;
+
+struct JBig2IntDecoderState {
+ CJBig2_ArithIntDecoder* IADT;
+ CJBig2_ArithIntDecoder* IAFS;
+ CJBig2_ArithIntDecoder* IADS;
+ CJBig2_ArithIntDecoder* IAIT;
+ CJBig2_ArithIntDecoder* IARI;
+ CJBig2_ArithIntDecoder* IARDW;
+ CJBig2_ArithIntDecoder* IARDH;
+ CJBig2_ArithIntDecoder* IARDX;
+ CJBig2_ArithIntDecoder* IARDY;
+ CJBig2_ArithIaidDecoder* IAID;
+};
+
+enum JBig2Corner {
+ JBIG2_CORNER_BOTTOMLEFT = 0,
+ JBIG2_CORNER_TOPLEFT = 1,
+ JBIG2_CORNER_BOTTOMRIGHT = 2,
+ JBIG2_CORNER_TOPRIGHT = 3
+};
+
+class CJBig2_TRDProc {
+ public:
+ CJBig2_Image* decode_Huffman(CJBig2_BitStream* pStream,
+ JBig2ArithCtx* grContext);
+
+ CJBig2_Image* decode_Arith(CJBig2_ArithDecoder* pArithDecoder,
+ JBig2ArithCtx* grContext,
+ JBig2IntDecoderState* pIDS = NULL);
+
+ public:
+ FX_BOOL SBHUFF;
+ FX_BOOL SBREFINE;
+ FX_DWORD SBW;
+ FX_DWORD SBH;
+ FX_DWORD SBNUMINSTANCES;
+ FX_DWORD SBSTRIPS;
+ FX_DWORD SBNUMSYMS;
+
+ JBig2HuffmanCode* SBSYMCODES;
+ uint8_t SBSYMCODELEN;
+
+ CJBig2_Image** SBSYMS;
+ FX_BOOL SBDEFPIXEL;
+
+ JBig2ComposeOp SBCOMBOP;
+ FX_BOOL TRANSPOSED;
+
+ JBig2Corner REFCORNER;
+ int8_t SBDSOFFSET;
+ CJBig2_HuffmanTable* SBHUFFFS;
+ CJBig2_HuffmanTable* SBHUFFDS;
+ CJBig2_HuffmanTable* SBHUFFDT;
+ CJBig2_HuffmanTable* SBHUFFRDW;
+ CJBig2_HuffmanTable* SBHUFFRDH;
+ CJBig2_HuffmanTable* SBHUFFRDX;
+ CJBig2_HuffmanTable* SBHUFFRDY;
+ CJBig2_HuffmanTable* SBHUFFRSIZE;
+ FX_BOOL SBRTEMPLATE;
+ int8_t SBRAT[4];
+};
+
+#endif // CORE_SRC_FXCODEC_JBIG2_JBIG2_TRDPROC_H_