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 
40  WRITE_2D_ARRAY("static const", uint8_t, random_dequant_index);
41  WRITE_2D_ARRAY("static const", uint8_t, random_dequant_type24);
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 }
fft_stereo_exp_vlc
static VLC fft_stereo_exp_vlc
Definition: qdm2_tablegen.h:103
noise_table
static const int8_t noise_table[256]
Data table used for TrueHD noise generation function.
Definition: mlpdec.c:1005
qdm2_table
static VLC_TYPE qdm2_table[3838][2]
Definition: qdm2_tablegen.h:112
tableprint_vlc.h
vlc_tab_type30
static VLC vlc_tab_type30
Definition: qdm2_tablegen.h:108
vlc_tab_type34
static VLC vlc_tab_type34
Definition: qdm2_tablegen.h:109
WRITE_2D_ARRAY
#define WRITE_2D_ARRAY(prefix, type, name)
Definition: tableprint.h:104
random_dequant_index
static uint8_t random_dequant_index[256][5]
Definition: qdm2_tablegen.h:43
vlc_tab_tone_level_idx_hi1
static VLC vlc_tab_tone_level_idx_hi1
Definition: qdm2_tablegen.h:105
softclip_table
static uint16_t softclip_table[HARDCLIP_THRESHOLD - SOFTCLIP_THRESHOLD+1]
Definition: qdm2_tablegen.h:41
init_noise_samples
static av_cold void init_noise_samples(void)
Definition: qdm2_tablegen.h:88
VLC_TYPE
#define VLC_TYPE
Definition: vlc.h:24
vlc_tab_level
static VLC vlc_tab_level
Definition: qdm2_tablegen.h:98
rnd_table_init
static av_cold void rnd_table_init(void)
Definition: qdm2_tablegen.h:57
vlc_tab_run
static VLC vlc_tab_run
Definition: qdm2_tablegen.h:100
qdm2_tablegen.h
write_fileheader
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
fft_stereo_phase_vlc
static VLC fft_stereo_phase_vlc
Definition: qdm2_tablegen.h:104
main
int main(void)
Definition: qdm2_tablegen.c:28
random_dequant_type24
static uint8_t random_dequant_type24[128][3]
Definition: qdm2_tablegen.h:44
vlc_tab_tone_level_idx_mid
static VLC vlc_tab_tone_level_idx_mid
Definition: qdm2_tablegen.h:106
vlc_tab_tone_level_idx_hi2
static VLC vlc_tab_tone_level_idx_hi2
Definition: qdm2_tablegen.h:107
qdm2_init_vlc
static av_cold void qdm2_init_vlc(void)
Definition: qdm2_tablegen.h:125
fft_level_exp_alt_vlc
static VLC fft_level_exp_alt_vlc
Definition: qdm2_tablegen.h:101
WRITE_ARRAY
WRITE_ARRAY("static const", uint8_t, my_array)
fft_level_exp_vlc
static VLC fft_level_exp_vlc
Definition: qdm2_tablegen.h:102
noise_samples
static float noise_samples[128]
Definition: qdm2_tablegen.h:45
vlc_tab_diff
static VLC vlc_tab_diff
Definition: qdm2_tablegen.h:99
vlc_tab_fft_tone_offset
static VLC vlc_tab_fft_tone_offset[5]
Definition: qdm2_tablegen.h:110
WRITE_VLC_TYPE
#define WRITE_VLC_TYPE(prefix, name, base_table)
Definition: tableprint_vlc.h:61
WRITE_VLC_ARRAY
#define WRITE_VLC_ARRAY(prefix, name, base_table)
Definition: tableprint_vlc.h:68
softclip_table_init
static av_cold void softclip_table_init(void)
Definition: qdm2_tablegen.h:47