Coverage Report

Created: 2026-07-25 07:52

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/ffmpeg/libavcodec/vlc.h
Line
Count
Source
1
/*
2
 * This file is part of FFmpeg.
3
 *
4
 * FFmpeg is free software; you can redistribute it and/or
5
 * modify it under the terms of the GNU Lesser General Public
6
 * License as published by the Free Software Foundation; either
7
 * version 2.1 of the License, or (at your option) any later version.
8
 *
9
 * FFmpeg is distributed in the hope that it will be useful,
10
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12
 * Lesser General Public License for more details.
13
 *
14
 * You should have received a copy of the GNU Lesser General Public
15
 * License along with FFmpeg; if not, write to the Free Software
16
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
17
 */
18
19
#ifndef AVCODEC_VLC_H
20
#define AVCODEC_VLC_H
21
22
#include <stddef.h>
23
#include <stdint.h>
24
25
#include "libavutil/macros.h"
26
27
113k
#define VLC_MULTI_MAX_SYMBOLS 6
28
29
// When changing this, be sure to also update tableprint_vlc.h accordingly.
30
typedef int16_t VLCBaseType;
31
32
typedef struct VLCElem {
33
    union {
34
        /// The struct is for use as ordinary VLC (with get_vlc2())
35
        struct {
36
            VLCBaseType sym;
37
            VLCBaseType len;
38
        };
39
        /// This struct is for use as run-length VLC (with GET_RL_VLC)
40
        struct {
41
            int16_t level;
42
            int8_t   len8;
43
            uint8_t   run;
44
        };
45
    };
46
} VLCElem;
47
48
typedef VLCElem RL_VLC_ELEM;
49
50
typedef struct VLC {
51
    int bits;
52
    VLCElem *table;
53
    int table_size, table_allocated;
54
} VLC;
55
56
typedef struct VLC_MULTI_ELEM {
57
    union {
58
        uint8_t   val8[VLC_MULTI_MAX_SYMBOLS];
59
        uint16_t val16[VLC_MULTI_MAX_SYMBOLS / 2];
60
    };
61
    int8_t len; // -31,32
62
    uint8_t num;
63
} VLC_MULTI_ELEM;
64
65
typedef struct VLC_MULTI {
66
    VLC_MULTI_ELEM *table;
67
    int table_size, table_allocated;
68
} VLC_MULTI;
69
70
#define vlc_init(vlc, nb_bits, nb_codes,                \
71
                 bits, bits_wrap, bits_size,            \
72
                 codes, codes_wrap, codes_size,         \
73
                 flags)                                 \
74
114k
    ff_vlc_init_sparse(vlc, nb_bits, nb_codes,          \
75
114k
                       bits, bits_wrap, bits_size,      \
76
114k
                       codes, codes_wrap, codes_size,   \
77
114k
                       NULL, 0, 0, flags)
78
79
/**
80
 * Build VLC decoding tables suitable for use with get_vlc2().
81
 *
82
 * @param[in,out] vlc      The VLC to be initialized; table and table_allocated
83
 *                         must have been set when initializing a static VLC,
84
 *                         otherwise this will be treated as uninitialized.
85
 * @param[in] nb_bits      The number of bits to use for the VLC table;
86
 *                         higher values take up more memory and cache, but
87
 *                         allow to read codes with fewer reads.
88
 *                         Corresponds to the `bits` parameter of get_vlc2().
89
 * @param[in] nb_codes     The number of provided bits, codes and (if supplied)
90
 *                         symbol entries.
91
 * @param[in] bits         The lengths (in bits) of the codes. Entries > 0
92
 *                         correspond to valid codes; entries == 0 will be skipped.
93
 * @param[in] bits_wrap    Stride (in bytes) of the bits table.
94
 * @param[in] codes_size   Size of the bits. 1, 2 and 4 are supported.
95
 * @param[in] codes        Table which gives the bit pattern of of each vlc code.
96
 * @param[in] codes_wrap   Stride (in bytes) of the codes table.
97
 * @param[in] codes_size   Size of the codes. 1, 2 and 4 are supported.
98
 * @param[in] symbols      The symbols, i.e. what is returned from get_vlc2()
99
 *                         when the corresponding code is encountered.
100
 *                         May be NULL, then 0, 1, 2, 3, 4,... will be used.
101
 * @param[in] symbols_wrap Stride (in bytes) of the symbols table.
102
 * @param[in] symbols_size Size of the symbols. 1 and 2 are supported.
103
 * @param[in] flags        A combination of the VLC_INIT_* flags.
104
 *
105
 * 'wrap' and 'size' make it possible to use any memory configuration and types
106
 * (byte/word/int) to store the 'bits', 'codes', and 'symbols' tables.
107
 */
108
int ff_vlc_init_sparse(VLC *vlc, int nb_bits, int nb_codes,
109
                       const void *bits, int bits_wrap, int bits_size,
110
                       const void *codes, int codes_wrap, int codes_size,
111
                       const void *symbols, int symbols_wrap, int symbols_size,
112
                       int flags);
113
114
/**
115
 * Build VLC decoding tables suitable for use with get_vlc2()
116
 *
117
 * This function takes lengths and symbols and calculates the codes from them.
118
 * For this the input lengths and symbols have to be sorted according to "left
119
 * nodes in the corresponding tree first".
120
 *
121
 * @param[in,out] vlc      The VLC to be initialized; table and table_allocated
122
 *                         must have been set when initializing a static VLC,
123
 *                         otherwise this will be treated as uninitialized.
124
 * @param[in] nb_bits      The number of bits to use for the VLC table;
125
 *                         higher values take up more memory and cache, but
126
 *                         allow to read codes with fewer reads.
127
 * @param[in] nb_codes     The number of provided length and (if supplied) symbol
128
 *                         entries.
129
 * @param[in] lens         The lengths of the codes. Entries > 0 correspond to
130
 *                         valid codes; entries == 0 will be skipped and entries
131
 *                         with len < 0 indicate that the tree is incomplete and
132
 *                         has an open end of length -len at this position.
133
 * @param[in] lens_wrap    Stride (in bytes) of the lengths.
134
 * @param[in] symbols      The symbols, i.e. what is returned from get_vlc2()
135
 *                         when the corresponding code is encountered.
136
 *                         May be NULL, then 0, 1, 2, 3, 4,... will be used.
137
 * @param[in] symbols_wrap Stride (in bytes) of the symbols.
138
 * @param[in] symbols_size Size of the symbols. 1 and 2 are supported.
139
 * @param[in] offset       An offset to apply to all the valid symbols.
140
 * @param[in] flags        A combination of the VLC_INIT_* flags; notice that
141
 *                         VLC_INIT_INPUT_LE is pointless and ignored.
142
 */
