Mercurial > libavcodec.hg
comparison arm/dsputil_init_neon.c @ 11499:2a4dc3c0b012 libavcodec
Move H264 dsputil functions into their own struct
This moves the H264-specific functions from DSPContext to the new
H264DSPContext. The code is made conditional on CONFIG_H264DSP
which is set by the codecs requiring it.
The qpel and chroma MC functions are not moved as these are used by
non-h264 code.
author | mru |
---|---|
date | Tue, 16 Mar 2010 01:17:00 +0000 |
parents | e71b0be9ac79 |
children | f7281af560fe |
comparison
equal
deleted
inserted
replaced
11498:8e889ce0d616 | 11499:2a4dc3c0b012 |
---|---|
128 void ff_put_h264_chroma_mc2_neon(uint8_t *, uint8_t *, int, int, int, int); | 128 void ff_put_h264_chroma_mc2_neon(uint8_t *, uint8_t *, int, int, int, int); |
129 | 129 |
130 void ff_avg_h264_chroma_mc8_neon(uint8_t *, uint8_t *, int, int, int, int); | 130 void ff_avg_h264_chroma_mc8_neon(uint8_t *, uint8_t *, int, int, int, int); |
131 void ff_avg_h264_chroma_mc4_neon(uint8_t *, uint8_t *, int, int, int, int); | 131 void ff_avg_h264_chroma_mc4_neon(uint8_t *, uint8_t *, int, int, int, int); |
132 void ff_avg_h264_chroma_mc2_neon(uint8_t *, uint8_t *, int, int, int, int); | 132 void ff_avg_h264_chroma_mc2_neon(uint8_t *, uint8_t *, int, int, int, int); |
133 | |
134 void ff_h264_v_loop_filter_luma_neon(uint8_t *pix, int stride, int alpha, | |
135 int beta, int8_t *tc0); | |
136 void ff_h264_h_loop_filter_luma_neon(uint8_t *pix, int stride, int alpha, | |
137 int beta, int8_t *tc0); | |
138 void ff_h264_v_loop_filter_chroma_neon(uint8_t *pix, int stride, int alpha, | |
139 int beta, int8_t *tc0); | |
140 void ff_h264_h_loop_filter_chroma_neon(uint8_t *pix, int stride, int alpha, | |
141 int beta, int8_t *tc0); | |
142 | |
143 void ff_weight_h264_pixels_16x16_neon(uint8_t *ds, int stride, int log2_den, | |
144 int weight, int offset); | |
145 void ff_weight_h264_pixels_16x8_neon(uint8_t *ds, int stride, int log2_den, | |
146 int weight, int offset); | |
147 void ff_weight_h264_pixels_8x16_neon(uint8_t *ds, int stride, int log2_den, | |
148 int weight, int offset); | |
149 void ff_weight_h264_pixels_8x8_neon(uint8_t *ds, int stride, int log2_den, | |
150 int weight, int offset); | |
151 void ff_weight_h264_pixels_8x4_neon(uint8_t *ds, int stride, int log2_den, | |
152 int weight, int offset); | |
153 void ff_weight_h264_pixels_4x8_neon(uint8_t *ds, int stride, int log2_den, | |
154 int weight, int offset); | |
155 void ff_weight_h264_pixels_4x4_neon(uint8_t *ds, int stride, int log2_den, | |
156 int weight, int offset); | |
157 void ff_weight_h264_pixels_4x2_neon(uint8_t *ds, int stride, int log2_den, | |
158 int weight, int offset); | |
159 | |
160 void ff_biweight_h264_pixels_16x16_neon(uint8_t *dst, uint8_t *src, int stride, | |
161 int log2_den, int weightd, int weights, | |
162 int offset); | |
163 void ff_biweight_h264_pixels_16x8_neon(uint8_t *dst, uint8_t *src, int stride, | |
164 int log2_den, int weightd, int weights, | |
165 int offset); | |
166 void ff_biweight_h264_pixels_8x16_neon(uint8_t *dst, uint8_t *src, int stride, | |
167 int log2_den, int weightd, int weights, | |
168 int offset); | |
169 void ff_biweight_h264_pixels_8x8_neon(uint8_t *dst, uint8_t *src, int stride, | |
170 int log2_den, int weightd, int weights, | |
171 int offset); | |
172 void ff_biweight_h264_pixels_8x4_neon(uint8_t *dst, uint8_t *src, int stride, | |
173 int log2_den, int weightd, int weights, | |
174 int offset); | |
175 void ff_biweight_h264_pixels_4x8_neon(uint8_t *dst, uint8_t *src, int stride, | |
176 int log2_den, int weightd, int weights, | |
177 int offset); | |
178 void ff_biweight_h264_pixels_4x4_neon(uint8_t *dst, uint8_t *src, int stride, | |
179 int log2_den, int weightd, int weights, | |
180 int offset); | |
181 void ff_biweight_h264_pixels_4x2_neon(uint8_t *dst, uint8_t *src, int stride, | |
182 int log2_den, int weightd, int weights, | |
183 int offset); | |
184 | |
185 void ff_h264_idct_add_neon(uint8_t *dst, DCTELEM *block, int stride); | |
186 void ff_h264_idct_dc_add_neon(uint8_t *dst, DCTELEM *block, int stride); | |
187 void ff_h264_idct_add16_neon(uint8_t *dst, const int *block_offset, | |
188 DCTELEM *block, int stride, | |
189 const uint8_t nnzc[6*8]); | |
190 void ff_h264_idct_add16intra_neon(uint8_t *dst, const int *block_offset, | |
191 DCTELEM *block, int stride, | |
192 const uint8_t nnzc[6*8]); | |
193 void ff_h264_idct_add8_neon(uint8_t **dest, const int *block_offset, | |
194 DCTELEM *block, int stride, | |
195 const uint8_t nnzc[6*8]); | |
196 | 133 |
197 void ff_vp3_v_loop_filter_neon(uint8_t *, int, int *); | 134 void ff_vp3_v_loop_filter_neon(uint8_t *, int, int *); |
198 void ff_vp3_h_loop_filter_neon(uint8_t *, int, int *); | 135 void ff_vp3_h_loop_filter_neon(uint8_t *, int, int *); |
199 | 136 |
200 void ff_vector_fmul_neon(float *dst, const float *src, int len); | 137 void ff_vector_fmul_neon(float *dst, const float *src, int len); |
350 c->avg_h264_qpel_pixels_tab[1][11] = ff_avg_h264_qpel8_mc32_neon; | 287 c->avg_h264_qpel_pixels_tab[1][11] = ff_avg_h264_qpel8_mc32_neon; |
351 c->avg_h264_qpel_pixels_tab[1][12] = ff_avg_h264_qpel8_mc03_neon; | 288 c->avg_h264_qpel_pixels_tab[1][12] = ff_avg_h264_qpel8_mc03_neon; |
352 c->avg_h264_qpel_pixels_tab[1][13] = ff_avg_h264_qpel8_mc13_neon; | 289 c->avg_h264_qpel_pixels_tab[1][13] = ff_avg_h264_qpel8_mc13_neon; |
353 c->avg_h264_qpel_pixels_tab[1][14] = ff_avg_h264_qpel8_mc23_neon; | 290 c->avg_h264_qpel_pixels_tab[1][14] = ff_avg_h264_qpel8_mc23_neon; |
354 c->avg_h264_qpel_pixels_tab[1][15] = ff_avg_h264_qpel8_mc33_neon; | 291 c->avg_h264_qpel_pixels_tab[1][15] = ff_avg_h264_qpel8_mc33_neon; |
355 | |
356 c->h264_v_loop_filter_luma = ff_h264_v_loop_filter_luma_neon; | |
357 c->h264_h_loop_filter_luma = ff_h264_h_loop_filter_luma_neon; | |
358 c->h264_v_loop_filter_chroma = ff_h264_v_loop_filter_chroma_neon; | |
359 c->h264_h_loop_filter_chroma = ff_h264_h_loop_filter_chroma_neon; | |
360 | |
361 c->weight_h264_pixels_tab[0] = ff_weight_h264_pixels_16x16_neon; | |
362 c->weight_h264_pixels_tab[1] = ff_weight_h264_pixels_16x8_neon; | |
363 c->weight_h264_pixels_tab[2] = ff_weight_h264_pixels_8x16_neon; | |
364 c->weight_h264_pixels_tab[3] = ff_weight_h264_pixels_8x8_neon; | |
365 c->weight_h264_pixels_tab[4] = ff_weight_h264_pixels_8x4_neon; | |
366 c->weight_h264_pixels_tab[5] = ff_weight_h264_pixels_4x8_neon; | |
367 c->weight_h264_pixels_tab[6] = ff_weight_h264_pixels_4x4_neon; | |
368 c->weight_h264_pixels_tab[7] = ff_weight_h264_pixels_4x2_neon; | |
369 | |
370 c->biweight_h264_pixels_tab[0] = ff_biweight_h264_pixels_16x16_neon; | |
371 c->biweight_h264_pixels_tab[1] = ff_biweight_h264_pixels_16x8_neon; | |
372 c->biweight_h264_pixels_tab[2] = ff_biweight_h264_pixels_8x16_neon; | |
373 c->biweight_h264_pixels_tab[3] = ff_biweight_h264_pixels_8x8_neon; | |
374 c->biweight_h264_pixels_tab[4] = ff_biweight_h264_pixels_8x4_neon; | |
375 c->biweight_h264_pixels_tab[5] = ff_biweight_h264_pixels_4x8_neon; | |
376 c->biweight_h264_pixels_tab[6] = ff_biweight_h264_pixels_4x4_neon; | |
377 c->biweight_h264_pixels_tab[7] = ff_biweight_h264_pixels_4x2_neon; | |
378 | |
379 c->h264_idct_add = ff_h264_idct_add_neon; | |
380 c->h264_idct_dc_add = ff_h264_idct_dc_add_neon; | |
381 c->h264_idct_add16 = ff_h264_idct_add16_neon; | |
382 c->h264_idct_add16intra = ff_h264_idct_add16intra_neon; | |
383 c->h264_idct_add8 = ff_h264_idct_add8_neon; | |
384 } | 292 } |
385 | 293 |
386 if (CONFIG_VP3_DECODER) { | 294 if (CONFIG_VP3_DECODER) { |
387 c->vp3_v_loop_filter = ff_vp3_v_loop_filter_neon; | 295 c->vp3_v_loop_filter = ff_vp3_v_loop_filter_neon; |
388 c->vp3_h_loop_filter = ff_vp3_h_loop_filter_neon; | 296 c->vp3_h_loop_filter = ff_vp3_h_loop_filter_neon; |