annotate arm/fft_init_arm.c @ 12488:351a81a23343 libavcodec

Set a constant frame size for encoding G.726 audio.
author jbr
date Sat, 11 Sep 2010 19:52:09 +0000
parents b7fa70eabb1f
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
10175
5cf49858179a Move per-arch fft init bits into the corresponding subdirs
mru
parents:
diff changeset
1 /*
5cf49858179a Move per-arch fft init bits into the corresponding subdirs
mru
parents:
diff changeset
2 * Copyright (c) 2009 Mans Rullgard <mans@mansr.com>
5cf49858179a Move per-arch fft init bits into the corresponding subdirs
mru
parents:
diff changeset
3 *
5cf49858179a Move per-arch fft init bits into the corresponding subdirs
mru
parents:
diff changeset
4 * This file is part of FFmpeg.
5cf49858179a Move per-arch fft init bits into the corresponding subdirs
mru
parents:
diff changeset
5 *
5cf49858179a Move per-arch fft init bits into the corresponding subdirs
mru
parents:
diff changeset
6 * FFmpeg is free software; you can redistribute it and/or
5cf49858179a Move per-arch fft init bits into the corresponding subdirs
mru
parents:
diff changeset
7 * modify it under the terms of the GNU Lesser General Public
5cf49858179a Move per-arch fft init bits into the corresponding subdirs
mru
parents:
diff changeset
8 * License as published by the Free Software Foundation; either
5cf49858179a Move per-arch fft init bits into the corresponding subdirs
mru
parents:
diff changeset
9 * version 2.1 of the License, or (at your option) any later version.
5cf49858179a Move per-arch fft init bits into the corresponding subdirs
mru
parents:
diff changeset
10 *
5cf49858179a Move per-arch fft init bits into the corresponding subdirs
mru
parents:
diff changeset
11 * FFmpeg is distributed in the hope that it will be useful,
5cf49858179a Move per-arch fft init bits into the corresponding subdirs
mru
parents:
diff changeset
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
5cf49858179a Move per-arch fft init bits into the corresponding subdirs
mru
parents:
diff changeset
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
5cf49858179a Move per-arch fft init bits into the corresponding subdirs
mru
parents:
diff changeset
14 * Lesser General Public License for more details.
5cf49858179a Move per-arch fft init bits into the corresponding subdirs
mru
parents:
diff changeset
15 *
5cf49858179a Move per-arch fft init bits into the corresponding subdirs
mru
parents:
diff changeset
16 * You should have received a copy of the GNU Lesser General Public
5cf49858179a Move per-arch fft init bits into the corresponding subdirs
mru
parents:
diff changeset
17 * License along with FFmpeg; if not, write to the Free Software
5cf49858179a Move per-arch fft init bits into the corresponding subdirs
mru
parents:
diff changeset
18 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
5cf49858179a Move per-arch fft init bits into the corresponding subdirs
mru
parents:
diff changeset
19 */
5cf49858179a Move per-arch fft init bits into the corresponding subdirs
mru
parents:
diff changeset
20
11370
4b3da727d832 Move FFT parts from dsputil.h to fft.h
mru
parents: 10205
diff changeset
21 #include "libavcodec/fft.h"
11593
b7fa70eabb1f ARM: NEON optimised synth_filter_float
mru
parents: 11532
diff changeset
22 #include "libavcodec/synth_filter.h"
10175
5cf49858179a Move per-arch fft init bits into the corresponding subdirs
mru
parents:
diff changeset
23
5cf49858179a Move per-arch fft init bits into the corresponding subdirs
mru
parents:
diff changeset
24 void ff_fft_permute_neon(FFTContext *s, FFTComplex *z);
5cf49858179a Move per-arch fft init bits into the corresponding subdirs
mru
parents:
diff changeset
25 void ff_fft_calc_neon(FFTContext *s, FFTComplex *z);
5cf49858179a Move per-arch fft init bits into the corresponding subdirs
mru
parents:
diff changeset
26
10199
38ab367d4231 Merge FFTContext and MDCTContext
mru
parents: 10175
diff changeset
27 void ff_imdct_calc_neon(FFTContext *s, FFTSample *output, const FFTSample *input);
38ab367d4231 Merge FFTContext and MDCTContext
mru
parents: 10175
diff changeset
28 void ff_imdct_half_neon(FFTContext *s, FFTSample *output, const FFTSample *input);
38ab367d4231 Merge FFTContext and MDCTContext
mru
parents: 10175
diff changeset
29 void ff_mdct_calc_neon(FFTContext *s, FFTSample *output, const FFTSample *input);
10175
5cf49858179a Move per-arch fft init bits into the corresponding subdirs
mru
parents:
diff changeset
30
11532
e011e73a902b ARM: NEON optimised RDFT
mru
parents: 11370
diff changeset
31 void ff_rdft_calc_neon(struct RDFTContext *s, FFTSample *z);
e011e73a902b ARM: NEON optimised RDFT
mru
parents: 11370
diff changeset
32
11593
b7fa70eabb1f ARM: NEON optimised synth_filter_float
mru
parents: 11532
diff changeset
33 void ff_synth_filter_float_neon(FFTContext *imdct,
b7fa70eabb1f ARM: NEON optimised synth_filter_float
mru
parents: 11532
diff changeset
34 float *synth_buf_ptr, int *synth_buf_offset,
b7fa70eabb1f ARM: NEON optimised synth_filter_float
mru
parents: 11532
diff changeset
35 float synth_buf2[32], const float window[512],
b7fa70eabb1f ARM: NEON optimised synth_filter_float
mru
parents: 11532
diff changeset
36 float out[32], const float in[32],
b7fa70eabb1f ARM: NEON optimised synth_filter_float
mru
parents: 11532
diff changeset
37 float scale, float bias);
b7fa70eabb1f ARM: NEON optimised synth_filter_float
mru
parents: 11532
diff changeset
38
10175
5cf49858179a Move per-arch fft init bits into the corresponding subdirs
mru
parents:
diff changeset
39 av_cold void ff_fft_init_arm(FFTContext *s)
5cf49858179a Move per-arch fft init bits into the corresponding subdirs
mru
parents:
diff changeset
40 {
5cf49858179a Move per-arch fft init bits into the corresponding subdirs
mru
parents:
diff changeset
41 if (HAVE_NEON) {
5cf49858179a Move per-arch fft init bits into the corresponding subdirs
mru
parents:
diff changeset
42 s->fft_permute = ff_fft_permute_neon;
5cf49858179a Move per-arch fft init bits into the corresponding subdirs
mru
parents:
diff changeset
43 s->fft_calc = ff_fft_calc_neon;
5cf49858179a Move per-arch fft init bits into the corresponding subdirs
mru
parents:
diff changeset
44 s->imdct_calc = ff_imdct_calc_neon;
5cf49858179a Move per-arch fft init bits into the corresponding subdirs
mru
parents:
diff changeset
45 s->imdct_half = ff_imdct_half_neon;
5cf49858179a Move per-arch fft init bits into the corresponding subdirs
mru
parents:
diff changeset
46 s->mdct_calc = ff_mdct_calc_neon;
10205
89a852950c34 ARM: interleave cos/sin tables for improved NEON MDCT
mru
parents: 10199
diff changeset
47 s->permutation = FF_MDCT_PERM_INTERLEAVE;
10175
5cf49858179a Move per-arch fft init bits into the corresponding subdirs
mru
parents:
diff changeset
48 }
5cf49858179a Move per-arch fft init bits into the corresponding subdirs
mru
parents:
diff changeset
49 }
11532
e011e73a902b ARM: NEON optimised RDFT
mru
parents: 11370
diff changeset
50
e011e73a902b ARM: NEON optimised RDFT
mru
parents: 11370
diff changeset
51 #if CONFIG_RDFT
e011e73a902b ARM: NEON optimised RDFT
mru
parents: 11370
diff changeset
52 av_cold void ff_rdft_init_arm(RDFTContext *s)
e011e73a902b ARM: NEON optimised RDFT
mru
parents: 11370
diff changeset
53 {
e011e73a902b ARM: NEON optimised RDFT
mru
parents: 11370
diff changeset
54 if (HAVE_NEON)
e011e73a902b ARM: NEON optimised RDFT
mru
parents: 11370
diff changeset
55 s->rdft_calc = ff_rdft_calc_neon;
e011e73a902b ARM: NEON optimised RDFT
mru
parents: 11370
diff changeset
56 }
e011e73a902b ARM: NEON optimised RDFT
mru
parents: 11370
diff changeset
57 #endif
11593
b7fa70eabb1f ARM: NEON optimised synth_filter_float
mru
parents: 11532
diff changeset
58
b7fa70eabb1f ARM: NEON optimised synth_filter_float
mru
parents: 11532
diff changeset
59 #if CONFIG_DCA_DECODER
b7fa70eabb1f ARM: NEON optimised synth_filter_float
mru
parents: 11532
diff changeset
60 av_cold void ff_synth_filter_init_arm(SynthFilterContext *s)
b7fa70eabb1f ARM: NEON optimised synth_filter_float
mru
parents: 11532
diff changeset
61 {
b7fa70eabb1f ARM: NEON optimised synth_filter_float
mru
parents: 11532
diff changeset
62 if (HAVE_NEON)
b7fa70eabb1f ARM: NEON optimised synth_filter_float
mru
parents: 11532
diff changeset
63 s->synth_filter_float = ff_synth_filter_float_neon;
b7fa70eabb1f ARM: NEON optimised synth_filter_float
mru
parents: 11532
diff changeset
64 }
b7fa70eabb1f ARM: NEON optimised synth_filter_float
mru
parents: 11532
diff changeset
65 #endif