FFmpeg
qdm2_tablegen.c
Go to the documentation of this file.
1 /*
2  * Generate a header file for hardcoded QDM2 tables
3  *
4  * Copyright (c) 2010 Reimar Döffinger <Reimar.Doeffinger@gmx.de>
5  *
6  * This file is part of FFmpeg.
7  *
8  * FFmpeg is free software; you can redistribute it and/or
9  * modify it under the terms of the GNU Lesser General Public
10  * License as published by the Free Software Foundation; either
11  * version 2.1 of the License, or (at your option) any later version.
12  *
13  * FFmpeg is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16  * Lesser General Public License for more details.
17  *
18  * You should have received a copy of the GNU Lesser General Public
19  * License along with FFmpeg; if not, write to the Free Software
20  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
21  */
22 
23 #include <stdlib.h>
24 #include "tableprint_vlc.h"
25 #define CONFIG_HARDCODED_TABLES 0
26 #include "qdm2_tablegen.h"
27 
28 int main(void)
29 {
33 
35 
36  WRITE_ARRAY("static const", uint16_t, softclip_table);
37  WRITE_ARRAY("static const", float, noise_table);
38  WRITE_ARRAY("static const", float, noise_samples);
39 
42 
43  qdm2_init_vlc();
44 
45  WRITE_2D_ARRAY("static const", VLC_TYPE, qdm2_table);
46  WRITE_VLC_TYPE("static const", vlc_tab_level, qdm2_table);
47  WRITE_VLC_TYPE("static const", vlc_tab_diff, qdm2_table);
48  WRITE_VLC_TYPE("static const", vlc_tab_run, qdm2_table);
56  WRITE_VLC_TYPE("static const", vlc_tab_type30, qdm2_table);
57  WRITE_VLC_TYPE("static const", vlc_tab_type34, qdm2_table);
59 
60  return 0;
61 }
static VLC vlc_tab_tone_level_idx_hi2
static VLC fft_stereo_exp_vlc
static VLC vlc_tab_type30
uint8_t
static av_cold void qdm2_init_vlc(void)
static VLC fft_level_exp_vlc
static av_cold void rnd_table_init(void)
Definition: qdm2_tablegen.h:57
static uint8_t random_dequant_type24[128][3]
Definition: qdm2_tablegen.h:44
WRITE_ARRAY("static const", uint8_t, my_array)
static VLC vlc_tab_tone_level_idx_mid
static VLC vlc_tab_tone_level_idx_hi1
static VLC fft_level_exp_alt_vlc
int main(void)
Definition: qdm2_tablegen.c:28
static float noise_samples[128]
Definition: qdm2_tablegen.h:45
static VLC fft_stereo_phase_vlc
static const int8_t noise_table[256]
Data table used for TrueHD noise generation function.
Definition: mlpdec.c:996
static uint8_t random_dequant_index[256][5]
Definition: qdm2_tablegen.h:43
static uint16_t softclip_table[HARDCLIP_THRESHOLD-SOFTCLIP_THRESHOLD+1]
Definition: qdm2_tablegen.h:41
static VLC vlc_tab_fft_tone_offset[5]
write_fileheader() adds some minor things like a"this is a generated file"comment and some standard includes.tablegen.h defines some write functions for one-and two-dimensional arrays for standard types-they print only the"core"parts so they are easier to reuse for multi-dimensional arrays so the outermost
Definition: tablegen.txt:39
#define WRITE_VLC_ARRAY(prefix, name, base_table)
#define WRITE_VLC_TYPE(prefix, name, base_table)
#define WRITE_2D_ARRAY(prefix, type, name)
Definition: tableprint.h:104
static av_cold void softclip_table_init(void)
Definition: qdm2_tablegen.h:47
static VLC vlc_tab_diff
Definition: qdm2_tablegen.h:99
static VLC_TYPE qdm2_table[3838][2]
static VLC vlc_tab_level
Definition: qdm2_tablegen.h:98
static VLC vlc_tab_run
#define VLC_TYPE
Definition: vlc.h:24
static av_cold void init_noise_samples(void)
Definition: qdm2_tablegen.h:88
static VLC vlc_tab_type34