diff mupdf-source/thirdparty/jbig2dec/jbig2_symbol_dict.h @ 2:b50eed0cc0ef upstream

ADD: MuPDF v1.26.7: the MuPDF source as downloaded by a default build of PyMuPDF 1.26.4. The directory name has changed: no version number in the expanded directory now.
author Franz Glasner <fzglas.hg@dom66.de>
date Mon, 15 Sep 2025 11:43:07 +0200
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mupdf-source/thirdparty/jbig2dec/jbig2_symbol_dict.h	Mon Sep 15 11:43:07 2025 +0200
@@ -0,0 +1,55 @@
+/* Copyright (C) 2001-2023 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.,  39 Mesa Street, Suite 108A, San Francisco,
+   CA 94129, USA, for further information.
+*/
+
+/*
+    jbig2dec
+*/
+
+#ifndef _JBIG2_SYMBOL_DICT_H
+#define _JBIG2_SYMBOL_DICT_H
+
+/* symbol dictionary header */
+
+/* the results of decoding a symbol dictionary */
+typedef struct {
+    uint32_t n_symbols;
+    Jbig2Image **glyphs;
+} Jbig2SymbolDict;
+
+/* decode a symbol dictionary segment and store the results */
+int jbig2_symbol_dictionary(Jbig2Ctx *ctx, Jbig2Segment *segment, const byte *segment_data);
+
+/* get a particular glyph by index */
+Jbig2Image *jbig2_sd_glyph(Jbig2SymbolDict *dict, unsigned int id);
+
+/* return a new empty symbol dict */
+Jbig2SymbolDict *jbig2_sd_new(Jbig2Ctx *ctx, uint32_t n_symbols);
+
+/* release the memory associated with a symbol dict */
+void jbig2_sd_release(Jbig2Ctx *ctx, Jbig2SymbolDict *dict);
+
+/* generate a new symbol dictionary by concatenating a list of
+   existing dictionaries */
+Jbig2SymbolDict *jbig2_sd_cat(Jbig2Ctx *ctx, uint32_t n_dicts, Jbig2SymbolDict **dicts);
+
+/* count the number of dictionary segments referred
+   to by the given segment */
+uint32_t jbig2_sd_count_referred(Jbig2Ctx *ctx, Jbig2Segment *segment);
+
+/* return an array of pointers to symbol dictionaries referred
+   to by a segment */
+Jbig2SymbolDict **jbig2_sd_list_referred(Jbig2Ctx *ctx, Jbig2Segment *segment);
+
+#endif /* _JBIG2_SYMBOL_DICT_H */