rle.c File Reference
#include "avcodec.h"
#include "rle.h"
#include "libavutil/common.h"
Include dependency graph for rle.c:

Go to the source code of this file.

Functions

static int count_pixels (const uint8_t *start, int len, int bpp, int same)
 Count up to 127 consecutive pixels which are either all the same or all differ from the previous and next pixels. More...
 
int ff_rle_encode (uint8_t *outbuf, int out_size, const uint8_t *ptr, int bpp, int w, int add_rep, int xor_rep, int add_raw, int xor_raw)
 RLE compress the row, with maximum size of out_size. More...
 

Function Documentation

static int count_pixels ( const uint8_t start,
int  len,
int  bpp,
int  same 
)
static

Count up to 127 consecutive pixels which are either all the same or all differ from the previous and next pixels.

Parameters
startPointer to the first pixel
lenMaximum number of pixels
bppBytes per pixel
same1 if searching for identical pixel values. 0 for differing
Returns
Number of matching consecutive pixels found

Definition at line 34 of file rle.c.

Referenced by ff_rle_encode().

int ff_rle_encode ( uint8_t outbuf,
int  out_size,
const uint8_t inbuf,
int  bpp,
int  w,
int  add_rep,
int  xor_rep,
int  add_raw,
int  xor_raw 
)

RLE compress the row, with maximum size of out_size.

Value before repeated bytes is (count ^ xor_rep) + add_rep. Value before raw bytes is (count ^ xor_raw) + add_raw.

Parameters
outbufOutput buffer
out_sizeMaximum output size
inbufInput buffer
bppBytes per pixel
wImage width
Returns
Size of output in bytes, or -1 if larger than out_size

Definition at line 58 of file rle.c.

Referenced by encode_frame(), encode_strip(), and targa_encode_rle().