blob: 27c107ce5941cc3d3f9872b7133923fd4f49b0ac
1 | /* |
2 | * Copyright (c) 2008 Robert Swain |
3 | * |
4 | * This file is part of FFmpeg. |
5 | * |
6 | * FFmpeg is free software; you can redistribute it and/or |
7 | * modify it under the terms of the GNU Lesser General Public |
8 | * License as published by the Free Software Foundation; either |
9 | * version 2.1 of the License, or (at your option) any later version. |
10 | * |
11 | * FFmpeg is distributed in the hope that it will be useful, |
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
14 | * Lesser General Public License for more details. |
15 | * |
16 | * You should have received a copy of the GNU Lesser General Public |
17 | * License along with FFmpeg; if not, write to the Free Software |
18 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA |
19 | */ |
20 | |
21 | #ifndef AVCODEC_SINEWIN_H |
22 | #define AVCODEC_SINEWIN_H |
23 | |
24 | #include "config.h" |
25 | #include "libavutil/mem.h" |
26 | #include "libavcodec/aac_defines.h" |
27 | |
28 | #if CONFIG_HARDCODED_TABLES |
29 | # define SINETABLE_CONST const |
30 | #else |
31 | # define SINETABLE_CONST |
32 | #endif |
33 | |
34 | #ifndef USE_FIXED |
35 | #define USE_FIXED 0 |
36 | #endif |
37 | |
38 | #define SINETABLE(size) \ |
39 | SINETABLE_CONST DECLARE_ALIGNED(32, INTFLOAT, AAC_RENAME(ff_sine_##size))[size] |
40 | |
41 | /** |
42 | * Generate a sine window. |
43 | * @param window pointer to half window |
44 | * @param n size of half window |
45 | */ |
46 | void AAC_RENAME(ff_sine_window_init)(INTFLOAT *window, int n); |
47 | |
48 | /** |
49 | * initialize the specified entry of ff_sine_windows |
50 | */ |
51 | void AAC_RENAME(ff_init_ff_sine_windows)(int index); |
52 | |
53 | extern SINETABLE( 32); |
54 | extern SINETABLE( 64); |
55 | extern SINETABLE( 128); |
56 | extern SINETABLE( 256); |
57 | extern SINETABLE( 512); |
58 | extern SINETABLE(1024); |
59 | extern SINETABLE(2048); |
60 | extern SINETABLE(4096); |
61 | extern SINETABLE(8192); |
62 | |
63 | extern SINETABLE_CONST INTFLOAT * const AAC_RENAME(ff_sine_windows)[14]; |
64 | |
65 | #endif /* AVCODEC_SINEWIN_H */ |
66 |