143
int ff_vlc_init_from_lengths(VLC *vlc, int nb_bits, int nb_codes,
144
                             const int8_t *lens, int lens_wrap,
145
                             const void *symbols, int symbols_wrap, int symbols_size,
146
                             int offset, int flags, void *logctx);
147
148
/**
149
 * Build VLC decoding tables suitable for use with get_vlc_multi()
150
 *
151
 * This function takes lengths and symbols and calculates the codes from them.
152
 * For this the input lengths and symbols have to be sorted according to "left
153
 * nodes in the corresponding tree first".
154
 *
155
 * @param[in,out] vlc      The VLC to be initialized; table and table_allocated
156
 *                         must have been set when initializing a static VLC,
157
 *                         otherwise this will be treated as uninitialized.
158
 * @param[in,out] multi    The VLC_MULTI to be initialized; table and table_allocated
159
 *                         must have been set when initializing a static VLC,
160
 *                         otherwise this will be treated as uninitialized.
161
 * @param[in] nb_bits      The number of bits to use for the VLC table;
162
 *                         higher values take up more memory and cache, but
163
 *                         allow to read codes with fewer reads.
164
 * @param[in] nb_elems     The max possible number of elements.
165
 * @param[in] nb_codes     The number of provided length and (if supplied) symbol
166
 *                         entries.
167
 * @param[in] lens         The lengths of the codes. Entries > 0 correspond to
168
 *                         valid codes; entries == 0 will be skipped and entries
169
 *                         with len < 0 indicate that the tree is incomplete and
170
 *                         has an open end of length -len at this position.
171
 * @param[in] lens_wrap    Stride (in bytes) of the lengths.
172
 * @param[in] symbols      The symbols, i.e. what is returned from get_vlc2()
173
 *                         when the corresponding code is encountered.
174
 *                         May be NULL, then 0, 1, 2, 3, 4,... will be used.
175
 * @param[in] symbols_wrap Stride (in bytes) of the symbols.
176
 * @param[in] symbols_size Size of the symbols. 1 and 2 are supported.
177
 * @param[in] offset       An offset to apply to all the valid symbols.
178
 * @param[in] flags        A combination of the VLC_INIT_* flags; notice that
179
 *                         VLC_INIT_INPUT_LE is pointless and ignored.
180
 */
181
int ff_vlc_init_multi_from_lengths(VLC *vlc, VLC_MULTI *multi, int nb_bits, int nb_elems,
182
                                   int nb_codes, const int8_t *lens, int lens_wrap,
183
                                   const void *symbols, int symbols_wrap, int symbols_size,
184
                                   int offset, int flags, void *logctx);
185
186
187
void ff_vlc_free_multi(VLC_MULTI *vlc);
188
void ff_vlc_free(VLC *vlc);
189
190
74.6M
#define VLC_INIT_USE_STATIC     1
191
4.28k
#define VLC_INIT_STATIC_OVERLONG (2 | VLC_INIT_USE_STATIC)
192
/* If VLC_INIT_INPUT_LE is set, the LSB bit of the codes used to
193
 * initialize the VLC table is the first bit to be read. */
194
211M
#define VLC_INIT_INPUT_LE       4
195
/* If set the VLC is intended for a little endian bitstream reader. */
196
872M
#define VLC_INIT_OUTPUT_LE      8
197
33.4k
#define VLC_INIT_LE             (VLC_INIT_INPUT_LE | VLC_INIT_OUTPUT_LE)
198
199
/**
200
 * For static VLCs, the number of bits can often be hardcoded
201
 * at each get_vlc2() callsite. Then using a full VLC would be uneconomical,
202
 * because only VLC.table would ever be accessed after initialization.
203
 * The following functions provide wrappers around the relevant ff_vlc_init_*
204
 * functions suitable for said task.
205
 *
206
 * The ff_vlc_init_tables_* functions are intended to be used for initializing
207
 * a series of VLCs. The user initializes a VLCInitState with the details
208
 * about the underlying array of VLCElem; it is automatically updated by
209
 * the ff_vlc_init_tables_* functions (i.e. table is incremented and size
210
 * decremented by the number of elements of the current table).
211
 * The VLC_INIT_STATIC_OVERLONG flag is also automatically added.
212
 * These functions return a pointer to the table just initialized,
213
 * potentially to be used in arrays of pointer to VLC tables.
214
 *
215
 * The ff_vlc_init_table_* functions are intended to be used for initializing
216
 * a single VLC table, given by table and table_size. The VLC_INIT_USE_STATIC
217
 * flag is automatically added.
218
 */
219
220
typedef struct VLCInitState {
221
    VLCElem *table;  ///< points to where the next VLC table will be placed
222
    unsigned size;   ///< remaining number of elements in table
223
} VLCInitState;
224
225
66
#define VLC_INIT_STATE(_table) { .table = (_table), .size = FF_ARRAY_ELEMS(_table) }
226
227
void ff_vlc_init_table_from_lengths(VLCElem table[], int table_size,
228
                                    int nb_bits, int nb_codes,
229
                                    const int8_t *lens, int lens_wrap,
230
                                    const void *symbols, int symbols_wrap, int symbols_size,
231
                                    int offset, int flags);
232
233
const VLCElem *ff_vlc_init_tables_from_lengths(VLCInitState *state,
234
                                               int nb_bits, int nb_codes,
235
                                               const int8_t *lens, int lens_wrap,
236
                                               const void *symbols, int symbols_wrap, int symbols_size,
237
                                               int offset, int flags);
