annotate rl.h @ 4667:b3f099adfb36 libavcodec

move RLTable stuff to its own header
author michael
date Wed, 14 Mar 2007 12:29:32 +0000
parents mpegvideo.h@a9f4d5c92218
children 1f1a0e67b961
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1106
1e39f273ecd6 per file doxy
michaelni
parents: 1098
diff changeset
1 /**
4667
b3f099adfb36 move RLTable stuff to its own header
michael
parents: 4327
diff changeset
2 * @file rl.h
b3f099adfb36 move RLTable stuff to its own header
michael
parents: 4327
diff changeset
3 * rl header.
1106
1e39f273ecd6 per file doxy
michaelni
parents: 1098
diff changeset
4 */
2967
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2805
diff changeset
5
4667
b3f099adfb36 move RLTable stuff to its own header
michael
parents: 4327
diff changeset
6 #ifndef AVCODEC_RL_H
b3f099adfb36 move RLTable stuff to its own header
michael
parents: 4327
diff changeset
7 #define AVCODEC_RL_H
745
25d7fb7c89be better/cleaner error resilience (done in a 2nd pass after decoding)
michaelni
parents: 726
diff changeset
8
1110
d4096635b7b9 doxy / cosmetics
michaelni
parents: 1106
diff changeset
9 /** RLTable. */
0
986e461dc072 Initial revision
glantau
parents:
diff changeset
10 typedef struct RLTable {
2967
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2805
diff changeset
11 int n; ///< number of entries of table_vlc minus 1
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2805
diff changeset
12 int last; ///< number of values for last = 0
1064
b32afefe7d33 * UINTX -> uintx_t INTX -> intx_t
kabi
parents: 1057
diff changeset
13 const uint16_t (*table_vlc)[2];
b32afefe7d33 * UINTX -> uintx_t INTX -> intx_t
kabi
parents: 1057
diff changeset
14 const int8_t *table_run;
b32afefe7d33 * UINTX -> uintx_t INTX -> intx_t
kabi
parents: 1057
diff changeset
15 const int8_t *table_level;
2967
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2805
diff changeset
16 uint8_t *index_run[2]; ///< encoding only
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2805
diff changeset
17 int8_t *max_level[2]; ///< encoding & decoding
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2805
diff changeset
18 int8_t *max_run[2]; ///< encoding & decoding
1110
d4096635b7b9 doxy / cosmetics
michaelni
parents: 1106
diff changeset
19 VLC vlc; ///< decoding only deprected FIXME remove
2967
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2805
diff changeset
20 RL_VLC_ELEM *rl_vlc[32]; ///< decoding only
0
986e461dc072 Initial revision
glantau
parents:
diff changeset
21 } RLTable;
986e461dc072 Initial revision
glantau
parents:
diff changeset
22
2370
26560d4fdb1f Memory leak fix patch by (Burkhard Plaum <plaum >at< ipf.uni-stuttgart )dot( de>)
michael
parents: 2327
diff changeset
23 void init_rl(RLTable *rl, int use_static);
26560d4fdb1f Memory leak fix patch by (Burkhard Plaum <plaum >at< ipf.uni-stuttgart )dot( de>)
michael
parents: 2327
diff changeset
24 void init_vlc_rl(RLTable *rl, int use_static);
0
986e461dc072 Initial revision
glantau
parents:
diff changeset
25
243
a6519f773064 * using static instead of extern
kabi
parents: 239
diff changeset
26 static inline int get_rl_index(const RLTable *rl, int last, int run, int level)
0
986e461dc072 Initial revision
glantau
parents:
diff changeset
27 {
986e461dc072 Initial revision
glantau
parents:
diff changeset
28 int index;
986e461dc072 Initial revision
glantau
parents:
diff changeset
29 index = rl->index_run[last][run];
986e461dc072 Initial revision
glantau
parents:
diff changeset
30 if (index >= rl->n)
986e461dc072 Initial revision
glantau
parents:
diff changeset
31 return rl->n;
986e461dc072 Initial revision
glantau
parents:
diff changeset
32 if (level > rl->max_level[last][run])
986e461dc072 Initial revision
glantau
parents:
diff changeset
33 return rl->n;
986e461dc072 Initial revision
glantau
parents:
diff changeset
34 return index + level - 1;
986e461dc072 Initial revision
glantau
parents:
diff changeset
35 }
986e461dc072 Initial revision
glantau
parents:
diff changeset
36
3582
6310389a9688 Compile fix (for GCC<3.3) when encoders are disabled
gpoirier
parents: 3312
diff changeset
37 #endif