libavutil/lzo.c File Reference

#include "common.h"
#include <string.h>
#include "lzo.h"

Go to the source code of this file.

Data Structures

struct  LZOContext

Defines

#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);

Functions

static int get_byte (LZOContext *c)
 read one byte from input buffer, avoiding overrun
static int get_len (LZOContext *c, int x, int mask)
 decode a length value in the coding used by lzo
static void copy (LZOContext *c, int cnt)
 copy bytes from input to output buffer with checking
static void copy_backptr (LZOContext *c, int back, int cnt)
 copy previously decoded bytes to current position
int lzo1x_decode (void *out, int *outlen, const void *in, int *inlen)
 decode LZO 1x compressed data


Define Documentation

#define BUILTIN_MEMCPY

Definition at line 70 of file lzo.c.

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

Definition at line 75 of file lzo.c.

Referenced by copy_backptr().

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

Definition at line 76 of file lzo.c.

Referenced by copy().

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

Definition at line 49 of file lzo.c.

Referenced by lzo1x_decode().

#define INBUF_PADDED   1

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

Definition at line 30 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 28 of file lzo.c.


Function Documentation

static void copy ( LZOContext c,
int  cnt 
) [inline, static]

copy bytes from input to output buffer with checking

Parameters:
cnt number of bytes to copy, must be >= 0

Definition at line 86 of file lzo.c.

Referenced by lzo1x_decode(), qpeg_decode_intra(), and roq_decode_frame().

static void copy_backptr ( LZOContext c,
int  back,
int  cnt 
) [inline, static]

copy previously decoded bytes to current position

Parameters:
back how many bytes back we start
cnt number 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 117 of file lzo.c.

Referenced by lzo1x_decode().

static int get_byte ( LZOContext c  )  [inline, static]

read one byte from input buffer, avoiding overrun

Returns:
byte read

Definition at line 41 of file lzo.c.

static int get_len ( LZOContext c,
int  x,
int  mask 
) [inline, static]

decode a length value in the coding used by lzo

Parameters:
x previous byte value
mask bits used from x
Returns:
decoded length value

Definition at line 60 of file lzo.c.

Referenced by lzo1x_decode().

int lzo1x_decode ( void *  out,
int *  outlen,
const void *  in,
int *  inlen 
)

decode LZO 1x compressed data

Parameters:
out output buffer
outlen size of output buffer, number of bytes left are returned here
in input buffer
inlen size of input buffer, number of bytes left are returned here
Returns:
0 on success, otherwise error flags, see lzo.h
make sure all buffers are appropriately padded, in must provide LZO_INPUT_PADDING, out must provide LZO_OUTPUT_PADDING additional bytes

Definition at line 174 of file lzo.c.

Referenced by decode_frame().


Generated on Wed Feb 9 19:10:13 2011 for ffmpeg by  doxygen 1.5.6