FFmpeg
Functions
rl.c File Reference
#include <stdint.h>
#include <string.h>
#include "libavutil/attributes.h"
#include "libavutil/avassert.h"
#include "rl.h"

Go to the source code of this file.

Functions

av_cold 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(). More...
 
av_cold 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. More...
 
av_cold void ff_rl_init_vlc (RLTable *rl, unsigned static_size)
 Initialize rl_vlc from n, last, table_vlc, table_run and table_level. More...
 

Function Documentation

◆ ff_rl_init_level_run()

av_cold 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 27 of file rl.c.

Referenced by speedhq_init_static_data().

◆ ff_rl_init()

av_cold 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 44 of file rl.c.

Referenced by h263_encode_init_static(), h263_init_rl_inter(), mpeg4_init_rl_intra(), and msmpeg4_common_init_static().

◆ ff_rl_init_vlc()

av_cold 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 79 of file rl.c.