summaryrefslogtreecommitdiff
path: root/jbig2dec/jbig2_page.h
diff options
context:
space:
mode:
authorSebastian Rasmussen <sebras@gmail.com>2018-05-26 14:51:42 +0800
committerSebastian Rasmussen <sebras@gmail.com>2018-07-13 16:54:30 +0800
commit8f4288807d659f72734d41dd8b7d434b1e15dfc2 (patch)
treeade73599553c0fd5760f02c9c1796e65bad0afb7 /jbig2dec/jbig2_page.h
parent55925ee6220fe371b1fe34fdc27cfd4dad8847b2 (diff)
downloadghostpdl-8f4288807d659f72734d41dd8b7d434b1e15dfc2.tar.gz
jbig2dec: Create jbig2_page.h with page declarations.
Diffstat (limited to 'jbig2dec/jbig2_page.h')
-rw-r--r--jbig2dec/jbig2_page.h53
1 files changed, 53 insertions, 0 deletions
diff --git a/jbig2dec/jbig2_page.h b/jbig2dec/jbig2_page.h
new file mode 100644
index 000000000..316824f04
--- /dev/null
+++ b/jbig2dec/jbig2_page.h
@@ -0,0 +1,53 @@
+/* Copyright (C) 2001-2018 Artifex Software, Inc.
+ All Rights Reserved.
+
+ This software is provided AS-IS with no warranty, either express or
+ implied.
+
+ This software is distributed under license and may not be copied,
+ modified or distributed except as expressly authorized under the terms
+ of the license contained in the file LICENSE in this distribution.
+
+ Refer to licensing information at http://www.artifex.com or contact
+ Artifex Software, Inc., 1305 Grant Avenue - Suite 200, Novato,
+ CA 94945, U.S.A., +1(415)492-9861, for further information.
+*/
+
+/*
+ jbig2dec
+*/
+
+#ifndef _JBIG2_PAGE_H
+#define _JBIG2_PAGE_H
+
+/* the page structure handles decoded page
+ results. it's allocated by a 'page info'
+ segment and marked complete by an 'end of page'
+ segment.
+*/
+typedef enum {
+ JBIG2_PAGE_FREE,
+ JBIG2_PAGE_NEW,
+ JBIG2_PAGE_COMPLETE,
+ JBIG2_PAGE_RETURNED,
+ JBIG2_PAGE_RELEASED
+} Jbig2PageState;
+
+struct _Jbig2Page {
+ Jbig2PageState state;
+ uint32_t number;
+ uint32_t height, width; /* in pixels */
+ uint32_t x_resolution, y_resolution; /* in pixels per meter */
+ uint16_t stripe_size;
+ bool striped;
+ uint32_t end_row;
+ uint8_t flags;
+ Jbig2Image *image;
+};
+
+int jbig2_page_info(Jbig2Ctx *ctx, Jbig2Segment *segment, const uint8_t *segment_data);
+int jbig2_end_of_stripe(Jbig2Ctx *ctx, Jbig2Segment *segment, const uint8_t *segment_data);
+int jbig2_end_of_page(Jbig2Ctx *ctx, Jbig2Segment *segment, const uint8_t *segment_data);
+int jbig2_page_add_result(Jbig2Ctx *ctx, Jbig2Page *page, Jbig2Image *src, int x, int y, Jbig2ComposeOp op);
+
+#endif /* _JBIG2_PAGE_H */