Mercurial > libavcodec.hg
changeset 4667:b3f099adfb36 libavcodec
move RLTable stuff to its own header
author | michael |
---|---|
date | Wed, 14 Mar 2007 12:29:32 +0000 |
parents | c43d2a68ec57 |
children | 1f1a0e67b961 |
files | mpegvideo.h rl.h |
diffstat | 2 files changed, 38 insertions(+), 28 deletions(-) [+] |
line wrap: on
line diff
--- a/mpegvideo.h Wed Mar 14 12:15:34 2007 +0000 +++ b/mpegvideo.h Wed Mar 14 12:29:32 2007 +0000 @@ -782,34 +782,7 @@ void ff_mpeg1_encode_slice_header(MpegEncContext *s); void ff_mpeg1_clean_buffers(MpegEncContext *s); - -/** RLTable. */ -typedef struct RLTable { - int n; ///< number of entries of table_vlc minus 1 - int last; ///< number of values for last = 0 - const uint16_t (*table_vlc)[2]; - const int8_t *table_run; - const int8_t *table_level; - uint8_t *index_run[2]; ///< encoding only - int8_t *max_level[2]; ///< encoding & decoding - int8_t *max_run[2]; ///< encoding & decoding - VLC vlc; ///< decoding only deprected FIXME remove - RL_VLC_ELEM *rl_vlc[32]; ///< decoding only -} RLTable; - -void init_rl(RLTable *rl, int use_static); -void init_vlc_rl(RLTable *rl, int use_static); - -static inline int get_rl_index(const RLTable *rl, int last, int run, int level) -{ - int index; - index = rl->index_run[last][run]; - if (index >= rl->n) - return rl->n; - if (level > rl->max_level[last][run]) - return rl->n; - return index + level - 1; -} +#include "rl.h" extern const uint8_t ff_mpeg4_y_dc_scale_table[32]; extern const uint8_t ff_mpeg4_c_dc_scale_table[32];
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/rl.h Wed Mar 14 12:29:32 2007 +0000 @@ -0,0 +1,37 @@ +/** + * @file rl.h + * rl header. + */ + +#ifndef AVCODEC_RL_H +#define AVCODEC_RL_H + +/** RLTable. */ +typedef struct RLTable { + int n; ///< number of entries of table_vlc minus 1 + int last; ///< number of values for last = 0 + const uint16_t (*table_vlc)[2]; + const int8_t *table_run; + const int8_t *table_level; + uint8_t *index_run[2]; ///< encoding only + int8_t *max_level[2]; ///< encoding & decoding + int8_t *max_run[2]; ///< encoding & decoding + VLC vlc; ///< decoding only deprected FIXME remove + RL_VLC_ELEM *rl_vlc[32]; ///< decoding only +} RLTable; + +void init_rl(RLTable *rl, int use_static); +void init_vlc_rl(RLTable *rl, int use_static); + +static inline int get_rl_index(const RLTable *rl, int last, int run, int level) +{ + int index; + index = rl->index_run[last][run]; + if (index >= rl->n) + return rl->n; + if (level > rl->max_level[last][run]) + return rl->n; + return index + level - 1; +} + +#endif