libwebsockets
Lightweight C library for HTML5 websockets
Toggle main menu visibility
Loading...
Searching...
No Matches
lws-upng.h
Go to the documentation of this file.
1
/*
2
* uPNG -- derived from LodePNG version 20100808
3
*
4
* Copyright (c) 2005-2010 Lode Vandevenne
5
* Copyright (c) 2010 Sean Middleditch
6
* Copyright (c) 2021-2022 Andy Green <andy@warmcat.com>
7
*
8
* This software is provided 'as-is', without any express or implied
9
* warranty. In no event will the authors be held liable for any damages
10
* arising from the use of this software.
11
12
* Permission is granted to anyone to use this software for any purpose,
13
* including commercial applications, and to alter it and redistribute it
14
* freely, subject to the following restrictions:
15
*
16
* 1. The origin of this software must not be misrepresented; you must not
17
* claim that you wrote the original software. If you use this software
18
* in a product, an acknowledgment in the product documentation would be
19
* appreciated but is not required.
20
*
21
* 2. Altered source versions must be plainly marked as such, and must not be
22
* misrepresented as being the original software.
23
*
24
* 3. This notice may not be removed or altered from any source
25
* distribution.
26
*
27
* The above notice is the ZLIB license, libpng also uses it.
28
*
29
* This version is based on upng project's fork of lodepng and rewritten for
30
* lws, changing the whole approach to decode on demand to issue a line of
31
* output at a time, statefully.
32
*/
33
34
typedef
enum
lws_upng_format_t
{
35
LWS_UPNG_BADFORMAT
,
36
LWS_UPNG_RGB8
,
37
LWS_UPNG_RGB16
,
38
LWS_UPNG_RGBA8
,
39
LWS_UPNG_RGBA16
,
40
LWS_UPNG_LUMINANCE1
,
41
LWS_UPNG_LUMINANCE2
,
42
LWS_UPNG_LUMINANCE4
,
43
LWS_UPNG_LUMINANCE8
,
44
LWS_UPNG_LUMINANCE_ALPHA1
,
45
LWS_UPNG_LUMINANCE_ALPHA2
,
46
LWS_UPNG_LUMINANCE_ALPHA4
,
47
LWS_UPNG_LUMINANCE_ALPHA8
48
}
lws_upng_format_t
;
49
50
struct
inflator_ctx;
51
typedef
struct
lws_upng_t
lws_upng_t
;
52
59
LWS_VISIBLE
LWS_EXTERN
lws_upng_t
*
60
lws_upng_new
(
void
);
61
69
LWS_VISIBLE
LWS_EXTERN
void
70
lws_upng_free
(
lws_upng_t
**upng);
71
100
LWS_VISIBLE
LWS_EXTERN
lws_stateful_ret_t
101
lws_upng_emit_next_line
(
lws_upng_t
*upng,
const
uint8_t
**ppix,
102
const
uint8_t
**buf,
size_t
*size,
103
char
hold_at_metadata);
104
105
LWS_VISIBLE
LWS_EXTERN
unsigned
int
106
lws_upng_get_width
(
const
lws_upng_t
*upng);
107
LWS_VISIBLE
LWS_EXTERN
unsigned
int
108
lws_upng_get_height
(
const
lws_upng_t
*upng);
109
LWS_VISIBLE
LWS_EXTERN
unsigned
int
110
lws_upng_get_bpp
(
const
lws_upng_t
*upng);
111
LWS_VISIBLE
LWS_EXTERN
unsigned
int
112
lws_upng_get_bitdepth
(
const
lws_upng_t
*upng);
113
LWS_VISIBLE
LWS_EXTERN
unsigned
int
114
lws_upng_get_components
(
const
lws_upng_t
*upng);
115
LWS_VISIBLE
LWS_EXTERN
unsigned
int
116
lws_upng_get_pixelsize
(
const
lws_upng_t
*upng);
117
LWS_VISIBLE
LWS_EXTERN
lws_upng_format_t
118
lws_upng_get_format
(
const
lws_upng_t
*upng);
119
130
LWS_VISIBLE
LWS_EXTERN
struct
inflator_ctx *
131
lws_upng_inflator_create
(
const
uint8_t
**outring,
size_t
*outringlen,
132
size_t
**opl,
size_t
**cl);
133
149
LWS_VISIBLE
LWS_EXTERN
lws_stateful_ret_t
150
lws_upng_inflate_data
(
struct
inflator_ctx *inf,
const
void
*buf,
size_t
len);
151
159
LWS_VISIBLE
LWS_EXTERN
void
160
lws_upng_inflator_destroy
(
struct
inflator_ctx **inf);
LWS_EXTERN
#define LWS_EXTERN
Definition
libwebsockets.h:296
uint8_t
unsigned char uint8_t
Definition
libwebsockets.h:715
lws_stateful_ret_t
lws_stateful_ret_t
Definition
libwebsockets.h:764
LWS_VISIBLE
#define LWS_VISIBLE
Definition
libwebsockets.h:291
lws_upng_get_format
LWS_VISIBLE LWS_EXTERN lws_upng_format_t lws_upng_get_format(const lws_upng_t *upng)
lws_upng_new
LWS_VISIBLE LWS_EXTERN lws_upng_t * lws_upng_new(void)
lws_upng_get_width
LWS_VISIBLE LWS_EXTERN unsigned int lws_upng_get_width(const lws_upng_t *upng)
lws_upng_get_height
LWS_VISIBLE LWS_EXTERN unsigned int lws_upng_get_height(const lws_upng_t *upng)
lws_upng_get_pixelsize
LWS_VISIBLE LWS_EXTERN unsigned int lws_upng_get_pixelsize(const lws_upng_t *upng)
lws_upng_get_bitdepth
LWS_VISIBLE LWS_EXTERN unsigned int lws_upng_get_bitdepth(const lws_upng_t *upng)
lws_upng_format_t
lws_upng_format_t
Definition
lws-upng.h:34
LWS_UPNG_LUMINANCE8
@ LWS_UPNG_LUMINANCE8
Definition
lws-upng.h:43
LWS_UPNG_RGBA16
@ LWS_UPNG_RGBA16
Definition
lws-upng.h:39
LWS_UPNG_RGBA8
@ LWS_UPNG_RGBA8
Definition
lws-upng.h:38
LWS_UPNG_LUMINANCE2
@ LWS_UPNG_LUMINANCE2
Definition
lws-upng.h:41
LWS_UPNG_RGB16
@ LWS_UPNG_RGB16
Definition
lws-upng.h:37
LWS_UPNG_LUMINANCE4
@ LWS_UPNG_LUMINANCE4
Definition
lws-upng.h:42
LWS_UPNG_LUMINANCE_ALPHA8
@ LWS_UPNG_LUMINANCE_ALPHA8
Definition
lws-upng.h:47
LWS_UPNG_LUMINANCE_ALPHA4
@ LWS_UPNG_LUMINANCE_ALPHA4
Definition
lws-upng.h:46
LWS_UPNG_RGB8
@ LWS_UPNG_RGB8
Definition
lws-upng.h:36
LWS_UPNG_LUMINANCE1
@ LWS_UPNG_LUMINANCE1
Definition
lws-upng.h:40
LWS_UPNG_BADFORMAT
@ LWS_UPNG_BADFORMAT
Definition
lws-upng.h:35
LWS_UPNG_LUMINANCE_ALPHA1
@ LWS_UPNG_LUMINANCE_ALPHA1
Definition
lws-upng.h:44
LWS_UPNG_LUMINANCE_ALPHA2
@ LWS_UPNG_LUMINANCE_ALPHA2
Definition
lws-upng.h:45
lws_upng_emit_next_line
LWS_VISIBLE LWS_EXTERN lws_stateful_ret_t lws_upng_emit_next_line(lws_upng_t *upng, const uint8_t **ppix, const uint8_t **buf, size_t *size, char hold_at_metadata)
lws_upng_t
struct lws_upng_t lws_upng_t
Definition
lws-upng.h:51
lws_upng_inflator_destroy
LWS_VISIBLE LWS_EXTERN void lws_upng_inflator_destroy(struct inflator_ctx **inf)
lws_upng_get_components
LWS_VISIBLE LWS_EXTERN unsigned int lws_upng_get_components(const lws_upng_t *upng)
lws_upng_inflate_data
LWS_VISIBLE LWS_EXTERN lws_stateful_ret_t lws_upng_inflate_data(struct inflator_ctx *inf, const void *buf, size_t len)
lws_upng_inflator_create
LWS_VISIBLE LWS_EXTERN struct inflator_ctx * lws_upng_inflator_create(const uint8_t **outring, size_t *outringlen, size_t **opl, size_t **cl)
lws_upng_get_bpp
LWS_VISIBLE LWS_EXTERN unsigned int lws_upng_get_bpp(const lws_upng_t *upng)
lws_upng_free
LWS_VISIBLE LWS_EXTERN void lws_upng_free(lws_upng_t **upng)
include
libwebsockets
lws-upng.h
Generated on
for libwebsockets by
1.18.0