FFmpeg
Main Page
Related Pages
Modules
Data Structures
Files
Examples
File List
Globals
All
Data Structures
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
libavcodec
arm
dsputil_init_neon.c
Go to the documentation of this file.
1
/*
2
* ARM NEON optimised DSP functions
3
* Copyright (c) 2008 Mans Rullgard <mans@mansr.com>
4
*
5
* This file is part of FFmpeg.
6
*
7
* FFmpeg is free software; you can redistribute it and/or
8
* modify it under the terms of the GNU Lesser General Public
9
* License as published by the Free Software Foundation; either
10
* version 2.1 of the License, or (at your option) any later version.
11
*
12
* FFmpeg is distributed in the hope that it will be useful,
13
* but WITHOUT ANY WARRANTY; without even the implied warranty of
14
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15
* Lesser General Public License for more details.
16
*
17
* You should have received a copy of the GNU Lesser General Public
18
* License along with FFmpeg; if not, write to the Free Software
19
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
20
*/
21
22
#include <stdint.h>
23
24
#include "
libavcodec/avcodec.h
"
25
#include "
libavcodec/dsputil.h
"
26
#include "
dsputil_arm.h
"
27
28
void
ff_simple_idct_neon
(
DCTELEM
*
data
);
29
void
ff_simple_idct_put_neon
(
uint8_t
*dest,
int
line_size,
DCTELEM
*
data
);
30
void
ff_simple_idct_add_neon
(
uint8_t
*dest,
int
line_size,
DCTELEM
*
data
);
31
32
void
ff_clear_block_neon
(
DCTELEM
*
block
);
33
void
ff_clear_blocks_neon
(
DCTELEM
*blocks);
34
35
void
ff_put_pixels16_neon
(
uint8_t
*,
const
uint8_t
*,
int
,
int
);
36
void
ff_put_pixels16_x2_neon
(
uint8_t
*,
const
uint8_t
*,
int
,
int
);
37
void
ff_put_pixels16_y2_neon
(
uint8_t
*,
const
uint8_t
*,
int
,
int
);
38
void
ff_put_pixels16_xy2_neon
(
uint8_t
*,
const
uint8_t
*,
int
,
int
);
39
void
ff_put_pixels8_neon
(
uint8_t
*,
const
uint8_t
*,
int
,
int
);
40
void
ff_put_pixels8_x2_neon
(
uint8_t
*,
const
uint8_t
*,
int
,
int
);
41
void
ff_put_pixels8_y2_neon
(
uint8_t
*,
const
uint8_t
*,
int
,
int
);
42
void
ff_put_pixels8_xy2_neon
(
uint8_t
*,
const
uint8_t
*,
int
,
int
);
43
void
ff_put_pixels16_x2_no_rnd_neon
(
uint8_t
*,
const
uint8_t
*,
int
,
int
);
44
void
ff_put_pixels16_y2_no_rnd_neon
(
uint8_t
*,
const
uint8_t
*,
int
,
int
);
45
void
ff_put_pixels16_xy2_no_rnd_neon
(
uint8_t
*,
const
uint8_t
*,
int
,
int
);
46
void
ff_put_pixels8_x2_no_rnd_neon
(
uint8_t
*,
const
uint8_t
*,
int
,
int
);
47
void
ff_put_pixels8_y2_no_rnd_neon
(
uint8_t
*,
const
uint8_t
*,
int
,
int
);
48
void
ff_put_pixels8_xy2_no_rnd_neon
(
uint8_t
*,
const
uint8_t
*,
int
,
int
);
49
50
void
ff_avg_pixels16_neon
(
uint8_t
*,
const
uint8_t
*,
int
,
int
);
51
void
ff_avg_pixels16_x2_neon
(
uint8_t
*,
const
uint8_t
*,
int
,
int
);
52
void
ff_avg_pixels16_y2_neon
(
uint8_t
*,
const
uint8_t
*,
int
,
int
);
53
void
ff_avg_pixels16_xy2_neon
(
uint8_t
*,
const
uint8_t
*,
int
,
int
);
54
void
ff_avg_pixels8_neon
(
uint8_t
*,
const
uint8_t
*,
int
,
int
);
55
void
ff_avg_pixels8_x2_neon
(
uint8_t
*,
const
uint8_t
*,
int
,
int
);
56
void
ff_avg_pixels8_y2_neon
(
uint8_t
*,
const
uint8_t
*,
int
,
int
);
57
void
ff_avg_pixels8_xy2_neon
(
uint8_t
*,
const
uint8_t
*,
int
,
int
);
58
void
ff_avg_pixels16_x2_no_rnd_neon
(
uint8_t
*,
const
uint8_t
*,
int
,
int
);
59
void
ff_avg_pixels16_y2_no_rnd_neon
(
uint8_t
*,
const
uint8_t
*,
int
,
int
);
60
void
ff_avg_pixels16_xy2_no_rnd_neon
(
uint8_t
*,
const
uint8_t
*,
int
,
int
);
61
void
ff_avg_pixels8_x2_no_rnd_neon
(
uint8_t
*,
const
uint8_t
*,
int
,
int
);
62
void
ff_avg_pixels8_y2_no_rnd_neon
(
uint8_t
*,
const
uint8_t
*,
int
,
int
);
63
void
ff_avg_pixels8_xy2_no_rnd_neon
(
uint8_t
*,
const
uint8_t
*,
int
,
int
);
64
65
void
ff_add_pixels_clamped_neon
(
const
DCTELEM
*,
uint8_t
*,
int
);
66
void
ff_put_pixels_clamped_neon
(
const
DCTELEM
*,
uint8_t
*,
int
);
67
void
ff_put_signed_pixels_clamped_neon
(
const
DCTELEM
*,
uint8_t
*,
int
);
68
69
void
ff_put_h264_qpel16_mc00_neon
(
uint8_t
*,
uint8_t
*,
int
);
70
void
ff_put_h264_qpel16_mc10_neon
(
uint8_t
*,
uint8_t
*,
int
);
71
void
ff_put_h264_qpel16_mc20_neon
(
uint8_t
*,
uint8_t
*,
int
);
72
void
ff_put_h264_qpel16_mc30_neon
(
uint8_t
*,
uint8_t
*,
int
);
73
void
ff_put_h264_qpel16_mc01_neon
(
uint8_t
*,
uint8_t
*,
int
);
74
void
ff_put_h264_qpel16_mc11_neon
(
uint8_t
*,
uint8_t
*,
int
);
75
void
ff_put_h264_qpel16_mc21_neon
(
uint8_t
*,
uint8_t
*,
int
);
76
void
ff_put_h264_qpel16_mc31_neon
(
uint8_t
*,
uint8_t
*,
int
);
77
void
ff_put_h264_qpel16_mc02_neon
(
uint8_t
*,
uint8_t
*,
int
);
78
void
ff_put_h264_qpel16_mc12_neon
(
uint8_t
*,
uint8_t
*,
int
);
79
void
ff_put_h264_qpel16_mc22_neon
(
uint8_t
*,
uint8_t
*,
int
);
80
void
ff_put_h264_qpel16_mc32_neon
(
uint8_t
*,
uint8_t
*,
int
);
81
void
ff_put_h264_qpel16_mc03_neon
(
uint8_t
*,
uint8_t
*,
int
);
82
void
ff_put_h264_qpel16_mc13_neon
(
uint8_t
*,
uint8_t
*,
int
);
83
void
ff_put_h264_qpel16_mc23_neon
(
uint8_t
*,
uint8_t
*,
int
);
84
void
ff_put_h264_qpel16_mc33_neon
(
uint8_t
*,
uint8_t
*,
int
);
85
86
void
ff_put_h264_qpel8_mc00_neon
(
uint8_t
*,
uint8_t
*,
int
);
87
void
ff_put_h264_qpel8_mc10_neon
(
uint8_t
*,
uint8_t
*,
int
);
88
void
ff_put_h264_qpel8_mc20_neon
(
uint8_t
*,
uint8_t
*,
int
);
89
void
ff_put_h264_qpel8_mc30_neon
(
uint8_t
*,
uint8_t
*,
int
);
90
void
ff_put_h264_qpel8_mc01_neon
(
uint8_t
*,
uint8_t
*,
int
);
91
void
ff_put_h264_qpel8_mc11_neon
(
uint8_t
*,
uint8_t
*,
int
);
92
void
ff_put_h264_qpel8_mc21_neon
(
uint8_t
*,
uint8_t
*,
int
);
93
void
ff_put_h264_qpel8_mc31_neon
(
uint8_t
*,
uint8_t
*,
int
);
94
void
ff_put_h264_qpel8_mc02_neon
(
uint8_t
*,
uint8_t
*,
int
);
95
void
ff_put_h264_qpel8_mc12_neon
(
uint8_t
*,
uint8_t
*,
int
);
96
void
ff_put_h264_qpel8_mc22_neon
(
uint8_t
*,
uint8_t
*,
int
);
97
void
ff_put_h264_qpel8_mc32_neon
(
uint8_t
*,
uint8_t
*,
int
);
98
void
ff_put_h264_qpel8_mc03_neon
(
uint8_t
*,
uint8_t
*,
int
);
99
void
ff_put_h264_qpel8_mc13_neon
(
uint8_t
*,
uint8_t
*,
int
);
100
void
ff_put_h264_qpel8_mc23_neon
(
uint8_t
*,
uint8_t
*,
int
);
101
void
ff_put_h264_qpel8_mc33_neon
(
uint8_t
*,
uint8_t
*,
int
);
102
103
void
ff_avg_h264_qpel16_mc00_neon
(
uint8_t
*,
uint8_t
*,
int
);
104
void
ff_avg_h264_qpel16_mc10_neon
(
uint8_t
*,
uint8_t
*,
int
);
105
void
ff_avg_h264_qpel16_mc20_neon
(
uint8_t
*,
uint8_t
*,
int
);
106
void
ff_avg_h264_qpel16_mc30_neon
(
uint8_t
*,
uint8_t
*,
int
);
107
void
ff_avg_h264_qpel16_mc01_neon
(
uint8_t
*,
uint8_t
*,
int
);
108
void
ff_avg_h264_qpel16_mc11_neon
(
uint8_t
*,
uint8_t
*,
int
);
109
void
ff_avg_h264_qpel16_mc21_neon
(
uint8_t
*,
uint8_t
*,
int
);
110
void
ff_avg_h264_qpel16_mc31_neon
(
uint8_t
*,
uint8_t
*,
int
);
111
void
ff_avg_h264_qpel16_mc02_neon
(
uint8_t
*,
uint8_t
*,
int
);
112
void
ff_avg_h264_qpel16_mc12_neon
(
uint8_t
*,
uint8_t
*,
int
);
113
void
ff_avg_h264_qpel16_mc22_neon
(
uint8_t
*,
uint8_t
*,
int
);
114
void
ff_avg_h264_qpel16_mc32_neon
(
uint8_t
*,
uint8_t
*,
int
);
115
void
ff_avg_h264_qpel16_mc03_neon
(
uint8_t
*,
uint8_t
*,
int
);
116
void
ff_avg_h264_qpel16_mc13_neon
(
uint8_t
*,
uint8_t
*,
int
);
117
void
ff_avg_h264_qpel16_mc23_neon
(
uint8_t
*,
uint8_t
*,
int
);
118
void
ff_avg_h264_qpel16_mc33_neon
(
uint8_t
*,
uint8_t
*,
int
);
119
120
void
ff_avg_h264_qpel8_mc00_neon
(
uint8_t
*,
uint8_t
*,
int
);
121
void
ff_avg_h264_qpel8_mc10_neon
(
uint8_t
*,
uint8_t
*,
int
);
122
void
ff_avg_h264_qpel8_mc20_neon
(
uint8_t
*,
uint8_t
*,
int
);
123
void
ff_avg_h264_qpel8_mc30_neon
(
uint8_t
*,
uint8_t
*,
int
);
124
void
ff_avg_h264_qpel8_mc01_neon
(
uint8_t
*,
uint8_t
*,
int
);
125
void
ff_avg_h264_qpel8_mc11_neon
(
uint8_t
*,
uint8_t
*,
int
);
126
void
ff_avg_h264_qpel8_mc21_neon
(
uint8_t
*,
uint8_t
*,
int
);
127
void
ff_avg_h264_qpel8_mc31_neon
(
uint8_t
*,
uint8_t
*,
int
);
128
void
ff_avg_h264_qpel8_mc02_neon
(
uint8_t
*,
uint8_t
*,
int
);
129
void
ff_avg_h264_qpel8_mc12_neon
(
uint8_t
*,
uint8_t
*,
int
);
130
void
ff_avg_h264_qpel8_mc22_neon
(
uint8_t
*,
uint8_t
*,
int
);
131
void
ff_avg_h264_qpel8_mc32_neon
(
uint8_t
*,
uint8_t
*,
int
);
132
void
ff_avg_h264_qpel8_mc03_neon
(
uint8_t
*,
uint8_t
*,
int
);
133
void
ff_avg_h264_qpel8_mc13_neon
(
uint8_t
*,
uint8_t
*,
int
);
134
void
ff_avg_h264_qpel8_mc23_neon
(
uint8_t
*,
uint8_t
*,
int
);
135
void
ff_avg_h264_qpel8_mc33_neon
(
uint8_t
*,
uint8_t
*,
int
);
136
137
void
ff_put_h264_chroma_mc8_neon
(
uint8_t
*,
uint8_t
*,
int
,
int
,
int
,
int
);
138
void
ff_put_h264_chroma_mc4_neon
(
uint8_t
*,
uint8_t
*,
int
,
int
,
int
,
int
);
139
void
ff_put_h264_chroma_mc2_neon
(
uint8_t
*,
uint8_t
*,
int
,
int
,
int
,
int
);
140
141
void
ff_avg_h264_chroma_mc8_neon
(
uint8_t
*,
uint8_t
*,
int
,
int
,
int
,
int
);
142
void
ff_avg_h264_chroma_mc4_neon
(
uint8_t
*,
uint8_t
*,
int
,
int
,
int
,
int
);
143
void
ff_avg_h264_chroma_mc2_neon
(
uint8_t
*,
uint8_t
*,
int
,
int
,
int
,
int
);
144
145
void
ff_vector_fmul_window_neon
(
float
*
dst
,
const
float
*src0,
146
const
float
*src1,
const
float
*win,
int
len
);
147
void
ff_butterflies_float_neon
(
float
*v1,
float
*v2,
int
len
);
148
float
ff_scalarproduct_float_neon
(
const
float
*v1,
const
float
*v2,
int
len
);
149
void
ff_vector_fmul_reverse_neon
(
float
*
dst
,
const
float
*src0,
150
const
float
*src1,
int
len
);
151
void
ff_vector_fmul_add_neon
(
float
*
dst
,
const
float
*src0,
const
float
*src1,
152
const
float
*src2,
int
len
);
153
154
void
ff_vector_clipf_neon
(
float
*
dst
,
const
float
*src,
float
min
,
float
max,
155
int
len
);
156
void
ff_vector_clip_int32_neon
(
int32_t
*
dst
,
const
int32_t
*src,
int32_t
min
,
157
int32_t
max,
unsigned
int
len
);
158
159
void
ff_vorbis_inverse_coupling_neon
(
float
*mag,
float
*ang,
int
blocksize);
160
161
int32_t
ff_scalarproduct_int16_neon
(
const
int16_t *v1,
const
int16_t *v2,
int
len
);
162
int32_t
ff_scalarproduct_and_madd_int16_neon
(int16_t *v1,
const
int16_t *v2,
163
const
int16_t *v3,
int
len
,
int
mul);
164
165
void
ff_apply_window_int16_neon
(int16_t *
dst
,
const
int16_t *src,
166
const
int16_t *window,
unsigned
n);
167
168
void
ff_dsputil_init_neon
(
DSPContext
*
c
,
AVCodecContext
*avctx)
169
{
170
const
int
high_bit_depth = avctx->
bits_per_raw_sample
> 8;
171
172
if
(!avctx->
lowres
&& avctx->
bits_per_raw_sample
<= 8) {
173
if
(avctx->
idct_algo
==
FF_IDCT_AUTO
||
174
avctx->
idct_algo
==
FF_IDCT_SIMPLENEON
) {
175
c->
idct_put
=
ff_simple_idct_put_neon
;
176
c->
idct_add
=
ff_simple_idct_add_neon
;
177
c->
idct
=
ff_simple_idct_neon
;
178
c->
idct_permutation_type
=
FF_PARTTRANS_IDCT_PERM
;
179
}
180
}
181
182
if
(!high_bit_depth) {
183
c->
clear_block
=
ff_clear_block_neon
;
184
c->
clear_blocks
=
ff_clear_blocks_neon
;
185
186
c->
put_pixels_tab
[0][0] =
ff_put_pixels16_neon
;
187
c->
put_pixels_tab
[0][1] =
ff_put_pixels16_x2_neon
;
188
c->
put_pixels_tab
[0][2] =
ff_put_pixels16_y2_neon
;
189
c->
put_pixels_tab
[0][3] =
ff_put_pixels16_xy2_neon
;
190
c->
put_pixels_tab
[1][0] =
ff_put_pixels8_neon
;
191
c->
put_pixels_tab
[1][1] =
ff_put_pixels8_x2_neon
;
192
c->
put_pixels_tab
[1][2] =
ff_put_pixels8_y2_neon
;
193
c->
put_pixels_tab
[1][3] =
ff_put_pixels8_xy2_neon
;
194
195
c->
put_no_rnd_pixels_tab
[0][0] =
ff_put_pixels16_neon
;
196
c->
put_no_rnd_pixels_tab
[0][1] =
ff_put_pixels16_x2_no_rnd_neon
;
197
c->
put_no_rnd_pixels_tab
[0][2] =
ff_put_pixels16_y2_no_rnd_neon
;
198
c->
put_no_rnd_pixels_tab
[0][3] =
ff_put_pixels16_xy2_no_rnd_neon
;
199
c->
put_no_rnd_pixels_tab
[1][0] =
ff_put_pixels8_neon
;
200
c->
put_no_rnd_pixels_tab
[1][1] =
ff_put_pixels8_x2_no_rnd_neon
;
201
c->
put_no_rnd_pixels_tab
[1][2] =
ff_put_pixels8_y2_no_rnd_neon
;
202
c->
put_no_rnd_pixels_tab
[1][3] =
ff_put_pixels8_xy2_no_rnd_neon
;
203
204
c->
avg_pixels_tab
[0][0] =
ff_avg_pixels16_neon
;
205
c->
avg_pixels_tab
[0][1] =
ff_avg_pixels16_x2_neon
;
206
c->
avg_pixels_tab
[0][2] =
ff_avg_pixels16_y2_neon
;
207
c->
avg_pixels_tab
[0][3] =
ff_avg_pixels16_xy2_neon
;
208
c->
avg_pixels_tab
[1][0] =
ff_avg_pixels8_neon
;
209
c->
avg_pixels_tab
[1][1] =
ff_avg_pixels8_x2_neon
;
210
c->
avg_pixels_tab
[1][2] =
ff_avg_pixels8_y2_neon
;
211
c->
avg_pixels_tab
[1][3] =
ff_avg_pixels8_xy2_neon
;
212
213
c->
avg_no_rnd_pixels_tab
[0][0] =
ff_avg_pixels16_neon
;
214
c->
avg_no_rnd_pixels_tab
[0][1] =
ff_avg_pixels16_x2_no_rnd_neon
;
215
c->
avg_no_rnd_pixels_tab
[0][2] =
ff_avg_pixels16_y2_no_rnd_neon
;
216
c->
avg_no_rnd_pixels_tab
[0][3] =
ff_avg_pixels16_xy2_no_rnd_neon
;
217
c->
avg_no_rnd_pixels_tab
[1][0] =
ff_avg_pixels8_neon
;
218
c->
avg_no_rnd_pixels_tab
[1][1] =
ff_avg_pixels8_x2_no_rnd_neon
;
219
c->
avg_no_rnd_pixels_tab
[1][2] =
ff_avg_pixels8_y2_no_rnd_neon
;
220
c->
avg_no_rnd_pixels_tab
[1][3] =
ff_avg_pixels8_xy2_no_rnd_neon
;
221
}
222
223
c->
add_pixels_clamped
=
ff_add_pixels_clamped_neon
;
224
c->
put_pixels_clamped
=
ff_put_pixels_clamped_neon
;
225
c->
put_signed_pixels_clamped
=
ff_put_signed_pixels_clamped_neon
;
226
227
if
(CONFIG_H264_DECODER && !high_bit_depth) {
228
c->
put_h264_chroma_pixels_tab
[0] =
ff_put_h264_chroma_mc8_neon
;
229
c->
put_h264_chroma_pixels_tab
[1] =
ff_put_h264_chroma_mc4_neon
;
230
c->
put_h264_chroma_pixels_tab
[2] =
ff_put_h264_chroma_mc2_neon
;
231
232
c->
avg_h264_chroma_pixels_tab
[0] =
ff_avg_h264_chroma_mc8_neon
;
233
c->
avg_h264_chroma_pixels_tab
[1] =
ff_avg_h264_chroma_mc4_neon
;
234
c->
avg_h264_chroma_pixels_tab
[2] =
ff_avg_h264_chroma_mc2_neon
;
235
236
c->
put_h264_qpel_pixels_tab
[0][ 0] =
ff_put_h264_qpel16_mc00_neon
;
237
c->
put_h264_qpel_pixels_tab
[0][ 1] =
ff_put_h264_qpel16_mc10_neon
;
238
c->
put_h264_qpel_pixels_tab
[0][ 2] =
ff_put_h264_qpel16_mc20_neon
;
239
c->
put_h264_qpel_pixels_tab
[0][ 3] =
ff_put_h264_qpel16_mc30_neon
;
240
c->
put_h264_qpel_pixels_tab
[0][ 4] =
ff_put_h264_qpel16_mc01_neon
;
241
c->
put_h264_qpel_pixels_tab
[0][ 5] =
ff_put_h264_qpel16_mc11_neon
;
242
c->
put_h264_qpel_pixels_tab
[0][ 6] =
ff_put_h264_qpel16_mc21_neon
;
243
c->
put_h264_qpel_pixels_tab
[0][ 7] =
ff_put_h264_qpel16_mc31_neon
;
244
c->
put_h264_qpel_pixels_tab
[0][ 8] =
ff_put_h264_qpel16_mc02_neon
;
245
c->
put_h264_qpel_pixels_tab
[0][ 9] =
ff_put_h264_qpel16_mc12_neon
;
246
c->
put_h264_qpel_pixels_tab
[0][10] =
ff_put_h264_qpel16_mc22_neon
;
247
c->
put_h264_qpel_pixels_tab
[0][11] =
ff_put_h264_qpel16_mc32_neon
;
248
c->
put_h264_qpel_pixels_tab
[0][12] =
ff_put_h264_qpel16_mc03_neon
;
249
c->
put_h264_qpel_pixels_tab
[0][13] =
ff_put_h264_qpel16_mc13_neon
;
250
c->
put_h264_qpel_pixels_tab
[0][14] =
ff_put_h264_qpel16_mc23_neon
;
251
c->
put_h264_qpel_pixels_tab
[0][15] =
ff_put_h264_qpel16_mc33_neon
;
252
253
c->
put_h264_qpel_pixels_tab
[1][ 0] =
ff_put_h264_qpel8_mc00_neon
;
254
c->
put_h264_qpel_pixels_tab
[1][ 1] =
ff_put_h264_qpel8_mc10_neon
;
255
c->
put_h264_qpel_pixels_tab
[1][ 2] =
ff_put_h264_qpel8_mc20_neon
;
256
c->
put_h264_qpel_pixels_tab
[1][ 3] =
ff_put_h264_qpel8_mc30_neon
;
257
c->
put_h264_qpel_pixels_tab
[1][ 4] =
ff_put_h264_qpel8_mc01_neon
;
258
c->
put_h264_qpel_pixels_tab
[1][ 5] =
ff_put_h264_qpel8_mc11_neon
;
259
c->
put_h264_qpel_pixels_tab
[1][ 6] =
ff_put_h264_qpel8_mc21_neon
;
260
c->
put_h264_qpel_pixels_tab
[1][ 7] =
ff_put_h264_qpel8_mc31_neon
;
261
c->
put_h264_qpel_pixels_tab
[1][ 8] =
ff_put_h264_qpel8_mc02_neon
;
262
c->
put_h264_qpel_pixels_tab
[1][ 9] =
ff_put_h264_qpel8_mc12_neon
;
263
c->
put_h264_qpel_pixels_tab
[1][10] =
ff_put_h264_qpel8_mc22_neon
;
264
c->
put_h264_qpel_pixels_tab
[1][11] =
ff_put_h264_qpel8_mc32_neon
;
265
c->
put_h264_qpel_pixels_tab
[1][12] =
ff_put_h264_qpel8_mc03_neon
;
266
c->
put_h264_qpel_pixels_tab
[1][13] =
ff_put_h264_qpel8_mc13_neon
;
267
c->
put_h264_qpel_pixels_tab
[1][14] =
ff_put_h264_qpel8_mc23_neon
;
268
c->
put_h264_qpel_pixels_tab
[1][15] =
ff_put_h264_qpel8_mc33_neon
;
269
270
c->
avg_h264_qpel_pixels_tab
[0][ 0] =
ff_avg_h264_qpel16_mc00_neon
;
271
c->
avg_h264_qpel_pixels_tab
[0][ 1] =
ff_avg_h264_qpel16_mc10_neon
;
272
c->
avg_h264_qpel_pixels_tab
[0][ 2] =
ff_avg_h264_qpel16_mc20_neon
;
273
c->
avg_h264_qpel_pixels_tab
[0][ 3] =
ff_avg_h264_qpel16_mc30_neon
;
274
c->
avg_h264_qpel_pixels_tab
[0][ 4] =
ff_avg_h264_qpel16_mc01_neon
;
275
c->
avg_h264_qpel_pixels_tab
[0][ 5] =
ff_avg_h264_qpel16_mc11_neon
;
276
c->
avg_h264_qpel_pixels_tab
[0][ 6] =
ff_avg_h264_qpel16_mc21_neon
;
277
c->
avg_h264_qpel_pixels_tab
[0][ 7] =
ff_avg_h264_qpel16_mc31_neon
;
278
c->
avg_h264_qpel_pixels_tab
[0][ 8] =
ff_avg_h264_qpel16_mc02_neon
;
279
c->
avg_h264_qpel_pixels_tab
[0][ 9] =
ff_avg_h264_qpel16_mc12_neon
;
280
c->
avg_h264_qpel_pixels_tab
[0][10] =
ff_avg_h264_qpel16_mc22_neon
;
281
c->
avg_h264_qpel_pixels_tab
[0][11] =
ff_avg_h264_qpel16_mc32_neon
;
282
c->
avg_h264_qpel_pixels_tab
[0][12] =
ff_avg_h264_qpel16_mc03_neon
;
283
c->
avg_h264_qpel_pixels_tab
[0][13] =
ff_avg_h264_qpel16_mc13_neon
;
284
c->
avg_h264_qpel_pixels_tab
[0][14] =
ff_avg_h264_qpel16_mc23_neon
;
285
c->
avg_h264_qpel_pixels_tab
[0][15] =
ff_avg_h264_qpel16_mc33_neon
;
286
287
c->
avg_h264_qpel_pixels_tab
[1][ 0] =
ff_avg_h264_qpel8_mc00_neon
;
288
c->
avg_h264_qpel_pixels_tab
[1][ 1] =
ff_avg_h264_qpel8_mc10_neon
;
289
c->
avg_h264_qpel_pixels_tab
[1][ 2] =
ff_avg_h264_qpel8_mc20_neon
;
290
c->
avg_h264_qpel_pixels_tab
[1][ 3] =
ff_avg_h264_qpel8_mc30_neon
;
291
c->
avg_h264_qpel_pixels_tab
[1][ 4] =
ff_avg_h264_qpel8_mc01_neon
;
292
c->
avg_h264_qpel_pixels_tab
[1][ 5] =
ff_avg_h264_qpel8_mc11_neon
;
293
c->
avg_h264_qpel_pixels_tab
[1][ 6] =
ff_avg_h264_qpel8_mc21_neon
;
294
c->
avg_h264_qpel_pixels_tab
[1][ 7] =
ff_avg_h264_qpel8_mc31_neon
;
295
c->
avg_h264_qpel_pixels_tab
[1][ 8] =
ff_avg_h264_qpel8_mc02_neon
;
296
c->
avg_h264_qpel_pixels_tab
[1][ 9] =
ff_avg_h264_qpel8_mc12_neon
;
297
c->
avg_h264_qpel_pixels_tab
[1][10] =
ff_avg_h264_qpel8_mc22_neon
;
298
c->
avg_h264_qpel_pixels_tab
[1][11] =
ff_avg_h264_qpel8_mc32_neon
;
299
c->
avg_h264_qpel_pixels_tab
[1][12] =
ff_avg_h264_qpel8_mc03_neon
;
300
c->
avg_h264_qpel_pixels_tab
[1][13] =
ff_avg_h264_qpel8_mc13_neon
;
301
c->
avg_h264_qpel_pixels_tab
[1][14] =
ff_avg_h264_qpel8_mc23_neon
;
302
c->
avg_h264_qpel_pixels_tab
[1][15] =
ff_avg_h264_qpel8_mc33_neon
;
303
}
304
305
c->
vector_fmul_window
=
ff_vector_fmul_window_neon
;
306
c->
butterflies_float
=
ff_butterflies_float_neon
;
307
c->
scalarproduct_float
=
ff_scalarproduct_float_neon
;
308
c->
vector_fmul_reverse
=
ff_vector_fmul_reverse_neon
;
309
c->
vector_fmul_add
=
ff_vector_fmul_add_neon
;
310
c->
vector_clipf
=
ff_vector_clipf_neon
;
311
c->
vector_clip_int32
=
ff_vector_clip_int32_neon
;
312
313
if
(CONFIG_VORBIS_DECODER)
314
c->
vorbis_inverse_coupling
=
ff_vorbis_inverse_coupling_neon
;
315
316
c->
scalarproduct_int16
=
ff_scalarproduct_int16_neon
;
317
c->
scalarproduct_and_madd_int16
=
ff_scalarproduct_and_madd_int16_neon
;
318
319
c->
apply_window_int16
=
ff_apply_window_int16_neon
;
320
}
Generated on Sat May 25 2013 03:58:31 for FFmpeg by
1.8.2