238
239
void ff_vlc_init_table_sparse(VLCElem table[], int table_size,
240
                              int nb_bits, int nb_codes,
241
                              const void *bits, int bits_wrap, int bits_size,
242
                              const void *codes, int codes_wrap, int codes_size,
243
                              const void *symbols, int symbols_wrap, int symbols_size,
244
                              int flags);
245
246
const VLCElem *ff_vlc_init_tables_sparse(VLCInitState *state,
247
                                         int nb_bits, int nb_codes,
248
                                         const void *bits, int bits_wrap, int bits_size,
249
                                         const void *codes, int codes_wrap, int codes_size,
250
                                         const void *symbols, int symbols_wrap, int symbols_size,
251
                                         int flags);
252
253
static inline
254
const VLCElem *ff_vlc_init_tables(VLCInitState *state,
255
                                  int nb_bits, int nb_codes,
256
                                  const void *bits, int bits_wrap, int bits_size,
257
                                  const void *codes, int codes_wrap, int codes_size,
258
                                  int flags)
259
714
{
260
714
    return ff_vlc_init_tables_sparse(state, nb_bits, nb_codes,
261
714
                                     bits, bits_wrap, bits_size,
262
714
                                     codes, codes_wrap, codes_size,
263
714
                                     NULL, 0, 0, flags);
264
714
}
Unexecuted instantiation: ituh263enc.c:ff_vlc_init_tables
Unexecuted instantiation: mpegvideo_enc.c:ff_vlc_init_tables
Unexecuted instantiation: mpegvideo_motion.c:ff_vlc_init_tables
Unexecuted instantiation: msmpeg4enc.c:ff_vlc_init_tables
Unexecuted instantiation: rl.c:ff_vlc_init_tables
Unexecuted instantiation: rv20enc.c:ff_vlc_init_tables
Unexecuted instantiation: speedhqenc.c:ff_vlc_init_tables
Unexecuted instantiation: vlc.c:ff_vlc_init_tables
Unexecuted instantiation: wmv2dec.c:ff_vlc_init_tables
Unexecuted instantiation: aac_adtstoasc.c:ff_vlc_init_tables
Unexecuted instantiation: dovi_rpu.c:ff_vlc_init_tables
Unexecuted instantiation: dovi_split.c:ff_vlc_init_tables
Unexecuted instantiation: dts2pts.c:ff_vlc_init_tables
Unexecuted instantiation: eac3_core.c:ff_vlc_init_tables
Unexecuted instantiation: evc_frame_merge.c:ff_vlc_init_tables
Unexecuted instantiation: extract_extradata.c:ff_vlc_init_tables
Unexecuted instantiation: h264_metadata.c:ff_vlc_init_tables
Unexecuted instantiation: h264_redundant_pps.c:ff_vlc_init_tables
Unexecuted instantiation: h265_metadata.c:ff_vlc_init_tables
Unexecuted instantiation: h266_metadata.c:ff_vlc_init_tables
Unexecuted instantiation: lcevc_merge.c:ff_vlc_init_tables
Unexecuted instantiation: lcevc_metadata.c:ff_vlc_init_tables
Unexecuted instantiation: remove_extradata.c:ff_vlc_init_tables
Unexecuted instantiation: truehd_core.c:ff_vlc_init_tables
Unexecuted instantiation: vp9_raw_reorder.c:ff_vlc_init_tables
Unexecuted instantiation: vp9_superframe.c:ff_vlc_init_tables
Unexecuted instantiation: vp9_superframe_split.c:ff_vlc_init_tables
Unexecuted instantiation: cbs.c:ff_vlc_init_tables
Unexecuted instantiation: cbs_apv.c:ff_vlc_init_tables
Unexecuted instantiation: cbs_av1.c:ff_vlc_init_tables
Unexecuted instantiation: cbs_h264.c:ff_vlc_init_tables
Unexecuted instantiation: cbs_h2645.c:ff_vlc_init_tables
Unexecuted instantiation: cbs_h265.c:ff_vlc_init_tables
Unexecuted instantiation: cbs_h266.c:ff_vlc_init_tables
Unexecuted instantiation: cbs_lcevc.c:ff_vlc_init_tables
Unexecuted instantiation: cbs_mpeg2.c:ff_vlc_init_tables
Unexecuted instantiation: cbs_sei.c:ff_vlc_init_tables
Unexecuted instantiation: cbs_vp8.c:ff_vlc_init_tables
Unexecuted instantiation: cbs_vp9.c:ff_vlc_init_tables
Unexecuted instantiation: dovi_rpudec.c:ff_vlc_init_tables
Unexecuted instantiation: evc_parse.c:ff_vlc_init_tables
Unexecuted instantiation: evc_ps.c:ff_vlc_init_tables
Unexecuted instantiation: h261.c:ff_vlc_init_tables
Unexecuted instantiation: h261enc.c:ff_vlc_init_tables
Unexecuted instantiation: h263.c:ff_vlc_init_tables
Unexecuted instantiation: h263data.c:ff_vlc_init_tables
Unexecuted instantiation: h263dec.c:ff_vlc_init_tables
Unexecuted instantiation: h2645_parse.c:ff_vlc_init_tables
Unexecuted instantiation: h264_parse.c:ff_vlc_init_tables
Unexecuted instantiation: h264_ps.c:ff_vlc_init_tables
Unexecuted instantiation: h264data.c:ff_vlc_init_tables
Unexecuted instantiation: h265_profile_level.c:ff_vlc_init_tables
Unexecuted instantiation: ps.c:ff_vlc_init_tables
Unexecuted instantiation: intelh263dec.c:ff_vlc_init_tables
Unexecuted instantiation: intrax8.c:ff_vlc_init_tables
Unexecuted instantiation: ituh263dec.c:ff_vlc_init_tables
Unexecuted instantiation: mlp_parse.c:ff_vlc_init_tables
Unexecuted instantiation: mpeg12data.c:ff_vlc_init_tables
Unexecuted instantiation: mpeg12enc.c:ff_vlc_init_tables
Unexecuted instantiation: mpeg4audio.c:ff_vlc_init_tables
Unexecuted instantiation: mpeg4video.c:ff_vlc_init_tables
Unexecuted instantiation: mpeg4videodec.c:ff_vlc_init_tables
Unexecuted instantiation: mpeg4videoenc.c:ff_vlc_init_tables
Unexecuted instantiation: mpeg_er.c:ff_vlc_init_tables
Unexecuted instantiation: mpegvideo_dec.c:ff_vlc_init_tables
Unexecuted instantiation: msmpeg4.c:ff_vlc_init_tables
msmpeg4_vc1_data.c:ff_vlc_init_tables
Line
Count
Source
259
40
{
260
40
    return ff_vlc_init_tables_sparse(state, nb_bits, nb_codes,
261
40
                                     bits, bits_wrap, bits_size,
262
40
                                     codes, codes_wrap, codes_size,
263
                                     NULL, 0, 0, flags);
264
40
}
Unexecuted instantiation: msmpeg4data.c:ff_vlc_init_tables
Unexecuted instantiation: msmpeg4dec.c:ff_vlc_init_tables
Unexecuted instantiation: rv10.c:ff_vlc_init_tables
Unexecuted instantiation: ac3_parser.c:ff_vlc_init_tables
Unexecuted instantiation: adts_header.c:ff_vlc_init_tables
Unexecuted instantiation: av1_parse.c:ff_vlc_init_tables
Unexecuted instantiation: flvdec.c:ff_vlc_init_tables
Unexecuted instantiation: h261data.c:ff_vlc_init_tables
Unexecuted instantiation: h2645_vui.c:ff_vlc_init_tables
Unexecuted instantiation: tak_parser.c:ff_vlc_init_tables
Unexecuted instantiation: vc1_parser.c:ff_vlc_init_tables
Unexecuted instantiation: vorbis_parser.c:ff_vlc_init_tables
Unexecuted instantiation: vp9_parser.c:ff_vlc_init_tables
Unexecuted instantiation: vvc_parser.c:ff_vlc_init_tables
Unexecuted instantiation: aac_ac3_parser.c:ff_vlc_init_tables
Unexecuted instantiation: av1_parser.c:ff_vlc_init_tables
Unexecuted instantiation: avs2_parser.c:ff_vlc_init_tables
Unexecuted instantiation: avs3_parser.c:ff_vlc_init_tables
Unexecuted instantiation: cavs_parser.c:ff_vlc_init_tables
Unexecuted instantiation: dca_parser.c:ff_vlc_init_tables
Unexecuted instantiation: dolby_e_parser.c:ff_vlc_init_tables
Unexecuted instantiation: evc_parser.c:ff_vlc_init_tables
Unexecuted instantiation: ffv1_parser.c:ff_vlc_init_tables
Unexecuted instantiation: flac_parser.c:ff_vlc_init_tables
Unexecuted instantiation: ftr_parser.c:ff_vlc_init_tables
Unexecuted instantiation: h264_parser.c:ff_vlc_init_tables
Unexecuted instantiation: h264_sei.c:ff_vlc_init_tables
Unexecuted instantiation: h264idct.c:ff_vlc_init_tables
Unexecuted instantiation: parser.c:ff_vlc_init_tables
Unexecuted instantiation: sei.c:ff_vlc_init_tables
Unexecuted instantiation: jpegxl_parser.c:ff_vlc_init_tables
Unexecuted instantiation: jpegxs_parser.c:ff_vlc_init_tables
Unexecuted instantiation: lcevc_parser.c:ff_vlc_init_tables
Unexecuted instantiation: mlp_parser.c:ff_vlc_init_tables
Unexecuted instantiation: mpeg4video_parser.c:ff_vlc_init_tables
Unexecuted instantiation: mpegaudiodecheader.c:ff_vlc_init_tables
Unexecuted instantiation: tak.c:ff_vlc_init_tables
Unexecuted instantiation: vc1.c:ff_vlc_init_tables
Unexecuted instantiation: vc1data.c:ff_vlc_init_tables
Unexecuted instantiation: dca.c:ff_vlc_init_tables
Unexecuted instantiation: dca_exss.c:ff_vlc_init_tables
Unexecuted instantiation: dolby_e_parse.c:ff_vlc_init_tables
Unexecuted instantiation: ffv1.c:ff_vlc_init_tables
Unexecuted instantiation: ffv1_parse.c:ff_vlc_init_tables
Unexecuted instantiation: flac.c:ff_vlc_init_tables
Unexecuted instantiation: h2645_sei.c:ff_vlc_init_tables
Unexecuted instantiation: parse.c:ff_vlc_init_tables
Unexecuted instantiation: jpegxl_parse.c:ff_vlc_init_tables
Unexecuted instantiation: aom_film_grain.c:ff_vlc_init_tables
Unexecuted instantiation: dynamic_hdr_vivid.c:ff_vlc_init_tables
Unexecuted instantiation: hdr_dynamic_metadata.c:ff_vlc_init_tables
Unexecuted instantiation: av1dec.c:ff_vlc_init_tables
Unexecuted instantiation: bit.c:ff_vlc_init_tables
Unexecuted instantiation: dtsdec.c:ff_vlc_init_tables
Unexecuted instantiation: dtshddec.c:ff_vlc_init_tables
Unexecuted instantiation: h264dec.c:ff_vlc_init_tables
Unexecuted instantiation: hls_sample_encryption.c:ff_vlc_init_tables
Unexecuted instantiation: isom.c:ff_vlc_init_tables
Unexecuted instantiation: matroskadec.c:ff_vlc_init_tables
Unexecuted instantiation: mlpdec.c:ff_vlc_init_tables
Unexecuted instantiation: mov.c:ff_vlc_init_tables
Unexecuted instantiation: mpc8.c:ff_vlc_init_tables
Unexecuted instantiation: mpegts.c:ff_vlc_init_tables
Unexecuted instantiation: oggparsetheora.c:ff_vlc_init_tables
Unexecuted instantiation: shortendec.c:ff_vlc_init_tables
Unexecuted instantiation: swfdec.c:ff_vlc_init_tables
Unexecuted instantiation: takdec.c:ff_vlc_init_tables
Unexecuted instantiation: iamf_parse.c:ff_vlc_init_tables
Unexecuted instantiation: dirac.c:ff_vlc_init_tables
Unexecuted instantiation: atrac9dec.c:ff_vlc_init_tables
Unexecuted instantiation: enc.c:ff_vlc_init_tables
Unexecuted instantiation: enc_psy.c:ff_vlc_init_tables
Unexecuted instantiation: pvq.c:ff_vlc_init_tables
Unexecuted instantiation: rc.c:ff_vlc_init_tables
Unexecuted instantiation: celt.c:ff_vlc_init_tables
Unexecuted instantiation: gsmdec.c:ff_vlc_init_tables
Unexecuted instantiation: msgsmdec.c:ff_vlc_init_tables
Unexecuted instantiation: sheervideo.c:ff_vlc_init_tables
Unexecuted instantiation: imc.c:ff_vlc_init_tables
Unexecuted instantiation: adpcm.c:ff_vlc_init_tables
Unexecuted instantiation: wmaenc.c:ff_vlc_init_tables
Unexecuted instantiation: wma.c:ff_vlc_init_tables
Unexecuted instantiation: cfhd.c:ff_vlc_init_tables
Unexecuted instantiation: cfhddata.c:ff_vlc_init_tables
Unexecuted instantiation: wavarc.c:ff_vlc_init_tables
Unexecuted instantiation: escape130.c:ff_vlc_init_tables
Unexecuted instantiation: utvideodec.c:ff_vlc_init_tables
Unexecuted instantiation: asvdec.c:ff_vlc_init_tables
Unexecuted instantiation: diracdec.c:ff_vlc_init_tables
Unexecuted instantiation: dirac_arith.c:ff_vlc_init_tables
Unexecuted instantiation: wmadec.c:ff_vlc_init_tables
Unexecuted instantiation: aacenc.c:ff_vlc_init_tables
Unexecuted instantiation: imm4.c:ff_vlc_init_tables
Unexecuted instantiation: exr.c:ff_vlc_init_tables
Unexecuted instantiation: aacdec.c:ff_vlc_init_tables
Unexecuted instantiation: aacdec_fixed.c:ff_vlc_init_tables
Unexecuted instantiation: aacdec_float.c:ff_vlc_init_tables
Unexecuted instantiation: aacdec_tab.c:ff_vlc_init_tables
Unexecuted instantiation: aacdec_usac.c:ff_vlc_init_tables
Unexecuted instantiation: aacdec_usac_mps212.c:ff_vlc_init_tables
Unexecuted instantiation: aacps_common.c:ff_vlc_init_tables
Unexecuted instantiation: aacsbr.c:ff_vlc_init_tables
Unexecuted instantiation: aacsbr_fixed.c:ff_vlc_init_tables
Unexecuted instantiation: aacdec_ac.c:ff_vlc_init_tables
Unexecuted instantiation: aacdec_lpd.c:ff_vlc_init_tables
Unexecuted instantiation: aacps_fixed.c:ff_vlc_init_tables
Unexecuted instantiation: aacps_float.c:ff_vlc_init_tables
Unexecuted instantiation: mjpegdec.c:ff_vlc_init_tables
Unexecuted instantiation: mjpegdec_common.c:ff_vlc_init_tables
Unexecuted instantiation: jpeglsdec.c:ff_vlc_init_tables
Unexecuted instantiation: jvdec.c:ff_vlc_init_tables
Unexecuted instantiation: rdt.c:ff_vlc_init_tables
Unexecuted instantiation: rtpdec_h261.c:ff_vlc_init_tables
Unexecuted instantiation: rtpdec_h263_rfc2190.c:ff_vlc_init_tables
Unexecuted instantiation: rtpdec_latm.c:ff_vlc_init_tables
Unexecuted instantiation: rtpdec_mpeg4.c:ff_vlc_init_tables
Unexecuted instantiation: rtpdec_qt.c:ff_vlc_init_tables
h264_cavlc.c:ff_vlc_init_tables
Line
Count
Source
259
72
{
260
72
    return ff_vlc_init_tables_sparse(state, nb_bits, nb_codes,
261
72
                                     bits, bits_wrap, bits_size,
262
72
                                     codes, codes_wrap, codes_size,
263
                                     NULL, 0, 0, flags);
264
72
}
Unexecuted instantiation: h264_direct.c:ff_vlc_init_tables
Unexecuted instantiation: h264_mb.c:ff_vlc_init_tables
Unexecuted instantiation: h264_picture.c:ff_vlc_init_tables
Unexecuted instantiation: h264_refs.c:ff_vlc_init_tables
Unexecuted instantiation: h264_slice.c:ff_vlc_init_tables
Unexecuted instantiation: h264_cabac.c:ff_vlc_init_tables
Unexecuted instantiation: h264_loopfilter.c:ff_vlc_init_tables
Unexecuted instantiation: alsdec.c:ff_vlc_init_tables
Unexecuted instantiation: bgmc.c:ff_vlc_init_tables
Unexecuted instantiation: mlz.c:ff_vlc_init_tables
Unexecuted instantiation: vmixdec.c:ff_vlc_init_tables
Unexecuted instantiation: bonk.c:ff_vlc_init_tables
Unexecuted instantiation: mxpegdec.c:ff_vlc_init_tables
Unexecuted instantiation: rv30.c:ff_vlc_init_tables
Unexecuted instantiation: rv34.c:ff_vlc_init_tables
Unexecuted instantiation: indeo3.c:ff_vlc_init_tables
Unexecuted instantiation: eamad.c:ff_vlc_init_tables
Unexecuted instantiation: mpeg12.c:ff_vlc_init_tables
Unexecuted instantiation: g726.c:ff_vlc_init_tables
vc1dec.c:ff_vlc_init_tables
Line
Count
Source
259
385
{
260
385
    return ff_vlc_init_tables_sparse(state, nb_bits, nb_codes,
261
385
                                     bits, bits_wrap, bits_size,
262
385
                                     codes, codes_wrap, codes_size,
263
                                     NULL, 0, 0, flags);
264
385
}
Unexecuted instantiation: vc1_block.c:ff_vlc_init_tables
Unexecuted instantiation: vc1_loopfilter.c:ff_vlc_init_tables
Unexecuted instantiation: vc1_mc.c:ff_vlc_init_tables
Unexecuted instantiation: vc1_pred.c:ff_vlc_init_tables
Unexecuted instantiation: mpegaudiodec_float.c:ff_vlc_init_tables
Unexecuted instantiation: mpegaudiodata.c:ff_vlc_init_tables
Unexecuted instantiation: mpegaudiodec_common.c:ff_vlc_init_tables
Unexecuted instantiation: wmv2enc.c:ff_vlc_init_tables
Unexecuted instantiation: huffyuvdec.c:ff_vlc_init_tables
Unexecuted instantiation: speexdec.c:ff_vlc_init_tables
Unexecuted instantiation: atrac3plusdec.c:ff_vlc_init_tables
Unexecuted instantiation: atrac3plusdsp.c:ff_vlc_init_tables
Unexecuted instantiation: atrac3plus.c:ff_vlc_init_tables
Unexecuted instantiation: mss4.c:ff_vlc_init_tables
Unexecuted instantiation: tiff.c:ff_vlc_init_tables
faxcompr.c:ff_vlc_init_tables
Line
Count
Source
259
1
{
260
1
    return ff_vlc_init_tables_sparse(state, nb_bits, nb_codes,
261
1
                                     bits, bits_wrap, bits_size,
262
1
                                     codes, codes_wrap, codes_size,
263
                                     NULL, 0, 0, flags);
264
1
}
Unexecuted instantiation: ac3dec_float.c:ff_vlc_init_tables
Unexecuted instantiation: on2avc.c:ff_vlc_init_tables
Unexecuted instantiation: smacker.c:ff_vlc_init_tables
Unexecuted instantiation: dvbsubdec.c:ff_vlc_init_tables
Unexecuted instantiation: mss1.c:ff_vlc_init_tables
Unexecuted instantiation: mss12.c:ff_vlc_init_tables
Unexecuted instantiation: mss2.c:ff_vlc_init_tables
Unexecuted instantiation: mdec.c:ff_vlc_init_tables
Unexecuted instantiation: osq.c:ff_vlc_init_tables
Unexecuted instantiation: vp6.c:ff_vlc_init_tables
Unexecuted instantiation: huffman.c:ff_vlc_init_tables
Unexecuted instantiation: vp56.c:ff_vlc_init_tables
Unexecuted instantiation: vp56data.c:ff_vlc_init_tables
Unexecuted instantiation: loco.c:ff_vlc_init_tables
Unexecuted instantiation: magicyuv.c:ff_vlc_init_tables
Unexecuted instantiation: vp5.c:ff_vlc_init_tables
Unexecuted instantiation: ra144dec.c:ff_vlc_init_tables
Unexecuted instantiation: indeo5.c:ff_vlc_init_tables
Unexecuted instantiation: ivi.c:ff_vlc_init_tables
Unexecuted instantiation: ivi_dsp.c:ff_vlc_init_tables
Unexecuted instantiation: apac.c:ff_vlc_init_tables
Unexecuted instantiation: clearvideo.c:ff_vlc_init_tables
Unexecuted instantiation: dxtory.c:ff_vlc_init_tables
Unexecuted instantiation: prores_raw.c:ff_vlc_init_tables
Unexecuted instantiation: mpegaudiodec_fixed.c:ff_vlc_init_tables
Unexecuted instantiation: ralf.c:ff_vlc_init_tables
Unexecuted instantiation: pixlet.c:ff_vlc_init_tables
Unexecuted instantiation: mpegaudioenc.c:ff_vlc_init_tables
Unexecuted instantiation: wnv1.c:ff_vlc_init_tables
Unexecuted instantiation: qoadec.c:ff_vlc_init_tables
Unexecuted instantiation: vima.c:ff_vlc_init_tables
Unexecuted instantiation: leaddec.c:ff_vlc_init_tables
Unexecuted instantiation: eatqi.c:ff_vlc_init_tables
Unexecuted instantiation: lagarith.c:ff_vlc_init_tables
Unexecuted instantiation: lagarithrac.c:ff_vlc_init_tables
Unexecuted instantiation: dss_sp.c:ff_vlc_init_tables
Unexecuted instantiation: siren.c:ff_vlc_init_tables
Unexecuted instantiation: cavsdec.c:ff_vlc_init_tables
Unexecuted instantiation: cavs.c:ff_vlc_init_tables
Unexecuted instantiation: cavsdata.c:ff_vlc_init_tables
Unexecuted instantiation: hcom.c:ff_vlc_init_tables
vp3.c:ff_vlc_init_tables
Line
Count
Source
259
6
{
260
6
    return ff_vlc_init_tables_sparse(state, nb_bits, nb_codes,
261
6
                                     bits, bits_wrap, bits_size,
262
6
                                     codes, codes_wrap, codes_size,
263
                                     NULL, 0, 0, flags);
264
6
}
Unexecuted instantiation: webp.c:ff_vlc_init_tables
Unexecuted instantiation: eatgv.c:ff_vlc_init_tables
Unexecuted instantiation: eatgq.c:ff_vlc_init_tables
Unexecuted instantiation: sga.c:ff_vlc_init_tables
Unexecuted instantiation: binkaudio.c:ff_vlc_init_tables
Unexecuted instantiation: mpeg12dec.c:ff_vlc_init_tables
Unexecuted instantiation: indeo2.c:ff_vlc_init_tables
Unexecuted instantiation: 4xm.c:ff_vlc_init_tables
Unexecuted instantiation: wmalosslessdec.c:ff_vlc_init_tables
Unexecuted instantiation: ilbcdec.c:ff_vlc_init_tables
Unexecuted instantiation: hevcdec.c:ff_vlc_init_tables
Unexecuted instantiation: mvs.c:ff_vlc_init_tables
Unexecuted instantiation: pred.c:ff_vlc_init_tables
Unexecuted instantiation: refs.c:ff_vlc_init_tables
Unexecuted instantiation: cabac.c:ff_vlc_init_tables
Unexecuted instantiation: dsp.c:ff_vlc_init_tables
Unexecuted instantiation: filter.c:ff_vlc_init_tables
Unexecuted instantiation: tscc2.c:ff_vlc_init_tables
hqx.c:ff_vlc_init_tables
Line
Count
Source
259
2
{
260
2
    return ff_vlc_init_tables_sparse(state, nb_bits, nb_codes,
261
2
                                     bits, bits_wrap, bits_size,
262
2
                                     codes, codes_wrap, codes_size,
263
                                     NULL, 0, 0, flags);
264
2
}
Unexecuted instantiation: hq_common.c:ff_vlc_init_tables
Unexecuted instantiation: mobiclip.c:ff_vlc_init_tables
Unexecuted instantiation: wmaprodec.c:ff_vlc_init_tables
Unexecuted instantiation: g729dec.c:ff_vlc_init_tables
Unexecuted instantiation: huffyuvenc.c:ff_vlc_init_tables
Unexecuted instantiation: utvideoenc.c:ff_vlc_init_tables
Unexecuted instantiation: sipr.c:ff_vlc_init_tables
Unexecuted instantiation: g722dec.c:ff_vlc_init_tables
Unexecuted instantiation: nellymoserdec.c:ff_vlc_init_tables
Unexecuted instantiation: dcaenc.c:ff_vlc_init_tables
Unexecuted instantiation: dcahuff.c:ff_vlc_init_tables
Unexecuted instantiation: dcaadpcm.c:ff_vlc_init_tables
Unexecuted instantiation: dcadata.c:ff_vlc_init_tables
Unexecuted instantiation: interplayvideo.c:ff_vlc_init_tables
Unexecuted instantiation: dec.c:ff_vlc_init_tables
Unexecuted instantiation: dec_celt.c:ff_vlc_init_tables
Unexecuted instantiation: silk.c:ff_vlc_init_tables
Unexecuted instantiation: mjpegbdec.c:ff_vlc_init_tables
Unexecuted instantiation: bink.c:ff_vlc_init_tables
Unexecuted instantiation: dvdsubdec.c:ff_vlc_init_tables
Unexecuted instantiation: rtjpeg.c:ff_vlc_init_tables
Unexecuted instantiation: truespeech.c:ff_vlc_init_tables
Unexecuted instantiation: metasound.c:ff_vlc_init_tables
Unexecuted instantiation: svq1enc.c:ff_vlc_init_tables
Unexecuted instantiation: escape124.c:ff_vlc_init_tables
Unexecuted instantiation: cllc.c:ff_vlc_init_tables
Unexecuted instantiation: dvdec.c:ff_vlc_init_tables
Unexecuted instantiation: tta.c:ff_vlc_init_tables
Unexecuted instantiation: photocd.c:ff_vlc_init_tables
Unexecuted instantiation: fraps.c:ff_vlc_init_tables
Unexecuted instantiation: motionpixels.c:ff_vlc_init_tables
Unexecuted instantiation: vp9.c:ff_vlc_init_tables
Unexecuted instantiation: vp9block.c:ff_vlc_init_tables
Unexecuted instantiation: vp9data.c:ff_vlc_init_tables
Unexecuted instantiation: vp9lpf.c:ff_vlc_init_tables
Unexecuted instantiation: vp9mvs.c:ff_vlc_init_tables
Unexecuted instantiation: vp9prob.c:ff_vlc_init_tables
Unexecuted instantiation: vp9recon.c:ff_vlc_init_tables
Unexecuted instantiation: ffv1dec.c:ff_vlc_init_tables
Unexecuted instantiation: intra_utils.c:ff_vlc_init_tables
Unexecuted instantiation: thread.c:ff_vlc_init_tables
Unexecuted instantiation: ctu.c:ff_vlc_init_tables
Unexecuted instantiation: inter.c:ff_vlc_init_tables
Unexecuted instantiation: intra.c:ff_vlc_init_tables
Unexecuted instantiation: wmavoice.c:ff_vlc_init_tables
Unexecuted instantiation: rawdec.c:ff_vlc_init_tables
svq1dec.c:ff_vlc_init_tables
Line
Count
Source
259
12
{
260
12
    return ff_vlc_init_tables_sparse(state, nb_bits, nb_codes,
261
12
                                     bits, bits_wrap, bits_size,
262
12
                                     codes, codes_wrap, codes_size,
263
                                     NULL, 0, 0, flags);
264
12
}
Unexecuted instantiation: mpc7.c:ff_vlc_init_tables
Unexecuted instantiation: truemotion2rt.c:ff_vlc_init_tables
Unexecuted instantiation: adxdec.c:ff_vlc_init_tables
Unexecuted instantiation: rv40.c:ff_vlc_init_tables
Unexecuted instantiation: xsubdec.c:ff_vlc_init_tables
Unexecuted instantiation: notchlc.c:ff_vlc_init_tables
Unexecuted instantiation: aic.c:ff_vlc_init_tables
Unexecuted instantiation: vqcdec.c:ff_vlc_init_tables
Unexecuted instantiation: dolby_e.c:ff_vlc_init_tables
Unexecuted instantiation: proresdec.c:ff_vlc_init_tables
Unexecuted instantiation: evrcdec.c:ff_vlc_init_tables
Unexecuted instantiation: dnxhddec.c:ff_vlc_init_tables
Unexecuted instantiation: dcadec.c:ff_vlc_init_tables
Unexecuted instantiation: dca_core.c:ff_vlc_init_tables
Unexecuted instantiation: dca_lbr.c:ff_vlc_init_tables
Unexecuted instantiation: dca_xll.c:ff_vlc_init_tables
Unexecuted instantiation: mlpenc.c:ff_vlc_init_tables
Unexecuted instantiation: atrac3.c:ff_vlc_init_tables
Unexecuted instantiation: vorbisdec.c:ff_vlc_init_tables
Unexecuted instantiation: flashsv.c:ff_vlc_init_tables
Unexecuted instantiation: wavpack.c:ff_vlc_init_tables
Unexecuted instantiation: speedhqdec.c:ff_vlc_init_tables
Unexecuted instantiation: g723_1dec.c:ff_vlc_init_tables
Unexecuted instantiation: g2meet.c:ff_vlc_init_tables
Unexecuted instantiation: shorten.c:ff_vlc_init_tables
Unexecuted instantiation: indeo4.c:ff_vlc_init_tables
Unexecuted instantiation: sp5xdec.c:ff_vlc_init_tables
Unexecuted instantiation: mvha.c:ff_vlc_init_tables
Unexecuted instantiation: atrac1.c:ff_vlc_init_tables
Unexecuted instantiation: apv_decode.c:ff_vlc_init_tables
Unexecuted instantiation: apv_entropy.c:ff_vlc_init_tables
Unexecuted instantiation: avs.c:ff_vlc_init_tables
rv60dec.c:ff_vlc_init_tables
Line
Count
Source
259
196
{
260
196
    return ff_vlc_init_tables_sparse(state, nb_bits, nb_codes,
261
196
                                     bits, bits_wrap, bits_size,
262
196
                                     codes, codes_wrap, codes_size,
263
                                     NULL, 0, 0, flags);
264
196
}
Unexecuted instantiation: alac.c:ff_vlc_init_tables
Unexecuted instantiation: tiertexseqv.c:ff_vlc_init_tables
Unexecuted instantiation: ffv1enc.c:ff_vlc_init_tables
Unexecuted instantiation: hcadec.c:ff_vlc_init_tables
Unexecuted instantiation: pcx.c:ff_vlc_init_tables
Unexecuted instantiation: qcelpdec.c:ff_vlc_init_tables
Unexecuted instantiation: flacdec.c:ff_vlc_init_tables
Unexecuted instantiation: ac3dec_fixed.c:ff_vlc_init_tables
Unexecuted instantiation: midivid.c:ff_vlc_init_tables
Unexecuted instantiation: snowenc.c:ff_vlc_init_tables
Unexecuted instantiation: mimic.c:ff_vlc_init_tables
Unexecuted instantiation: fic.c:ff_vlc_init_tables
Unexecuted instantiation: qdmc.c:ff_vlc_init_tables
Unexecuted instantiation: ra288.c:ff_vlc_init_tables
Unexecuted instantiation: interplayacm.c:ff_vlc_init_tables
Unexecuted instantiation: ylc.c:ff_vlc_init_tables
Unexecuted instantiation: ftr.c:ff_vlc_init_tables
Unexecuted instantiation: agm.c:ff_vlc_init_tables
Unexecuted instantiation: xan.c:ff_vlc_init_tables
Unexecuted instantiation: svq3.c:ff_vlc_init_tables
Unexecuted instantiation: cri.c:ff_vlc_init_tables
Unexecuted instantiation: qdm2.c:ff_vlc_init_tables
Unexecuted instantiation: cljrdec.c:ff_vlc_init_tables
Unexecuted instantiation: g728dec.c:ff_vlc_init_tables
Unexecuted instantiation: cook.c:ff_vlc_init_tables
Unexecuted instantiation: twinvqdec.c:ff_vlc_init_tables
Unexecuted instantiation: hq_hqa.c:ff_vlc_init_tables
Unexecuted instantiation: cdxl.c:ff_vlc_init_tables
Unexecuted instantiation: vble.c:ff_vlc_init_tables
Unexecuted instantiation: mv30.c:ff_vlc_init_tables
Unexecuted instantiation: apedec.c:ff_vlc_init_tables
Unexecuted instantiation: h261dec.c:ff_vlc_init_tables
Unexecuted instantiation: dstdec.c:ff_vlc_init_tables
Unexecuted instantiation: jpeglsenc.c:ff_vlc_init_tables
Unexecuted instantiation: truemotion2.c:ff_vlc_init_tables
265
266
#define VLC_INIT_STATIC_SPARSE_TABLE(vlc_table, nb_bits, nb_codes,         \
267
                                     bits, bits_wrap, bits_size,           \
