FFmpeg
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures | Macros | Functions
lzo.c File Reference
#include <string.h>
#include "avutil.h"
#include "common.h"
#include "intreadwrite.h"
#include "lzo.h"

Go to the source code of this file.

Data Structures

struct  LZOContext
 

Macros

#define OUTBUF_PADDED   1
 Define if we may write up to 12 bytes beyond the output buffer.
 
#define INBUF_PADDED   1
 Define if we may read up to 8 bytes beyond the input buffer.
 
#define GETB(c)   (*(c).in++)
 

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 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.
 

Macro Definition Documentation

#define OUTBUF_PADDED   1

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

Definition at line 30 of file lzo.c.

#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 GETB (   c)    (*(c).in++)

Definition at line 53 of file lzo.c.

Referenced by av_lzo1x_decode().

Function Documentation

static int get_byte ( LZOContext c)
inlinestatic

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

Returns
byte read

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

Referenced by av_lzo1x_decode().

static void copy ( LZOContext c,
int  cnt 
)
inlinestatic
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, must be > 0
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 111 of file lzo.c.

Referenced by av_lzo1x_decode().