avcodec/rl: Improve documentation of ff_rl_init/ff_rl_init_vlc

In particular, document that they initialize different parts of an
RLTable and therefore need not be synchronized.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
This commit is contained in:
Andreas Rheinhardt 2021-01-27 17:21:01 +01:00 committed by Andreas Rheinhardt
parent 03008c2811
commit b30851c872
1 changed files with 15 additions and 0 deletions

View File

@ -49,10 +49,25 @@ typedef struct RLTable {
} RLTable;
/**
* Initialize index_run, max_level and max_run from n, last, table_vlc,
* table_run and table_level.
* @param static_store static 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.
*/
void ff_rl_init(RLTable *rl, uint8_t static_store[2][2*MAX_RUN + MAX_LEVEL + 3]);
/**
* 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.
*/
void ff_rl_init_vlc(RLTable *rl, unsigned static_size);
#define INIT_VLC_RL(rl, static_size)\