Libav
libavcodec
arm
mdct_fixed_init_arm.c
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
#include "
libavutil/attributes.h
"
20
#include "
libavutil/cpu.h
"
21
#include "
libavutil/arm/cpu.h
"
22
23
#define FFT_FLOAT 0
24
#include "
libavcodec/fft.h
"
25
26
void
ff_mdct_fixed_calc_neon
(
FFTContext
*s,
FFTSample
*o,
const
FFTSample
*i);
27
void
ff_mdct_fixed_calcw_neon
(
FFTContext
*s,
FFTDouble
*o,
const
FFTSample
*i);
28
29
av_cold
void
ff_mdct_fixed_init_arm
(
FFTContext
*s)
30
{
31
int
cpu_flags =
av_get_cpu_flags
();
32
33
if
(
have_neon
(cpu_flags)) {
34
if
(!s->
inverse
&& s->
nbits
>= 3) {
35
s->
mdct_permutation
=
FF_MDCT_PERM_INTERLEAVE
;
36
s->
mdct_calc
=
ff_mdct_fixed_calc_neon
;
37
s->
mdct_calcw
=
ff_mdct_fixed_calcw_neon
;
38
}
39
}
40
}
FFTDouble
float FFTDouble
Definition:
fft.h:39
attributes.h
Macro definitions for various function/variable attributes.
av_cold
#define av_cold
Definition:
attributes.h:66
ff_mdct_fixed_calc_neon
void ff_mdct_fixed_calc_neon(FFTContext *s, FFTSample *o, const FFTSample *i)
FFTContext::mdct_calcw
void(* mdct_calcw)(struct FFTContext *s, FFTDouble *output, const FFTSample *input)
Definition:
fft.h:95
FFTContext::mdct_calc
void(* mdct_calc)(struct FFTContext *s, FFTSample *output, const FFTSample *input)
Definition:
fft.h:94
FFTSample
float FFTSample
Definition:
avfft.h:35
FFTContext
Definition:
fft.h:73
have_neon
#define have_neon(flags)
Definition:
cpu.h:27
ff_mdct_fixed_calcw_neon
void ff_mdct_fixed_calcw_neon(FFTContext *s, FFTDouble *o, const FFTSample *i)
FFTContext::nbits
int nbits
Definition:
fft.h:74
FFTContext::inverse
int inverse
Definition:
fft.h:75
cpu.h
cpu.h
av_get_cpu_flags
int av_get_cpu_flags(void)
Return the flags which specify extensions supported by the CPU.
Definition:
cpu.c:47
ff_mdct_fixed_init_arm
av_cold void ff_mdct_fixed_init_arm(FFTContext *s)
Definition:
mdct_fixed_init_arm.c:29
fft.h
FF_MDCT_PERM_INTERLEAVE
Definition:
fft.h:70
FFTContext::mdct_permutation
enum mdct_permutation_type mdct_permutation
Definition:
fft.h:97
Generated on Fri Dec 1 2017 07:11:41 for Libav by
1.8.13