FFmpeg
Loading...
Searching...
No Matches
rl.h File Reference

rl header. More...

#include <stdint.h>
#include "vlc.h"

Go to the source code of this file.

Data Structures

struct  RLTable
 RLTable. More...
 

Macros

#define MAX_RUN   64
 
#define MAX_LEVEL   64
 
#define VLC_INIT_RL(rl, static_size)
 
#define INIT_FIRST_VLC_RL(rl, static_size)
 

Functions

void ff_rl_init_level_run (uint8_t max_level[MAX_LEVEL+1], uint8_t index_run[MAX_RUN+1], const uint8_t table_run[], const uint8_t table_level[], int n)
 Initialize max_level and index_run from table_run and table_level; this is equivalent to initializing RLTable.max_level[0] and RLTable.index_run[0] with ff_rl_init().
 
void ff_rl_init (RLTable *rl, uint8_t static_store[2][2 *MAX_RUN+MAX_LEVEL+3])
 Initialize index_run, max_level and max_run from n, last, table_vlc, table_run and table_level.
 
void ff_rl_init_vlc (RLTable *rl, unsigned static_size)
 Initialize rl_vlc from n, last, table_vlc, table_run and table_level.
 
static int get_rl_index (const RLTable *rl, int last, int run, int level)
 

Detailed Description

rl header.

Definition in file rl.h.

Macro Definition Documentation

◆ MAX_RUN

◆ MAX_LEVEL

◆ VLC_INIT_RL

#define VLC_INIT_RL ( rl,
static_size )
Value:
{\
static RL_VLC_ELEM rl_vlc_table[32][static_size];\
\
for (int q = 0; q < 32; q++) \
rl.rl_vlc[q] = rl_vlc_table[q]; \
\
ff_rl_init_vlc(&rl, static_size); \
}
VLCElem RL_VLC_ELEM
Definition vlc.h:48

Definition at line 83 of file rl.h.

Referenced by h263_decode_init_vlc(), and msmpeg4_decode_init_static().

◆ INIT_FIRST_VLC_RL

#define INIT_FIRST_VLC_RL ( rl,
static_size )
Value:
do { \
static RL_VLC_ELEM rl_vlc_table[static_size]; \
\
rl.rl_vlc[0] = rl_vlc_table; \
ff_rl_init_vlc(&rl, static_size); \
} while (0)

Definition at line 93 of file rl.h.

Referenced by h261_decode_init_static(), h263_decode_init_vlc(), and msmpeg4_decode_init_static().

Function Documentation

◆ ff_rl_init_level_run()

void ff_rl_init_level_run ( uint8_t max_level[MAX_LEVEL+1],
uint8_t index_run[MAX_RUN+1],
const uint8_t table_run[],
const uint8_t table_level[],
int n )

Initialize max_level and index_run from table_run and table_level; this is equivalent to initializing RLTable.max_level[0] and RLTable.index_run[0] with ff_rl_init().

Definition at line 26 of file rl.c.

Referenced by speedhq_init_static_data().

◆ ff_rl_init()

void ff_rl_init ( RLTable * rl,
uint8_t static_store[2][2 *MAX_RUN+MAX_LEVEL+3] )

Initialize index_run, max_level and max_run from n, last, table_vlc, table_run and table_level.

Parameters
static_storestatic uint8_t array[2][2*MAX_RUN + MAX_LEVEL + 3] to hold the level and run tables.
Note
This function does not touch rl_vlc at all, hence there is no need to synchronize calls to ff_rl_init() and ff_rl_init_vlc() using the same RLTable.

Definition at line 43 of file rl.c.

Referenced by h263_encode_init_static(), and msmpeg4_common_init_static().

◆ ff_rl_init_vlc()

void ff_rl_init_vlc ( RLTable * rl,
unsigned static_size )

Initialize rl_vlc from n, last, table_vlc, table_run and table_level.

All rl_vlc pointers to be initialized must already point to a static buffer of static_size RL_VLC_ELEM elements; if a pointer is NULL, initializing further VLCs stops.

Note
This function does not touch what ff_rl_init() initializes at all, hence there is no need to synchronize calls to ff_rl_init() and ff_rl_init_vlc() using the same RLTable.

Definition at line 78 of file rl.c.

◆ get_rl_index()

static int get_rl_index ( const RLTable * rl,
int last,
int run,
int level )
inlinestatic

Definition at line 101 of file rl.h.

Referenced by ff_msmpeg4_encode_block(), and get_size_of_code().