annotate rl.h @ 6024:151508a72dd7 libavcodec

Add 'l' suffix where it is necessary because type can not always be inferred from arguments. Fixes compilation with Intel compiler
author reimar
date Sat, 15 Dec 2007 23:08:15 +0000
parents 1d83e9c34641
children 42fc209231cb
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
5270
5e6d44208f91 Add standard licensing header to files that lack it.
diego
parents: 5269
diff changeset
1 /*
5e6d44208f91 Add standard licensing header to files that lack it.
diego
parents: 5269
diff changeset
2 * Copyright (c) 2000-2002 Fabrice Bellard
5e6d44208f91 Add standard licensing header to files that lack it.
diego
parents: 5269
diff changeset
3 * Copyright (c) 2002-2004 Michael Niedermayer
5e6d44208f91 Add standard licensing header to files that lack it.
diego
parents: 5269
diff changeset
4 *
5e6d44208f91 Add standard licensing header to files that lack it.
diego
parents: 5269
diff changeset
5 * This file is part of FFmpeg.
5e6d44208f91 Add standard licensing header to files that lack it.
diego
parents: 5269
diff changeset
6 *
5e6d44208f91 Add standard licensing header to files that lack it.
diego
parents: 5269
diff changeset
7 * FFmpeg is free software; you can redistribute it and/or
5e6d44208f91 Add standard licensing header to files that lack it.
diego
parents: 5269
diff changeset
8 * modify it under the terms of the GNU Lesser General Public
5e6d44208f91 Add standard licensing header to files that lack it.
diego
parents: 5269
diff changeset
9 * License as published by the Free Software Foundation; either
5e6d44208f91 Add standard licensing header to files that lack it.
diego
parents: 5269
diff changeset
10 * version 2.1 of the License, or (at your option) any later version.
5e6d44208f91 Add standard licensing header to files that lack it.
diego
parents: 5269
diff changeset
11 *
5e6d44208f91 Add standard licensing header to files that lack it.
diego
parents: 5269
diff changeset
12 * FFmpeg is distributed in the hope that it will be useful,
5e6d44208f91 Add standard licensing header to files that lack it.
diego
parents: 5269
diff changeset
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
5e6d44208f91 Add standard licensing header to files that lack it.
diego
parents: 5269
diff changeset
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
5e6d44208f91 Add standard licensing header to files that lack it.
diego
parents: 5269
diff changeset
15 * Lesser General Public License for more details.
5e6d44208f91 Add standard licensing header to files that lack it.
diego
parents: 5269
diff changeset
16 *
5e6d44208f91 Add standard licensing header to files that lack it.
diego
parents: 5269
diff changeset
17 * You should have received a copy of the GNU Lesser General Public
5e6d44208f91 Add standard licensing header to files that lack it.
diego
parents: 5269
diff changeset
18 * License along with FFmpeg; if not, write to the Free Software
5e6d44208f91 Add standard licensing header to files that lack it.
diego
parents: 5269
diff changeset
19 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
5e6d44208f91 Add standard licensing header to files that lack it.
diego
parents: 5269
diff changeset
20 */
5e6d44208f91 Add standard licensing header to files that lack it.
diego
parents: 5269
diff changeset
21
1106
1e39f273ecd6 per file doxy
michaelni
parents: 1098
diff changeset
22 /**
4667
b3f099adfb36 move RLTable stuff to its own header
michael
parents: 4327
diff changeset
23 * @file rl.h
b3f099adfb36 move RLTable stuff to its own header
michael
parents: 4327
diff changeset
24 * rl header.
1106
1e39f273ecd6 per file doxy
michaelni
parents: 1098
diff changeset
25 */
2967
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2805
diff changeset
26
5830
1d83e9c34641 Add FFMPEG_ prefix to all multiple inclusion guards.
diego
parents: 5270
diff changeset
27 #ifndef FFMPEG_RL_H
1d83e9c34641 Add FFMPEG_ prefix to all multiple inclusion guards.
diego
parents: 5270
diff changeset
28 #define FFMPEG_RL_H
745
25d7fb7c89be better/cleaner error resilience (done in a 2nd pass after decoding)
michaelni
parents: 726
diff changeset
29
5162
4394344397d8 include all prerequisites in header files
mru
parents: 4668
diff changeset
30 #include <stdint.h>
4394344397d8 include all prerequisites in header files
mru
parents: 4668
diff changeset
31 #include "bitstream.h"
4394344397d8 include all prerequisites in header files
mru
parents: 4668
diff changeset
32 #include "mpegvideo.h"
4394344397d8 include all prerequisites in header files
mru
parents: 4668
diff changeset
33
1110
d4096635b7b9 doxy / cosmetics
michaelni
parents: 1106
diff changeset
34 /** RLTable. */
0
986e461dc072 Initial revision
glantau
parents:
diff changeset
35 typedef struct RLTable {
2967
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2805
diff changeset
36 int n; ///< number of entries of table_vlc minus 1
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2805
diff changeset
37 int last; ///< number of values for last = 0
1064
b32afefe7d33 * UINTX -> uintx_t INTX -> intx_t
kabi
parents: 1057
diff changeset
38 const uint16_t (*table_vlc)[2];
b32afefe7d33 * UINTX -> uintx_t INTX -> intx_t
kabi
parents: 1057
diff changeset
39 const int8_t *table_run;
b32afefe7d33 * UINTX -> uintx_t INTX -> intx_t
kabi
parents: 1057
diff changeset
40 const int8_t *table_level;
2967
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2805
diff changeset
41 uint8_t *index_run[2]; ///< encoding only
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2805
diff changeset
42 int8_t *max_level[2]; ///< encoding & decoding
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2805
diff changeset
43 int8_t *max_run[2]; ///< encoding & decoding
5269
e0e53ab5a77a cosmetics: typo
diego
parents: 5162
diff changeset
44 VLC vlc; ///< decoding only deprecated FIXME remove
2967
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2805
diff changeset
45 RL_VLC_ELEM *rl_vlc[32]; ///< decoding only
0
986e461dc072 Initial revision
glantau
parents:
diff changeset
46 } RLTable;
986e461dc072 Initial revision
glantau
parents:
diff changeset
47
4668
1f1a0e67b961 kill av_mallocz_static() calls in init_rl()
michael
parents: 4667
diff changeset
48 /**
1f1a0e67b961 kill av_mallocz_static() calls in init_rl()
michael
parents: 4667
diff changeset
49 *
1f1a0e67b961 kill av_mallocz_static() calls in init_rl()
michael
parents: 4667
diff changeset
50 * @param static_store static uint8_t array[2][2*MAX_RUN + MAX_LEVEL + 3] which will hold
1f1a0e67b961 kill av_mallocz_static() calls in init_rl()
michael
parents: 4667
diff changeset
51 * the level and run tables, if this is NULL av_malloc() will be used
1f1a0e67b961 kill av_mallocz_static() calls in init_rl()
michael
parents: 4667
diff changeset
52 */
1f1a0e67b961 kill av_mallocz_static() calls in init_rl()
michael
parents: 4667
diff changeset
53 void init_rl(RLTable *rl, uint8_t static_store[2][2*MAX_RUN + MAX_LEVEL + 3]);
2370
26560d4fdb1f Memory leak fix patch by (Burkhard Plaum <plaum >at< ipf.uni-stuttgart )dot( de>)
michael
parents: 2327
diff changeset
54 void init_vlc_rl(RLTable *rl, int use_static);
0
986e461dc072 Initial revision
glantau
parents:
diff changeset
55
243
a6519f773064 * using static instead of extern
kabi
parents: 239
diff changeset
56 static inline int get_rl_index(const RLTable *rl, int last, int run, int level)
0
986e461dc072 Initial revision
glantau
parents:
diff changeset
57 {
986e461dc072 Initial revision
glantau
parents:
diff changeset
58 int index;
986e461dc072 Initial revision
glantau
parents:
diff changeset
59 index = rl->index_run[last][run];
986e461dc072 Initial revision
glantau
parents:
diff changeset
60 if (index >= rl->n)
986e461dc072 Initial revision
glantau
parents:
diff changeset
61 return rl->n;
986e461dc072 Initial revision
glantau
parents:
diff changeset
62 if (level > rl->max_level[last][run])
986e461dc072 Initial revision
glantau
parents:
diff changeset
63 return rl->n;
986e461dc072 Initial revision
glantau
parents:
diff changeset
64 return index + level - 1;
986e461dc072 Initial revision
glantau
parents:
diff changeset
65 }
986e461dc072 Initial revision
glantau
parents:
diff changeset
66
5830
1d83e9c34641 Add FFMPEG_ prefix to all multiple inclusion guards.
diego
parents: 5270
diff changeset
67 #endif /* FFMPEG_RL_H */