31 #define OUTBUF_PADDED 1 33 #define INBUF_PADDED 1 54 #define GETB(c) (*(c).in++) 56 #define GETB(c) get_byte(&(c)) 70 if (cnt >= INT_MAX - 1000) {
90 if (cnt > c->
in_end - src) {
98 #if defined(INBUF_PADDED) && defined(OUTBUF_PADDED) 105 memcpy(dst, src, cnt);
139 if (*outlen <= 0 || *inlen <= 0) {
166 back = (
GETB(c) << 3) + ((x >> 2) & 7) + 1;
170 back = (
GETB(c) << 6) + (x >> 2) + 1;
173 back = (1 << 14) + ((x & 8) << 11);
175 back += (
GETB(c) << 6) + (x >> 2);
176 if (back == (1 << 14)) {
189 back = (1 << 11) + (
GETB(c) << 2) + (x >> 2) + 1;
192 back = (
GETB(c) << 2) + (x >> 2) + 1;
#define AV_LZO_ERROR
a non-specific error in the compressed bitstream
static int get_len(LZOContext *c, int x, int mask)
Decodes a length value in the coding used by lzo.
Convenience header that includes libavutil's core.
#define AV_LZO_OUTPUT_FULL
decoded data did not fit into output buffer
#define av_assert0(cond)
assert() equivalent, that is always enabled.
void av_memcpy_backptr(uint8_t *dst, int back, int cnt)
Overlapping memcpy() implementation.
static void copy(LZOContext *c, int cnt)
Copies bytes from input to output buffer with checking.
static const uint16_t mask[17]
simple assert() macros that are a bit more flexible than ISO C assert().
static void copy_backptr(LZOContext *c, int back, int cnt)
Copies previously decoded bytes to current position.
int av_lzo1x_decode(void *out, int *outlen, const void *in, int *inlen)
Decodes LZO 1x compressed data.
#define AV_LZO_INPUT_DEPLETED
end of the input buffer reached before decoding finished
common internal and external API header
#define AV_LZO_INVALID_BACKPTR
a reference to previously decoded data was wrong
static int get_byte(LZOContext *c)
Reads one byte from the input buffer, avoiding an overrun.