268
                                     codes, codes_wrap, codes_size,        \
269
                                     symbols, symbols_wrap, symbols_size,  \
270
                                     flags)                                \
271
31
    ff_vlc_init_table_sparse(vlc_table, FF_ARRAY_ELEMS(vlc_table),         \
272
31
                             (nb_bits), (nb_codes),                        \
273
31
                             (bits), (bits_wrap), (bits_size),             \
274
31
                             (codes), (codes_wrap), (codes_size),          \
275
31
                             (symbols), (symbols_wrap), (symbols_size),    \
276
31
                             (flags))
277
278
#define VLC_INIT_STATIC_TABLE(vlc_table, nb_bits, nb_codes,                \
279
                              bits, bits_wrap, bits_size,                  \
280
                              codes, codes_wrap, codes_size,               \
281
                              flags)                                       \
282
174
    ff_vlc_init_table_sparse(vlc_table, FF_ARRAY_ELEMS(vlc_table),         \
283
174
                             (nb_bits), (nb_codes),                        \
284
174
                             (bits), (bits_wrap), (bits_size),             \
285
174
                             (codes), (codes_wrap), (codes_size),          \
286
174
                             NULL, 0, 0, (flags))
287
288
#define VLC_INIT_STATIC_TABLE_FROM_LENGTHS(vlc_table, nb_bits, nb_codes,   \
289
                                           lens, lens_wrap,                \
290
                                           syms, syms_wrap, syms_size,     \
291
                                           offset, flags)                  \
292
46
    ff_vlc_init_table_from_lengths(vlc_table, FF_ARRAY_ELEMS(vlc_table),   \
293
46
                                   (nb_bits), (nb_codes),                  \
294
46
                                   (lens), (lens_wrap),                    \
295
46
                                   (syms), (syms_wrap), (syms_size),       \
296
46
                                   (offset), (flags))
297
298
#endif /* AVCODEC_VLC_H */