FFmpeg
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
Examples
File List
Globals
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
libavcodec
arm
dcadsp_init_arm.c
Go to the documentation of this file.
1
/*
2
* Copyright (c) 2010 Mans Rullgard <mans@mansr.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
#include "config.h"
22
23
#include "
libavutil/arm/cpu.h
"
24
#include "
libavutil/attributes.h
"
25
#include "
libavcodec/dcadsp.h
"
26
27
void
ff_dca_lfe_fir0_neon
(
float
*
out
,
const
float
*
in
,
const
float
*coefs);
28
void
ff_dca_lfe_fir1_neon
(
float
*
out
,
const
float
*
in
,
const
float
*coefs);
29
30
void
ff_dca_lfe_fir32_vfp
(
float
*
out
,
const
float
*
in
,
const
float
*coefs);
31
void
ff_dca_lfe_fir64_vfp
(
float
*
out
,
const
float
*
in
,
const
float
*coefs);
32
33
void
ff_dca_qmf_32_subbands_vfp
(
float
samples_in[32][8],
int
sb_act,
34
SynthFilterContext
*synth,
FFTContext
*imdct,
35
float
synth_buf_ptr[512],
36
int
*synth_buf_offset,
float
synth_buf2[32],
37
const
float
window[512],
float
*samples_out,
38
float
raXin[32],
float
scale
);
39
40
void
ff_synth_filter_float_vfp
(
FFTContext
*imdct,
41
float
*synth_buf_ptr,
int
*synth_buf_offset,
42
float
synth_buf2[32],
const
float
window[512],
43
float
out
[32],
const
float
in
[32],
44
float
scale
);
45
46
void
ff_synth_filter_float_neon
(
FFTContext
*imdct,
47
float
*synth_buf_ptr,
int
*synth_buf_offset,
48
float
synth_buf2[32],
const
float
window[512],
49
float
out
[32],
const
float
in
[32],
50
float
scale
);
51
52
void
ff_decode_hf_neon
(
float
dst[
DCA_SUBBANDS
][8],
53
const
int32_t
vq_num[DCA_SUBBANDS],
54
const
int8_t hf_vq[1024][32], intptr_t vq_offset,
55
int32_t
scale
[DCA_SUBBANDS][2],
56
intptr_t
start
, intptr_t
end
);
57
58
av_cold
void
ff_dcadsp_init_arm
(
DCADSPContext
*
s
)
59
{
60
int
cpu_flags
=
av_get_cpu_flags
();
61
62
if
(
have_vfp
(cpu_flags) && !
have_vfpv3
(cpu_flags)) {
63
s->
lfe_fir
[0] =
ff_dca_lfe_fir32_vfp
;
64
s->
lfe_fir
[1] =
ff_dca_lfe_fir64_vfp
;
65
s->
qmf_32_subbands
=
ff_dca_qmf_32_subbands_vfp
;
66
}
67
if
(
have_neon
(cpu_flags)) {
68
s->
lfe_fir
[0] =
ff_dca_lfe_fir0_neon
;
69
s->
lfe_fir
[1] =
ff_dca_lfe_fir1_neon
;
70
s->
decode_hf
=
ff_decode_hf_neon
;
71
}
72
}
73
74
av_cold
void
ff_synth_filter_init_arm
(
SynthFilterContext
*
s
)
75
{
76
int
cpu_flags
=
av_get_cpu_flags
();
77
78
if
(
have_vfp
(cpu_flags) && !
have_vfpv3
(cpu_flags))
79
s->
synth_filter_float
=
ff_synth_filter_float_vfp
;
80
if
(
have_neon
(cpu_flags))
81
s->
synth_filter_float
=
ff_synth_filter_float_neon
;
82
}
Generated on Sun Mar 23 2014 23:49:51 for FFmpeg by
1.8.2