XenevaOS
Loading...
Searching...
No Matches
lzw.h
Go to the documentation of this file.
1/*
2 * This file is part of NetSurf's LibNSGIF, http://www.netsurf-browser.org/
3 * Licensed under the MIT License,
4 * http://www.opensource.org/licenses/mit-license.php
5 *
6 * Copyright 2017 Michael Drake <michael.drake@codethink.co.uk>
7 * Copyright 2021 Michael Drake <tlsa@netsurf-browser.org>
8 */
9
10#ifndef LZW_H_
11#define LZW_H_
12
21#define LZW_CODE_MAX 12
22
23/* Declare lzw internal context structure */
24struct lzw_ctx;
25
38
47 struct lzw_ctx **ctx);
48
55 struct lzw_ctx *ctx);
56
69 struct lzw_ctx *ctx,
70 uint8_t minimum_code_size,
71 const uint8_t *input_data,
72 size_t input_length,
73 size_t input_pos);
74
86lzw_result lzw_decode(struct lzw_ctx *ctx,
87 const uint8_t *restrict *const restrict output_data,
88 uint32_t *restrict output_written);
89
108 struct lzw_ctx *ctx,
109 uint8_t minimum_code_size,
111 const uint32_t *colour_table,
112 const uint8_t *input_data,
113 size_t input_length,
114 size_t input_pos);
115
133 uint32_t *restrict output_data,
134 uint32_t output_length,
135 uint32_t *restrict output_written);
136
137#endif
unsigned int uint32_t
Definition acefiex.h:163
unsigned char uint8_t
Definition acefiex.h:161
lzw_result lzw_decode_map(struct lzw_ctx *ctx, uint32_t *restrict output_data, uint32_t output_length, uint32_t *restrict output_written)
Definition lzw.c:587
lzw_result lzw_decode_init(struct lzw_ctx *ctx, uint8_t minimum_code_size, const uint8_t *input_data, size_t input_length, size_t input_pos)
Definition lzw.c:259
lzw_result lzw_context_create(struct lzw_ctx **ctx)
Definition lzw.c:100
void lzw_context_destroy(struct lzw_ctx *ctx)
Definition lzw.c:112
lzw_result lzw_decode_init_map(struct lzw_ctx *ctx, uint8_t minimum_code_size, uint32_t transparency_idx, const uint32_t *colour_table, const uint8_t *input_data, size_t input_length, size_t input_pos)
Definition lzw.c:319
lzw_result
Definition lzw.h:27
@ LZW_EOI_CODE
Definition lzw.h:32
@ LZW_NO_DATA
Definition lzw.h:31
@ LZW_OK_EOD
Definition lzw.h:29
@ LZW_OK
Definition lzw.h:28
@ LZW_BAD_PARAM
Definition lzw.h:35
@ LZW_NO_COLOUR
Definition lzw.h:33
@ LZW_BAD_CODE
Definition lzw.h:36
@ LZW_NO_MEM
Definition lzw.h:30
@ LZW_BAD_ICODE
Definition lzw.h:34
lzw_result lzw_decode(struct lzw_ctx *ctx, const uint8_t *restrict *const restrict output_data, uint32_t *restrict output_written)
Definition lzw.c:496
Definition lzw.c:68
uint8_t transparency_idx
Definition lzw.c:89