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
28int main(void)
29{
30    softclip_table_init();
31    rnd_table_init();
32    init_noise_samples();
33
34    write_fileheader();
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_VLC_TABLE("static const", 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);
49    WRITE_VLC_TYPE("static const", fft_level_exp_alt_vlc, qdm2_table);
50    WRITE_VLC_TYPE("static const", fft_level_exp_vlc, qdm2_table);
51    WRITE_VLC_TYPE("static const", fft_stereo_exp_vlc, qdm2_table);
52    WRITE_VLC_TYPE("static const", fft_stereo_phase_vlc, qdm2_table);
53    WRITE_VLC_TYPE("static const", vlc_tab_tone_level_idx_hi1, qdm2_table);
54    WRITE_VLC_TYPE("static const", vlc_tab_tone_level_idx_mid, qdm2_table);
55    WRITE_VLC_TYPE("static const", vlc_tab_tone_level_idx_hi2, qdm2_table);
56    WRITE_VLC_TYPE("static const", vlc_tab_type30, qdm2_table);
57    WRITE_VLC_TYPE("static const", vlc_tab_type34, qdm2_table);
58    WRITE_VLC_ARRAY("static const", vlc_tab_fft_tone_offset, qdm2_table);
59
60    return 0;
61}
62