FFmpeg
libavcodec
mdct15.h
1
/*
2
* Copyright (c) 2017 Rostislav Pehlivanov <atomnuker@gmail.com>
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_MDCT15_H
22
#define AVCODEC_MDCT15_H
23
24
#include <stddef.h>
25
26
#include "fft.h"
27
28
typedef
struct
MDCT15Context
{
29
int
fft_n;
30
int
len2;
31
int
len4;
32
int
inverse;
33
int
*pfa_prereindex;
34
int
*pfa_postreindex;
35
36
FFTContext
ptwo_fft;
37
FFTComplex
*tmp;
38
FFTComplex
*twiddle_exptab;
39
40
DECLARE_ALIGNED(32,
FFTComplex
, exptab)[64];
41
42
/* 15-point FFT */
43
void (*fft15)(
FFTComplex
*out,
FFTComplex
*in,
FFTComplex
*exptab, ptrdiff_t stride);
44
45
/* PFA postrotate and exptab */
46
void (*postreindex)(
FFTComplex
*out,
FFTComplex
*in,
FFTComplex
*exp,
int
*lut, ptrdiff_t len8);
47
48
/* Calculate a full 2N -> N MDCT */
49
void (*mdct)(
struct
MDCT15Context
*s,
float
*dst,
const
float
*src, ptrdiff_t stride);
50
51
/* Calculate the middle half of the iMDCT */
52
void (*imdct_half)(
struct
MDCT15Context
*s,
float
*dst,
const
float
*src,
53
ptrdiff_t stride);
54
}
MDCT15Context
;
55
56
/* Init an (i)MDCT of the length 2 * 15 * (2^N) */
57
int
ff_mdct15_init(
MDCT15Context
**ps,
int
inverse,
int
N,
double
scale);
58
void
ff_mdct15_uninit(
MDCT15Context
**ps);
59
60
void
ff_mdct15_init_x86(
MDCT15Context
*s);
61
62
#endif
/* AVCODEC_MDCT15_H */
FFTContext
Definition:
fft.h:88
FFTComplex
Definition:
avfft.h:37
MDCT15Context
Definition:
mdct15.h:28
Generated by
1.8.12