33 #define LZW_MAXBITS 12
34 #define LZW_SIZTABLE (1<<LZW_MAXBITS)
36 static const uint16_t
mask[17] =
38 0x0000, 0x0001, 0x0003, 0x0007,
39 0x000F, 0x001F, 0x003F, 0x007F,
40 0x00FF, 0x01FF, 0x03FF, 0x07FF,
41 0x0FFF, 0x1FFF, 0x3FFF, 0x7FFF, 0xFFFF
175 int l, c, code,
oc,
fc;
188 while (sp > s->
stack) {
204 if (code == s->
slot && fc>=0) {
207 }
else if(code >= s->
slot)
int ff_lzw_decode(LZWState *p, uint8_t *buf, int len)
Decode given number of bytes NOTE: the algorithm here is inspired from the LZW GIF decoder written by...
void * av_mallocz(size_t size)
Allocate a block of size bytes with alignment suitable for all memory accesses (including vectors if ...
void ff_lzw_decode_tail(LZWState *p)
int cursize
The current code size.
uint16_t prefix[LZW_SIZTABLE]
av_cold void ff_lzw_decode_close(LZWState **p)
av_cold void ff_lzw_decode_open(LZWState **p)
uint8_t suffix[LZW_SIZTABLE]
int top_slot
Highest code for current size.
void av_freep(void *arg)
Free a memory block which has been allocated with av_malloc(z)() or av_realloc() and set the pointer ...
uint8_t stack[LZW_SIZTABLE]
int newcodes
First available code.
const uint8_t * ff_lzw_cur_ptr(LZWState *p)
static const uint16_t mask[17]
int bs
current buffer size for GIF
static int lzw_get_code(struct LZWState *s)
int ff_lzw_decode_init(LZWState *p, int csize, const uint8_t *buf, int buf_size, int mode)
Initialize LZW decoder.