lzo.c File Reference
#include "avutil.h"
#include "common.h"
#include <string.h>
#include "lzo.h"

Go to the source code of this file.

Data Structures

struct  LZOContext

Macros

#define OUTBUF_PADDED   1
 Avoid e.g. MPlayers fast_memcpy, it slows things down here.
#define INBUF_PADDED   1
 Define if we may read up to 8 bytes beyond the input buffer.
#define GETB(c)   (*(c).in++)
#define BUILTIN_MEMCPY
#define COPY2(d, s)   memcpy(d, s, 2);
#define COPY4(d, s)   memcpy(d, s, 4);

Typedefs

typedef struct LZOContext LZOContext

Functions

static int get_byte (LZOContext *c)
 Reads one byte from the input buffer, avoiding an overrun.
static int get_len (LZOContext *c, int x, int mask)
 Decodes a length value in the coding used by lzo.
static void copy (LZOContext *c, int cnt)
 Copies bytes from input to output buffer with checking.
static void memcpy_backptr (uint8_t *dst, int back, int cnt)
static void copy_backptr (LZOContext *c, int back, int cnt)
 Copies previously decoded bytes to current position.
void av_memcpy_backptr (uint8_t *dst, int back, int cnt)
 deliberately overlapping memcpy implementation
int av_lzo1x_decode (void *out, int *outlen, const void *in, int *inlen)
 Decodes LZO 1x compressed data.

Macro Definition Documentation

#define BUILTIN_MEMCPY

Definition at line 72 of file lzo.c.

#define COPY2 (   d,
 
)    memcpy(d, s, 2);

Definition at line 77 of file lzo.c.

Referenced by memcpy_backptr().

#define COPY4 (   d,
 
)    memcpy(d, s, 4);

Definition at line 78 of file lzo.c.

Referenced by copy().

#define GETB (   c)    (*(c).in++)

Definition at line 51 of file lzo.c.

Referenced by av_lzo1x_decode().

#define INBUF_PADDED   1

Define if we may read up to 8 bytes beyond the input buffer.

Definition at line 32 of file lzo.c.

#define OUTBUF_PADDED   1

Avoid e.g. MPlayers fast_memcpy, it slows things down here.

Define if we may write up to 12 bytes beyond the output buffer.

Definition at line 30 of file lzo.c.

Typedef Documentation

typedef struct LZOContext LZOContext

Function Documentation

static void copy ( LZOContext c,
int  cnt 
)
inlinestatic

Copies bytes from input to output buffer with checking.

Parameters
cntnumber of bytes to copy, must be >= 0

Definition at line 88 of file lzo.c.

Referenced by av_lzo1x_decode(), avfilter_register_all(), frame_thread_init(), intra_predict(), qpeg_decode_intra(), roq_decode_frame(), and rtmp_write().

static void copy_backptr ( LZOContext c,
int  back,
int  cnt 
)
inlinestatic

Copies previously decoded bytes to current position.

Parameters
backhow many bytes back we start
cntnumber of bytes to copy, must be > 0

cnt > back is valid, this will copy the bytes we just copied, thus creating a repeating pattern with a period length of back.

Definition at line 125 of file lzo.c.

Referenced by av_lzo1x_decode().

static int get_byte ( LZOContext c)
inlinestatic

Reads one byte from the input buffer, avoiding an overrun.

Returns
byte read

Definition at line 43 of file lzo.c.

Referenced by get_len().

static int get_len ( LZOContext c,
int  x,
int  mask 
)
inlinestatic

Decodes a length value in the coding used by lzo.

Parameters
xprevious byte value
maskbits used from x
Returns
decoded length value

Definition at line 62 of file lzo.c.

Referenced by av_lzo1x_decode().

static void memcpy_backptr ( uint8_t *  dst,
int  back,
int  cnt 
)
inlinestatic

Definition at line 143 of file lzo.c.

Referenced by av_memcpy_backptr(), and copy_backptr().