annotate tableprint.h @ 11762:91b9bd17e79c libavcodec

aacenc: Trellis over scalefactors using an estimated codebook rather than every codebook. The minimal codebook to encode the band without clipping is used (as is done in the TLS).
author alexc
date Tue, 25 May 2010 18:31:55 +0000
parents 8ad2b8f20e6a
children 59f399926c12
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
10469
23ca6d60184d Add support for hardcoding the mpegaudiodec tables.
reimar
parents:
diff changeset
1 /*
23ca6d60184d Add support for hardcoding the mpegaudiodec tables.
reimar
parents:
diff changeset
2 * Generate a file for hardcoded tables
23ca6d60184d Add support for hardcoding the mpegaudiodec tables.
reimar
parents:
diff changeset
3 *
23ca6d60184d Add support for hardcoding the mpegaudiodec tables.
reimar
parents:
diff changeset
4 * Copyright (c) 2009 Reimar Döffinger <Reimar.Doeffinger@gmx.de>
23ca6d60184d Add support for hardcoding the mpegaudiodec tables.
reimar
parents:
diff changeset
5 *
23ca6d60184d Add support for hardcoding the mpegaudiodec tables.
reimar
parents:
diff changeset
6 * This file is part of FFmpeg.
23ca6d60184d Add support for hardcoding the mpegaudiodec tables.
reimar
parents:
diff changeset
7 *
23ca6d60184d Add support for hardcoding the mpegaudiodec tables.
reimar
parents:
diff changeset
8 * FFmpeg is free software; you can redistribute it and/or
23ca6d60184d Add support for hardcoding the mpegaudiodec tables.
reimar
parents:
diff changeset
9 * modify it under the terms of the GNU Lesser General Public
23ca6d60184d Add support for hardcoding the mpegaudiodec tables.
reimar
parents:
diff changeset
10 * License as published by the Free Software Foundation; either
23ca6d60184d Add support for hardcoding the mpegaudiodec tables.
reimar
parents:
diff changeset
11 * version 2.1 of the License, or (at your option) any later version.
23ca6d60184d Add support for hardcoding the mpegaudiodec tables.
reimar
parents:
diff changeset
12 *
23ca6d60184d Add support for hardcoding the mpegaudiodec tables.
reimar
parents:
diff changeset
13 * FFmpeg is distributed in the hope that it will be useful,
23ca6d60184d Add support for hardcoding the mpegaudiodec tables.
reimar
parents:
diff changeset
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
23ca6d60184d Add support for hardcoding the mpegaudiodec tables.
reimar
parents:
diff changeset
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
23ca6d60184d Add support for hardcoding the mpegaudiodec tables.
reimar
parents:
diff changeset
16 * Lesser General Public License for more details.
23ca6d60184d Add support for hardcoding the mpegaudiodec tables.
reimar
parents:
diff changeset
17 *
23ca6d60184d Add support for hardcoding the mpegaudiodec tables.
reimar
parents:
diff changeset
18 * You should have received a copy of the GNU Lesser General Public
23ca6d60184d Add support for hardcoding the mpegaudiodec tables.
reimar
parents:
diff changeset
19 * License along with FFmpeg; if not, write to the Free Software
23ca6d60184d Add support for hardcoding the mpegaudiodec tables.
reimar
parents:
diff changeset
20 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
23ca6d60184d Add support for hardcoding the mpegaudiodec tables.
reimar
parents:
diff changeset
21 */
23ca6d60184d Add support for hardcoding the mpegaudiodec tables.
reimar
parents:
diff changeset
22
23ca6d60184d Add support for hardcoding the mpegaudiodec tables.
reimar
parents:
diff changeset
23 #ifndef AVCODEC_TABLEPRINT_H
23ca6d60184d Add support for hardcoding the mpegaudiodec tables.
reimar
parents:
diff changeset
24 #define AVCODEC_TABLEPRINT_H
23ca6d60184d Add support for hardcoding the mpegaudiodec tables.
reimar
parents:
diff changeset
25
23ca6d60184d Add support for hardcoding the mpegaudiodec tables.
reimar
parents:
diff changeset
26 #include <stdint.h>
11522
db3588eb254a Extend and move macros to create table printing functions to header.
reimar
parents: 11487
diff changeset
27 #include <stdio.h>
db3588eb254a Extend and move macros to create table printing functions to header.
reimar
parents: 11487
diff changeset
28
db3588eb254a Extend and move macros to create table printing functions to header.
reimar
parents: 11487
diff changeset
29 #define WRITE_1D_FUNC_ARGV(name, type, linebrk, fmtstr, ...)\
11570
e03e3df6fb7d Change/simplify the tableprint/tablegen API.
reimar
parents: 11522
diff changeset
30 void write_##name##_array(const type *data, int len)\
11522
db3588eb254a Extend and move macros to create table printing functions to header.
reimar
parents: 11487
diff changeset
31 {\
db3588eb254a Extend and move macros to create table printing functions to header.
reimar
parents: 11487
diff changeset
32 int i;\
db3588eb254a Extend and move macros to create table printing functions to header.
reimar
parents: 11487
diff changeset
33 printf(" ");\
db3588eb254a Extend and move macros to create table printing functions to header.
reimar
parents: 11487
diff changeset
34 for (i = 0; i < len - 1; i++) {\
db3588eb254a Extend and move macros to create table printing functions to header.
reimar
parents: 11487
diff changeset
35 printf(" "fmtstr",", __VA_ARGS__);\
db3588eb254a Extend and move macros to create table printing functions to header.
reimar
parents: 11487
diff changeset
36 if ((i & linebrk) == linebrk) printf("\n ");\
db3588eb254a Extend and move macros to create table printing functions to header.
reimar
parents: 11487
diff changeset
37 }\
db3588eb254a Extend and move macros to create table printing functions to header.
reimar
parents: 11487
diff changeset
38 printf(" "fmtstr"\n", __VA_ARGS__);\
db3588eb254a Extend and move macros to create table printing functions to header.
reimar
parents: 11487
diff changeset
39 }
db3588eb254a Extend and move macros to create table printing functions to header.
reimar
parents: 11487
diff changeset
40
db3588eb254a Extend and move macros to create table printing functions to header.
reimar
parents: 11487
diff changeset
41 #define WRITE_1D_FUNC(name, type, fmtstr, linebrk)\
db3588eb254a Extend and move macros to create table printing functions to header.
reimar
parents: 11487
diff changeset
42 WRITE_1D_FUNC_ARGV(name, type, linebrk, fmtstr, data[i])
db3588eb254a Extend and move macros to create table printing functions to header.
reimar
parents: 11487
diff changeset
43
db3588eb254a Extend and move macros to create table printing functions to header.
reimar
parents: 11487
diff changeset
44 #define WRITE_2D_FUNC(name, type)\
db3588eb254a Extend and move macros to create table printing functions to header.
reimar
parents: 11487
diff changeset
45 void write_##name##_2d_array(const void *arg, int len, int len2)\
db3588eb254a Extend and move macros to create table printing functions to header.
reimar
parents: 11487
diff changeset
46 {\
db3588eb254a Extend and move macros to create table printing functions to header.
reimar
parents: 11487
diff changeset
47 const type *data = arg;\
db3588eb254a Extend and move macros to create table printing functions to header.
reimar
parents: 11487
diff changeset
48 int i;\
db3588eb254a Extend and move macros to create table printing functions to header.
reimar
parents: 11487
diff changeset
49 printf(" {\n");\
db3588eb254a Extend and move macros to create table printing functions to header.
reimar
parents: 11487
diff changeset
50 for (i = 0; i < len; i++) {\
11570
e03e3df6fb7d Change/simplify the tableprint/tablegen API.
reimar
parents: 11522
diff changeset
51 write_##name##_array(data + i * len2, len2);\
11522
db3588eb254a Extend and move macros to create table printing functions to header.
reimar
parents: 11487
diff changeset
52 printf(i == len - 1 ? " }\n" : " }, {\n");\
db3588eb254a Extend and move macros to create table printing functions to header.
reimar
parents: 11487
diff changeset
53 }\
db3588eb254a Extend and move macros to create table printing functions to header.
reimar
parents: 11487
diff changeset
54 }
10469
23ca6d60184d Add support for hardcoding the mpegaudiodec tables.
reimar
parents:
diff changeset
55
23ca6d60184d Add support for hardcoding the mpegaudiodec tables.
reimar
parents:
diff changeset
56 /**
23ca6d60184d Add support for hardcoding the mpegaudiodec tables.
reimar
parents:
diff changeset
57 * \defgroup printfuncs Predefined functions for printing tables
23ca6d60184d Add support for hardcoding the mpegaudiodec tables.
reimar
parents:
diff changeset
58 *
23ca6d60184d Add support for hardcoding the mpegaudiodec tables.
reimar
parents:
diff changeset
59 * \{
23ca6d60184d Add support for hardcoding the mpegaudiodec tables.
reimar
parents:
diff changeset
60 */
11570
e03e3df6fb7d Change/simplify the tableprint/tablegen API.
reimar
parents: 11522
diff changeset
61 void write_int8_array (const int8_t *, int);
e03e3df6fb7d Change/simplify the tableprint/tablegen API.
reimar
parents: 11522
diff changeset
62 void write_uint8_array (const uint8_t *, int);
e03e3df6fb7d Change/simplify the tableprint/tablegen API.
reimar
parents: 11522
diff changeset
63 void write_uint16_array (const uint16_t *, int);
e03e3df6fb7d Change/simplify the tableprint/tablegen API.
reimar
parents: 11522
diff changeset
64 void write_uint32_array (const uint32_t *, int);
e03e3df6fb7d Change/simplify the tableprint/tablegen API.
reimar
parents: 11522
diff changeset
65 void write_float_array (const float *, int);
10581
2980d9efc542 Add support for hardcoding the motionpixels rgb to yuv table.
reimar
parents: 10469
diff changeset
66 void write_int8_2d_array (const void *, int, int);
11487
62da6bfd50fd Add some more table-printing functions needed for future patches.
reimar
parents: 10827
diff changeset
67 void write_uint8_2d_array (const void *, int, int);
10469
23ca6d60184d Add support for hardcoding the mpegaudiodec tables.
reimar
parents:
diff changeset
68 void write_uint32_2d_array(const void *, int, int);
11714
8ad2b8f20e6a Support writing 2d float arrays.
michael
parents: 11570
diff changeset
69 void write_float_2d_array (const void *, int, int);
10469
23ca6d60184d Add support for hardcoding the mpegaudiodec tables.
reimar
parents:
diff changeset
70 /** \} */ // end of printfuncs group
23ca6d60184d Add support for hardcoding the mpegaudiodec tables.
reimar
parents:
diff changeset
71
11570
e03e3df6fb7d Change/simplify the tableprint/tablegen API.
reimar
parents: 11522
diff changeset
72 /** Write a standard file header */
e03e3df6fb7d Change/simplify the tableprint/tablegen API.
reimar
parents: 11522
diff changeset
73 void write_fileheader(void);
10469
23ca6d60184d Add support for hardcoding the mpegaudiodec tables.
reimar
parents:
diff changeset
74
23ca6d60184d Add support for hardcoding the mpegaudiodec tables.
reimar
parents:
diff changeset
75 #endif /* AVCODEC_TABLEPRINT_H */