Main Page
Related Pages
Modules
Data Structures
Files
Examples
File List
Globals
libavcodec
avfft.h
Go to the documentation of this file.
1
/*
2
* This file is part of Libav.
3
*
4
* Libav is free software; you can redistribute it and/or
5
* modify it under the terms of the GNU Lesser General Public
6
* License as published by the Free Software Foundation; either
7
* version 2.1 of the License, or (at your option) any later version.
8
*
9
* Libav is distributed in the hope that it will be useful,
10
* but WITHOUT ANY WARRANTY; without even the implied warranty of
11
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12
* Lesser General Public License for more details.
13
*
14
* You should have received a copy of the GNU Lesser General Public
15
* License along with Libav; if not, write to the Free Software
16
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
17
*/
18
19
#ifndef AVCODEC_AVFFT_H
20
#define AVCODEC_AVFFT_H
21
22
typedef
float
FFTSample
;
23
24
typedef
struct
FFTComplex
{
25
FFTSample
re
,
im
;
26
}
FFTComplex
;
27
28
typedef
struct
FFTContext
FFTContext
;
29
35
FFTContext
*
av_fft_init
(
int
nbits
,
int
inverse
);
36
40
void
av_fft_permute
(
FFTContext
*s,
FFTComplex
*z);
41
46
void
av_fft_calc
(
FFTContext
*s,
FFTComplex
*z);
47
48
void
av_fft_end
(
FFTContext
*s);
49
50
FFTContext
*
av_mdct_init
(
int
nbits
,
int
inverse
,
double
scale
);
51
void
av_imdct_calc
(
FFTContext
*s,
FFTSample
*output,
const
FFTSample
*input);
52
void
av_imdct_half
(
FFTContext
*s,
FFTSample
*output,
const
FFTSample
*input);
53
void
av_mdct_calc
(
FFTContext
*s,
FFTSample
*output,
const
FFTSample
*input);
54
void
av_mdct_end
(
FFTContext
*s);
55
56
/* Real Discrete Fourier Transform */
57
58
enum
RDFTransformType
{
59
DFT_R2C
,
60
IDFT_C2R
,
61
IDFT_R2C
,
62
DFT_C2R
,
63
};
64
65
typedef
struct
RDFTContext
RDFTContext
;
66
72
RDFTContext
*
av_rdft_init
(
int
nbits
,
enum
RDFTransformType
trans);
73
void
av_rdft_calc
(
RDFTContext
*s,
FFTSample
*
data
);
74
void
av_rdft_end
(
RDFTContext
*s);
75
76
/* Discrete Cosine Transform */
77
78
typedef
struct
DCTContext
DCTContext
;
79
80
enum
DCTTransformType
{
81
DCT_II
= 0,
82
DCT_III
,
83
DCT_I
,
84
DST_I
,
85
};
86
95
DCTContext
*
av_dct_init
(
int
nbits
,
enum
DCTTransformType
type);
96
void
av_dct_calc
(
DCTContext
*s,
FFTSample
*
data
);
97
void
av_dct_end
(
DCTContext
*s);
98
99
#endif
/* AVCODEC_AVFFT_H */