MCPcopy Create free account
hub / github.com/FFmpeg/FFmpeg / dca_init_vlcs

Function dca_init_vlcs

libavcodec/dca.c:268–319  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

266};
267
268static av_cold void dca_init_vlcs(void)
269{
270 static int vlcs_initialized = 0;
271 int i, j, c = 14;
272 static VLC_TYPE dca_table[23622][2];
273
274 if (vlcs_initialized)
275 return;
276
277 dca_bitalloc_index.offset = 1;
278 dca_bitalloc_index.wrap = 2;
279 for (i = 0; i < 5; i++) {
280 dca_bitalloc_index.vlc[i].table = &dca_table[dca_vlc_offs[i]];
281 dca_bitalloc_index.vlc[i].table_allocated = dca_vlc_offs[i + 1] - dca_vlc_offs[i];
282 init_vlc(&dca_bitalloc_index.vlc[i], bitalloc_12_vlc_bits[i], 12,
283 bitalloc_12_bits[i], 1, 1,
284 bitalloc_12_codes[i], 2, 2, INIT_VLC_USE_NEW_STATIC);
285 }
286 dca_scalefactor.offset = -64;
287 dca_scalefactor.wrap = 2;
288 for (i = 0; i < 5; i++) {
289 dca_scalefactor.vlc[i].table = &dca_table[dca_vlc_offs[i + 5]];
290 dca_scalefactor.vlc[i].table_allocated = dca_vlc_offs[i + 6] - dca_vlc_offs[i + 5];
291 init_vlc(&dca_scalefactor.vlc[i], SCALES_VLC_BITS, 129,
292 scales_bits[i], 1, 1,
293 scales_codes[i], 2, 2, INIT_VLC_USE_NEW_STATIC);
294 }
295 dca_tmode.offset = 0;
296 dca_tmode.wrap = 1;
297 for (i = 0; i < 4; i++) {
298 dca_tmode.vlc[i].table = &dca_table[dca_vlc_offs[i + 10]];
299 dca_tmode.vlc[i].table_allocated = dca_vlc_offs[i + 11] - dca_vlc_offs[i + 10];
300 init_vlc(&dca_tmode.vlc[i], tmode_vlc_bits[i], 4,
301 tmode_bits[i], 1, 1,
302 tmode_codes[i], 2, 2, INIT_VLC_USE_NEW_STATIC);
303 }
304
305 for(i = 0; i < 10; i++)
306 for(j = 0; j < 7; j++){
307 if(!bitalloc_codes[i][j]) break;
308 dca_smpl_bitalloc[i+1].offset = bitalloc_offsets[i];
309 dca_smpl_bitalloc[i+1].wrap = 1 + (j > 4);
310 dca_smpl_bitalloc[i+1].vlc[j].table = &dca_table[dca_vlc_offs[c]];
311 dca_smpl_bitalloc[i+1].vlc[j].table_allocated = dca_vlc_offs[c + 1] - dca_vlc_offs[c];
312 init_vlc(&dca_smpl_bitalloc[i+1].vlc[j], bitalloc_maxbits[i][j],
313 bitalloc_sizes[i],
314 bitalloc_bits[i][j], 1, 1,
315 bitalloc_codes[i][j], 2, 2, INIT_VLC_USE_NEW_STATIC);
316 c++;
317 }
318 vlcs_initialized = 1;
319}
320
321static inline void get_array(GetBitContext *gb, int *dst, int len, int bits)
322{

Callers 1

dca_decode_initFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected