• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2015 Parag Salasakar (Parag.Salasakar@imgtec.com)
3                       Zhou Xiaoyong <zhouxiaoyong@loongson.cn>
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 #ifndef AVCODEC_MIPS_H264DSP_MIPS_H
23 #define AVCODEC_MIPS_H264DSP_MIPS_H
24 
25 #include "libavcodec/h264dec.h"
26 #include "constants.h"
27 
28 void ff_h264_h_lpf_luma_inter_msa(uint8_t *src, ptrdiff_t stride,
29                                   int alpha, int beta, int8_t *tc0);
30 void ff_h264_v_lpf_luma_inter_msa(uint8_t *src, ptrdiff_t stride,
31                                   int alpha, int beta, int8_t *tc0);
32 void ff_h264_h_lpf_chroma_inter_msa(uint8_t *src, ptrdiff_t stride,
33                                     int alpha, int beta, int8_t *tc0);
34 void ff_h264_v_lpf_chroma_inter_msa(uint8_t *src, ptrdiff_t stride,
35                                     int alpha, int beta, int8_t *tc0);
36 void ff_h264_h_loop_filter_chroma422_msa(uint8_t *src, ptrdiff_t stride,
37                                          int32_t alpha, int32_t beta,
38                                          int8_t *tc0);
39 void ff_h264_h_loop_filter_chroma422_mbaff_msa(uint8_t *src, ptrdiff_t stride,
40                                                int32_t alpha, int32_t beta,
41                                                int8_t *tc0);
42 void ff_h264_h_loop_filter_luma_mbaff_msa(uint8_t *src, ptrdiff_t stride,
43                                           int32_t alpha, int32_t beta,
44                                           int8_t *tc0);
45 
46 void ff_h264_idct_add_msa(uint8_t *dst, int16_t *src, int32_t dst_stride);
47 void ff_h264_idct4x4_addblk_dc_msa(uint8_t *dst, int16_t *src,
48                                    int32_t dst_stride);
49 void ff_h264_deq_idct_luma_dc_msa(int16_t *dst, int16_t *src,
50                                   int32_t de_q_val);
51 void ff_h264_idct_add16_msa(uint8_t *dst, const int32_t *blk_offset,
52                             int16_t *block, int32_t stride,
53                             const uint8_t nnzc[15 * 8]);
54 void ff_h264_idct_add16_intra_msa(uint8_t *dst, const int32_t *blk_offset,
55                                   int16_t *block, int32_t dst_stride,
56                                   const uint8_t nnzc[15 * 8]);
57 void ff_h264_idct_add8_msa(uint8_t **dst, const int32_t *blk_offset,
58                            int16_t *block, int32_t dst_stride,
59                            const uint8_t nnzc[15 * 8]);
60 void ff_h264_idct_add8_422_msa(uint8_t **dst, const int32_t *blk_offset,
61                                int16_t *block, int32_t dst_stride,
62                                const uint8_t nnzc[15 * 8]);
63 void ff_h264_idct8_addblk_msa(uint8_t *dst, int16_t *src, int32_t dst_stride);
64 void ff_h264_idct8_dc_addblk_msa(uint8_t *dst, int16_t *src,
65                                  int32_t dst_stride);
66 void ff_h264_idct8_add4_msa(uint8_t *dst, const int *blk_offset,
67                             int16_t *blk, int dst_stride,
68                             const uint8_t nnzc[15 * 8]);
69 
70 void ff_h264_h_lpf_luma_intra_msa(uint8_t *src, ptrdiff_t stride,
71                                   int alpha, int beta);
72 void ff_h264_v_lpf_luma_intra_msa(uint8_t *src, ptrdiff_t stride,
73                                   int alpha, int beta);
74 void ff_h264_h_lpf_chroma_intra_msa(uint8_t *src, ptrdiff_t stride,
75                                     int alpha, int beta);
76 void ff_h264_v_lpf_chroma_intra_msa(uint8_t *src, ptrdiff_t stride,
77                                     int alpha, int beta);
78 void ff_h264_h_loop_filter_luma_mbaff_intra_msa(uint8_t *src, ptrdiff_t stride,
79                                                 int alpha, int beta);
80 
81 void ff_biweight_h264_pixels16_8_msa(uint8_t *dst, uint8_t *src,
82                                      ptrdiff_t stride, int height, int log2_denom,
83                                      int weightd, int weights, int offset);
84 void ff_biweight_h264_pixels8_8_msa(uint8_t *dst, uint8_t *src,
85                                     ptrdiff_t stride, int height, int log2_denom,
86                                     int weightd, int weights, int offset);
87 void ff_biweight_h264_pixels4_8_msa(uint8_t *dst, uint8_t *src,
88                                     ptrdiff_t stride, int height, int log2_denom,
89                                     int weightd, int weights, int offset);
90 void ff_weight_h264_pixels16_8_msa(uint8_t *src, ptrdiff_t stride, int height,
91                                    int log2_denom, int weight, int offset);
92 void ff_weight_h264_pixels8_8_msa(uint8_t *src, ptrdiff_t stride, int height,
93                                   int log2_denom, int weight, int offset);
94 void ff_weight_h264_pixels4_8_msa(uint8_t *src, ptrdiff_t stride, int height,
95                                   int log2_denom, int weight, int offset);
96 
97 void ff_put_h264_qpel16_mc00_msa(uint8_t *dst, const uint8_t *src,
98                                  ptrdiff_t dst_stride);
99 void ff_put_h264_qpel16_mc10_msa(uint8_t *dst, const uint8_t *src,
100                                  ptrdiff_t dst_stride);
101 void ff_put_h264_qpel16_mc20_msa(uint8_t *dst, const uint8_t *src,
102                                  ptrdiff_t dst_stride);
103 void ff_put_h264_qpel16_mc30_msa(uint8_t *dst, const uint8_t *src,
104                                  ptrdiff_t dst_stride);
105 void ff_put_h264_qpel16_mc01_msa(uint8_t *dst, const uint8_t *src,
106                                  ptrdiff_t dst_stride);
107 void ff_put_h264_qpel16_mc11_msa(uint8_t *dst, const uint8_t *src,
108                                  ptrdiff_t dst_stride);
109 void ff_put_h264_qpel16_mc21_msa(uint8_t *dst, const uint8_t *src,
110                                  ptrdiff_t dst_stride);
111 void ff_put_h264_qpel16_mc31_msa(uint8_t *dst, const uint8_t *src,
112                                  ptrdiff_t dst_stride);
113 void ff_put_h264_qpel16_mc02_msa(uint8_t *dst, const uint8_t *src,
114                                  ptrdiff_t dst_stride);
115 void ff_put_h264_qpel16_mc12_msa(uint8_t *dst, const uint8_t *src,
116                                  ptrdiff_t dst_stride);
117 void ff_put_h264_qpel16_mc22_msa(uint8_t *dst, const uint8_t *src,
118                                  ptrdiff_t dst_stride);
119 void ff_put_h264_qpel16_mc32_msa(uint8_t *dst, const uint8_t *src,
120                                  ptrdiff_t dst_stride);
121 void ff_put_h264_qpel16_mc03_msa(uint8_t *dst, const uint8_t *src,
122                                  ptrdiff_t dst_stride);
123 void ff_put_h264_qpel16_mc13_msa(uint8_t *dst, const uint8_t *src,
124                                  ptrdiff_t dst_stride);
125 void ff_put_h264_qpel16_mc23_msa(uint8_t *dst, const uint8_t *src,
126                                  ptrdiff_t dst_stride);
127 void ff_put_h264_qpel16_mc33_msa(uint8_t *dst, const uint8_t *src,
128                                  ptrdiff_t dst_stride);
129 
130 void ff_put_h264_qpel8_mc00_msa(uint8_t *dst, const uint8_t *src,
131                                 ptrdiff_t dst_stride);
132 void ff_put_h264_qpel8_mc10_msa(uint8_t *dst, const uint8_t *src,
133                                 ptrdiff_t dst_stride);
134 void ff_put_h264_qpel8_mc20_msa(uint8_t *dst, const uint8_t *src,
135                                 ptrdiff_t dst_stride);
136 void ff_put_h264_qpel8_mc30_msa(uint8_t *dst, const uint8_t *src,
137                                 ptrdiff_t dst_stride);
138 void ff_put_h264_qpel8_mc01_msa(uint8_t *dst, const uint8_t *src,
139                                 ptrdiff_t dst_stride);
140 void ff_put_h264_qpel8_mc11_msa(uint8_t *dst, const uint8_t *src,
141                                 ptrdiff_t dst_stride);
142 void ff_put_h264_qpel8_mc21_msa(uint8_t *dst, const uint8_t *src,
143                                 ptrdiff_t dst_stride);
144 void ff_put_h264_qpel8_mc31_msa(uint8_t *dst, const uint8_t *src,
145                                 ptrdiff_t dst_stride);
146 void ff_put_h264_qpel8_mc02_msa(uint8_t *dst, const uint8_t *src,
147                                 ptrdiff_t dst_stride);
148 void ff_put_h264_qpel8_mc12_msa(uint8_t *dst, const uint8_t *src,
149                                 ptrdiff_t dst_stride);
150 void ff_put_h264_qpel8_mc22_msa(uint8_t *dst, const uint8_t *src,
151                                 ptrdiff_t dst_stride);
152 void ff_put_h264_qpel8_mc32_msa(uint8_t *dst, const uint8_t *src,
153                                 ptrdiff_t dst_stride);
154 void ff_put_h264_qpel8_mc03_msa(uint8_t *dst, const uint8_t *src,
155                                 ptrdiff_t dst_stride);
156 void ff_put_h264_qpel8_mc13_msa(uint8_t *dst, const uint8_t *src,
157                                 ptrdiff_t dst_stride);
158 void ff_put_h264_qpel8_mc23_msa(uint8_t *dst, const uint8_t *src,
159                                 ptrdiff_t dst_stride);
160 void ff_put_h264_qpel8_mc33_msa(uint8_t *dst, const uint8_t *src,
161                                 ptrdiff_t dst_stride);
162 
163 void ff_put_h264_qpel4_mc00_msa(uint8_t *dst, const uint8_t *src,
164                                 ptrdiff_t dst_stride);
165 void ff_put_h264_qpel4_mc10_msa(uint8_t *dst, const uint8_t *src,
166                                 ptrdiff_t dst_stride);
167 void ff_put_h264_qpel4_mc20_msa(uint8_t *dst, const uint8_t *src,
168                                 ptrdiff_t dst_stride);
169 void ff_put_h264_qpel4_mc30_msa(uint8_t *dst, const uint8_t *src,
170                                 ptrdiff_t dst_stride);
171 void ff_put_h264_qpel4_mc01_msa(uint8_t *dst, const uint8_t *src,
172                                 ptrdiff_t dst_stride);
173 void ff_put_h264_qpel4_mc11_msa(uint8_t *dst, const uint8_t *src,
174                                 ptrdiff_t dst_stride);
175 void ff_put_h264_qpel4_mc21_msa(uint8_t *dst, const uint8_t *src,
176                                 ptrdiff_t dst_stride);
177 void ff_put_h264_qpel4_mc31_msa(uint8_t *dst, const uint8_t *src,
178                                 ptrdiff_t dst_stride);
179 void ff_put_h264_qpel4_mc02_msa(uint8_t *dst, const uint8_t *src,
180                                 ptrdiff_t dst_stride);
181 void ff_put_h264_qpel4_mc12_msa(uint8_t *dst, const uint8_t *src,
182                                 ptrdiff_t dst_stride);
183 void ff_put_h264_qpel4_mc22_msa(uint8_t *dst, const uint8_t *src,
184                                 ptrdiff_t dst_stride);
185 void ff_put_h264_qpel4_mc32_msa(uint8_t *dst, const uint8_t *src,
186                                 ptrdiff_t dst_stride);
187 void ff_put_h264_qpel4_mc03_msa(uint8_t *dst, const uint8_t *src,
188                                 ptrdiff_t dst_stride);
189 void ff_put_h264_qpel4_mc13_msa(uint8_t *dst, const uint8_t *src,
190                                 ptrdiff_t dst_stride);
191 void ff_put_h264_qpel4_mc23_msa(uint8_t *dst, const uint8_t *src,
192                                 ptrdiff_t dst_stride);
193 void ff_put_h264_qpel4_mc33_msa(uint8_t *dst, const uint8_t *src,
194                                 ptrdiff_t dst_stride);
195 
196 void ff_avg_h264_qpel16_mc00_msa(uint8_t *dst, const uint8_t *src,
197                                  ptrdiff_t dst_stride);
198 void ff_avg_h264_qpel16_mc10_msa(uint8_t *dst, const uint8_t *src,
199                                  ptrdiff_t dst_stride);
200 void ff_avg_h264_qpel16_mc20_msa(uint8_t *dst, const uint8_t *src,
201                                  ptrdiff_t dst_stride);
202 void ff_avg_h264_qpel16_mc30_msa(uint8_t *dst, const uint8_t *src,
203                                  ptrdiff_t dst_stride);
204 void ff_avg_h264_qpel16_mc01_msa(uint8_t *dst, const uint8_t *src,
205                                  ptrdiff_t dst_stride);
206 void ff_avg_h264_qpel16_mc11_msa(uint8_t *dst, const uint8_t *src,
207                                  ptrdiff_t dst_stride);
208 void ff_avg_h264_qpel16_mc21_msa(uint8_t *dst, const uint8_t *src,
209                                  ptrdiff_t dst_stride);
210 void ff_avg_h264_qpel16_mc31_msa(uint8_t *dst, const uint8_t *src,
211                                  ptrdiff_t dst_stride);
212 void ff_avg_h264_qpel16_mc02_msa(uint8_t *dst, const uint8_t *src,
213                                  ptrdiff_t dst_stride);
214 void ff_avg_h264_qpel16_mc12_msa(uint8_t *dst, const uint8_t *src,
215                                  ptrdiff_t dst_stride);
216 void ff_avg_h264_qpel16_mc22_msa(uint8_t *dst, const uint8_t *src,
217                                  ptrdiff_t dst_stride);
218 void ff_avg_h264_qpel16_mc32_msa(uint8_t *dst, const uint8_t *src,
219                                  ptrdiff_t dst_stride);
220 void ff_avg_h264_qpel16_mc03_msa(uint8_t *dst, const uint8_t *src,
221                                  ptrdiff_t dst_stride);
222 void ff_avg_h264_qpel16_mc13_msa(uint8_t *dst, const uint8_t *src,
223                                  ptrdiff_t dst_stride);
224 void ff_avg_h264_qpel16_mc23_msa(uint8_t *dst, const uint8_t *src,
225                                  ptrdiff_t dst_stride);
226 void ff_avg_h264_qpel16_mc33_msa(uint8_t *dst, const uint8_t *src,
227                                  ptrdiff_t dst_stride);
228 
229 void ff_avg_h264_qpel8_mc00_msa(uint8_t *dst, const uint8_t *src,
230                                 ptrdiff_t dst_stride);
231 void ff_avg_h264_qpel8_mc10_msa(uint8_t *dst, const uint8_t *src,
232                                 ptrdiff_t dst_stride);
233 void ff_avg_h264_qpel8_mc20_msa(uint8_t *dst, const uint8_t *src,
234                                 ptrdiff_t dst_stride);
235 void ff_avg_h264_qpel8_mc30_msa(uint8_t *dst, const uint8_t *src,
236                                 ptrdiff_t dst_stride);
237 void ff_avg_h264_qpel8_mc01_msa(uint8_t *dst, const uint8_t *src,
238                                 ptrdiff_t dst_stride);
239 void ff_avg_h264_qpel8_mc11_msa(uint8_t *dst, const uint8_t *src,
240                                 ptrdiff_t dst_stride);
241 void ff_avg_h264_qpel8_mc21_msa(uint8_t *dst, const uint8_t *src,
242                                 ptrdiff_t dst_stride);
243 void ff_avg_h264_qpel8_mc31_msa(uint8_t *dst, const uint8_t *src,
244                                 ptrdiff_t dst_stride);
245 void ff_avg_h264_qpel8_mc02_msa(uint8_t *dst, const uint8_t *src,
246                                 ptrdiff_t dst_stride);
247 void ff_avg_h264_qpel8_mc12_msa(uint8_t *dst, const uint8_t *src,
248                                 ptrdiff_t dst_stride);
249 void ff_avg_h264_qpel8_mc22_msa(uint8_t *dst, const uint8_t *src,
250                                 ptrdiff_t dst_stride);
251 void ff_avg_h264_qpel8_mc32_msa(uint8_t *dst, const uint8_t *src,
252                                 ptrdiff_t dst_stride);
253 void ff_avg_h264_qpel8_mc03_msa(uint8_t *dst, const uint8_t *src,
254                                 ptrdiff_t dst_stride);
255 void ff_avg_h264_qpel8_mc13_msa(uint8_t *dst, const uint8_t *src,
256                                 ptrdiff_t dst_stride);
257 void ff_avg_h264_qpel8_mc23_msa(uint8_t *dst, const uint8_t *src,
258                                 ptrdiff_t dst_stride);
259 void ff_avg_h264_qpel8_mc33_msa(uint8_t *dst, const uint8_t *src,
260                                 ptrdiff_t dst_stride);
261 
262 void ff_avg_h264_qpel4_mc00_msa(uint8_t *dst, const uint8_t *src,
263                                 ptrdiff_t dst_stride);
264 void ff_avg_h264_qpel4_mc10_msa(uint8_t *dst, const uint8_t *src,
265                                 ptrdiff_t dst_stride);
266 void ff_avg_h264_qpel4_mc20_msa(uint8_t *dst, const uint8_t *src,
267                                 ptrdiff_t dst_stride);
268 void ff_avg_h264_qpel4_mc30_msa(uint8_t *dst, const uint8_t *src,
269                                 ptrdiff_t dst_stride);
270 void ff_avg_h264_qpel4_mc01_msa(uint8_t *dst, const uint8_t *src,
271                                 ptrdiff_t dst_stride);
272 void ff_avg_h264_qpel4_mc11_msa(uint8_t *dst, const uint8_t *src,
273                                 ptrdiff_t dst_stride);
274 void ff_avg_h264_qpel4_mc21_msa(uint8_t *dst, const uint8_t *src,
275                                 ptrdiff_t dst_stride);
276 void ff_avg_h264_qpel4_mc31_msa(uint8_t *dst, const uint8_t *src,
277                                 ptrdiff_t dst_stride);
278 void ff_avg_h264_qpel4_mc02_msa(uint8_t *dst, const uint8_t *src,
279                                 ptrdiff_t dst_stride);
280 void ff_avg_h264_qpel4_mc12_msa(uint8_t *dst, const uint8_t *src,
281                                 ptrdiff_t dst_stride);
282 void ff_avg_h264_qpel4_mc22_msa(uint8_t *dst, const uint8_t *src,
283                                 ptrdiff_t dst_stride);
284 void ff_avg_h264_qpel4_mc32_msa(uint8_t *dst, const uint8_t *src,
285                                 ptrdiff_t dst_stride);
286 void ff_avg_h264_qpel4_mc03_msa(uint8_t *dst, const uint8_t *src,
287                                 ptrdiff_t dst_stride);
288 void ff_avg_h264_qpel4_mc13_msa(uint8_t *dst, const uint8_t *src,
289                                 ptrdiff_t dst_stride);
290 void ff_avg_h264_qpel4_mc23_msa(uint8_t *dst, const uint8_t *src,
291                                 ptrdiff_t dst_stride);
292 void ff_avg_h264_qpel4_mc33_msa(uint8_t *dst, const uint8_t *src,
293                                 ptrdiff_t dst_stride);
294 
295 void ff_h264_intra_predict_plane_8x8_msa(uint8_t *src, ptrdiff_t stride);
296 void ff_h264_intra_predict_dc_4blk_8x8_msa(uint8_t *src, ptrdiff_t stride);
297 void ff_h264_intra_predict_hor_dc_8x8_msa(uint8_t *src, ptrdiff_t stride);
298 void ff_h264_intra_predict_vert_dc_8x8_msa(uint8_t *src, ptrdiff_t stride);
299 void ff_h264_intra_predict_mad_cow_dc_l0t_8x8_msa(uint8_t *src,
300                                                   ptrdiff_t stride);
301 void ff_h264_intra_predict_mad_cow_dc_0lt_8x8_msa(uint8_t *src,
302                                                   ptrdiff_t stride);
303 void ff_h264_intra_predict_mad_cow_dc_l00_8x8_msa(uint8_t *src,
304                                                   ptrdiff_t stride);
305 void ff_h264_intra_predict_mad_cow_dc_0l0_8x8_msa(uint8_t *src,
306                                                   ptrdiff_t stride);
307 void ff_h264_intra_predict_plane_16x16_msa(uint8_t *src, ptrdiff_t stride);
308 void ff_h264_intra_pred_vert_8x8_msa(uint8_t *src, ptrdiff_t stride);
309 void ff_h264_intra_pred_horiz_8x8_msa(uint8_t *src, ptrdiff_t stride);
310 void ff_h264_intra_pred_dc_16x16_msa(uint8_t *src, ptrdiff_t stride);
311 void ff_h264_intra_pred_vert_16x16_msa(uint8_t *src, ptrdiff_t stride);
312 void ff_h264_intra_pred_horiz_16x16_msa(uint8_t *src, ptrdiff_t stride);
313 void ff_h264_intra_pred_dc_left_16x16_msa(uint8_t *src, ptrdiff_t stride);
314 void ff_h264_intra_pred_dc_top_16x16_msa(uint8_t *src, ptrdiff_t stride);
315 void ff_h264_intra_pred_dc_128_8x8_msa(uint8_t *src, ptrdiff_t stride);
316 void ff_h264_intra_pred_dc_128_16x16_msa(uint8_t *src, ptrdiff_t stride);
317 void ff_vp8_pred8x8_127_dc_8_msa(uint8_t *src, ptrdiff_t stride);
318 void ff_vp8_pred8x8_129_dc_8_msa(uint8_t *src, ptrdiff_t stride);
319 void ff_vp8_pred16x16_127_dc_8_msa(uint8_t *src, ptrdiff_t stride);
320 void ff_vp8_pred16x16_129_dc_8_msa(uint8_t *src, ptrdiff_t stride);
321 
322 void ff_h264_add_pixels4_8_mmi(uint8_t *_dst, int16_t *_src, int stride);
323 void ff_h264_idct_add_8_mmi(uint8_t *dst, int16_t *block, int stride);
324 void ff_h264_idct8_add_8_mmi(uint8_t *dst, int16_t *block, int stride);
325 void ff_h264_idct_dc_add_8_mmi(uint8_t *dst, int16_t *block, int stride);
326 void ff_h264_idct8_dc_add_8_mmi(uint8_t *dst, int16_t *block, int stride);
327 void ff_h264_idct_add16_8_mmi(uint8_t *dst, const int *block_offset,
328         int16_t *block, int stride, const uint8_t nnzc[15*8]);
329 void ff_h264_idct_add16intra_8_mmi(uint8_t *dst, const int *block_offset,
330         int16_t *block, int stride, const uint8_t nnzc[15*8]);
331 void ff_h264_idct8_add4_8_mmi(uint8_t *dst, const int *block_offset,
332         int16_t *block, int stride, const uint8_t nnzc[15*8]);
333 void ff_h264_idct_add8_8_mmi(uint8_t **dest, const int *block_offset,
334         int16_t *block, int stride, const uint8_t nnzc[15*8]);
335 void ff_h264_idct_add8_422_8_mmi(uint8_t **dest, const int *block_offset,
336         int16_t *block, int stride, const uint8_t nnzc[15*8]);
337 void ff_h264_luma_dc_dequant_idct_8_mmi(int16_t *output, int16_t *input,
338         int qmul);
339 void ff_h264_chroma_dc_dequant_idct_8_mmi(int16_t *block, int qmul);
340 void ff_h264_chroma422_dc_dequant_idct_8_mmi(int16_t *block, int qmul);
341 
342 void ff_h264_weight_pixels16_8_mmi(uint8_t *block, ptrdiff_t stride, int height,
343         int log2_denom, int weight, int offset);
344 void ff_h264_biweight_pixels16_8_mmi(uint8_t *dst, uint8_t *src,
345         ptrdiff_t stride, int height, int log2_denom, int weightd, int weights,
346         int offset);
347 void ff_h264_weight_pixels8_8_mmi(uint8_t *block, ptrdiff_t stride, int height,
348         int log2_denom, int weight, int offset);
349 void ff_h264_biweight_pixels8_8_mmi(uint8_t *dst, uint8_t *src,
350         ptrdiff_t stride, int height, int log2_denom, int weightd, int weights,
351         int offset);
352 void ff_h264_weight_pixels4_8_mmi(uint8_t *block, ptrdiff_t stride, int height,
353         int log2_denom, int weight, int offset);
354 void ff_h264_biweight_pixels4_8_mmi(uint8_t *dst, uint8_t *src,
355         ptrdiff_t stride, int height, int log2_denom, int weightd, int weights,
356         int offset);
357 
358 void ff_deblock_v_chroma_8_mmi(uint8_t *pix, ptrdiff_t stride, int alpha, int beta,
359         int8_t *tc0);
360 void ff_deblock_v_chroma_intra_8_mmi(uint8_t *pix, ptrdiff_t stride, int alpha,
361         int beta);
362 void ff_deblock_h_chroma_8_mmi(uint8_t *pix, ptrdiff_t stride, int alpha, int beta,
363         int8_t *tc0);
364 void ff_deblock_h_chroma_intra_8_mmi(uint8_t *pix, ptrdiff_t stride, int alpha,
365         int beta);
366 void ff_deblock_v_luma_8_mmi(uint8_t *pix, ptrdiff_t stride, int alpha, int beta,
367         int8_t *tc0);
368 void ff_deblock_v_luma_intra_8_mmi(uint8_t *pix, ptrdiff_t stride, int alpha,
369         int beta);
370 void ff_deblock_h_luma_8_mmi(uint8_t *pix, ptrdiff_t stride, int alpha, int beta,
371         int8_t *tc0);
372 void ff_deblock_h_luma_intra_8_mmi(uint8_t *pix, ptrdiff_t stride, int alpha,
373         int beta);
374 void ff_deblock_v8_luma_8_mmi(uint8_t *pix, ptrdiff_t stride, int alpha, int beta,
375         int8_t *tc0);
376 void ff_deblock_v8_luma_intra_8_mmi(uint8_t *pix, ptrdiff_t stride, int alpha,
377         int beta);
378 
379 void ff_put_h264_qpel16_mc00_mmi(uint8_t *dst, const uint8_t *src,
380         ptrdiff_t dst_stride);
381 void ff_put_h264_qpel16_mc10_mmi(uint8_t *dst, const uint8_t *src,
382         ptrdiff_t dst_stride);
383 void ff_put_h264_qpel16_mc20_mmi(uint8_t *dst, const uint8_t *src,
384         ptrdiff_t dst_stride);
385 void ff_put_h264_qpel16_mc30_mmi(uint8_t *dst, const uint8_t *src,
386         ptrdiff_t dst_stride);
387 void ff_put_h264_qpel16_mc01_mmi(uint8_t *dst, const uint8_t *src,
388         ptrdiff_t dst_stride);
389 void ff_put_h264_qpel16_mc11_mmi(uint8_t *dst, const uint8_t *src,
390         ptrdiff_t dst_stride);
391 void ff_put_h264_qpel16_mc21_mmi(uint8_t *dst, const uint8_t *src,
392         ptrdiff_t dst_stride);
393 void ff_put_h264_qpel16_mc31_mmi(uint8_t *dst, const uint8_t *src,
394         ptrdiff_t dst_stride);
395 void ff_put_h264_qpel16_mc02_mmi(uint8_t *dst, const uint8_t *src,
396         ptrdiff_t dst_stride);
397 void ff_put_h264_qpel16_mc12_mmi(uint8_t *dst, const uint8_t *src,
398         ptrdiff_t dst_stride);
399 void ff_put_h264_qpel16_mc22_mmi(uint8_t *dst, const uint8_t *src,
400         ptrdiff_t dst_stride);
401 void ff_put_h264_qpel16_mc32_mmi(uint8_t *dst, const uint8_t *src,
402         ptrdiff_t dst_stride);
403 void ff_put_h264_qpel16_mc03_mmi(uint8_t *dst, const uint8_t *src,
404         ptrdiff_t dst_stride);
405 void ff_put_h264_qpel16_mc13_mmi(uint8_t *dst, const uint8_t *src,
406         ptrdiff_t dst_stride);
407 void ff_put_h264_qpel16_mc23_mmi(uint8_t *dst, const uint8_t *src,
408         ptrdiff_t dst_stride);
409 void ff_put_h264_qpel16_mc33_mmi(uint8_t *dst, const uint8_t *src,
410         ptrdiff_t dst_stride);
411 
412 void ff_put_h264_qpel8_mc00_mmi(uint8_t *dst, const uint8_t *src,
413         ptrdiff_t dst_stride);
414 void ff_put_h264_qpel8_mc10_mmi(uint8_t *dst, const uint8_t *src,
415         ptrdiff_t dst_stride);
416 void ff_put_h264_qpel8_mc20_mmi(uint8_t *dst, const uint8_t *src,
417         ptrdiff_t dst_stride);
418 void ff_put_h264_qpel8_mc30_mmi(uint8_t *dst, const uint8_t *src,
419         ptrdiff_t dst_stride);
420 void ff_put_h264_qpel8_mc01_mmi(uint8_t *dst, const uint8_t *src,
421         ptrdiff_t dst_stride);
422 void ff_put_h264_qpel8_mc11_mmi(uint8_t *dst, const uint8_t *src,
423         ptrdiff_t dst_stride);
424 void ff_put_h264_qpel8_mc21_mmi(uint8_t *dst, const uint8_t *src,
425         ptrdiff_t dst_stride);
426 void ff_put_h264_qpel8_mc31_mmi(uint8_t *dst, const uint8_t *src,
427         ptrdiff_t dst_stride);
428 void ff_put_h264_qpel8_mc02_mmi(uint8_t *dst, const uint8_t *src,
429         ptrdiff_t dst_stride);
430 void ff_put_h264_qpel8_mc12_mmi(uint8_t *dst, const uint8_t *src,
431         ptrdiff_t dst_stride);
432 void ff_put_h264_qpel8_mc22_mmi(uint8_t *dst, const uint8_t *src,
433         ptrdiff_t dst_stride);
434 void ff_put_h264_qpel8_mc32_mmi(uint8_t *dst, const uint8_t *src,
435         ptrdiff_t dst_stride);
436 void ff_put_h264_qpel8_mc03_mmi(uint8_t *dst, const uint8_t *src,
437         ptrdiff_t dst_stride);
438 void ff_put_h264_qpel8_mc13_mmi(uint8_t *dst, const uint8_t *src,
439         ptrdiff_t dst_stride);
440 void ff_put_h264_qpel8_mc23_mmi(uint8_t *dst, const uint8_t *src,
441         ptrdiff_t dst_stride);
442 void ff_put_h264_qpel8_mc33_mmi(uint8_t *dst, const uint8_t *src,
443         ptrdiff_t dst_stride);
444 
445 void ff_put_h264_qpel4_mc00_mmi(uint8_t *dst, const uint8_t *src,
446         ptrdiff_t dst_stride);
447 void ff_put_h264_qpel4_mc10_mmi(uint8_t *dst, const uint8_t *src,
448         ptrdiff_t dst_stride);
449 void ff_put_h264_qpel4_mc20_mmi(uint8_t *dst, const uint8_t *src,
450         ptrdiff_t dst_stride);
451 void ff_put_h264_qpel4_mc30_mmi(uint8_t *dst, const uint8_t *src,
452         ptrdiff_t dst_stride);
453 void ff_put_h264_qpel4_mc01_mmi(uint8_t *dst, const uint8_t *src,
454         ptrdiff_t dst_stride);
455 void ff_put_h264_qpel4_mc11_mmi(uint8_t *dst, const uint8_t *src,
456         ptrdiff_t dst_stride);
457 void ff_put_h264_qpel4_mc21_mmi(uint8_t *dst, const uint8_t *src,
458         ptrdiff_t dst_stride);
459 void ff_put_h264_qpel4_mc31_mmi(uint8_t *dst, const uint8_t *src,
460         ptrdiff_t dst_stride);
461 void ff_put_h264_qpel4_mc02_mmi(uint8_t *dst, const uint8_t *src,
462         ptrdiff_t dst_stride);
463 void ff_put_h264_qpel4_mc12_mmi(uint8_t *dst, const uint8_t *src,
464         ptrdiff_t dst_stride);
465 void ff_put_h264_qpel4_mc22_mmi(uint8_t *dst, const uint8_t *src,
466         ptrdiff_t dst_stride);
467 void ff_put_h264_qpel4_mc32_mmi(uint8_t *dst, const uint8_t *src,
468         ptrdiff_t dst_stride);
469 void ff_put_h264_qpel4_mc03_mmi(uint8_t *dst, const uint8_t *src,
470         ptrdiff_t dst_stride);
471 void ff_put_h264_qpel4_mc13_mmi(uint8_t *dst, const uint8_t *src,
472         ptrdiff_t dst_stride);
473 void ff_put_h264_qpel4_mc23_mmi(uint8_t *dst, const uint8_t *src,
474         ptrdiff_t dst_stride);
475 void ff_put_h264_qpel4_mc33_mmi(uint8_t *dst, const uint8_t *src,
476         ptrdiff_t dst_stride);
477 
478 void ff_avg_h264_qpel16_mc00_mmi(uint8_t *dst, const uint8_t *src,
479         ptrdiff_t dst_stride);
480 void ff_avg_h264_qpel16_mc10_mmi(uint8_t *dst, const uint8_t *src,
481         ptrdiff_t dst_stride);
482 void ff_avg_h264_qpel16_mc20_mmi(uint8_t *dst, const uint8_t *src,
483         ptrdiff_t dst_stride);
484 void ff_avg_h264_qpel16_mc30_mmi(uint8_t *dst, const uint8_t *src,
485         ptrdiff_t dst_stride);
486 void ff_avg_h264_qpel16_mc01_mmi(uint8_t *dst, const uint8_t *src,
487         ptrdiff_t dst_stride);
488 void ff_avg_h264_qpel16_mc11_mmi(uint8_t *dst, const uint8_t *src,
489         ptrdiff_t dst_stride);
490 void ff_avg_h264_qpel16_mc21_mmi(uint8_t *dst, const uint8_t *src,
491         ptrdiff_t dst_stride);
492 void ff_avg_h264_qpel16_mc31_mmi(uint8_t *dst, const uint8_t *src,
493         ptrdiff_t dst_stride);
494 void ff_avg_h264_qpel16_mc02_mmi(uint8_t *dst, const uint8_t *src,
495         ptrdiff_t dst_stride);
496 void ff_avg_h264_qpel16_mc12_mmi(uint8_t *dst, const uint8_t *src,
497         ptrdiff_t dst_stride);
498 void ff_avg_h264_qpel16_mc22_mmi(uint8_t *dst, const uint8_t *src,
499         ptrdiff_t dst_stride);
500 void ff_avg_h264_qpel16_mc32_mmi(uint8_t *dst, const uint8_t *src,
501         ptrdiff_t dst_stride);
502 void ff_avg_h264_qpel16_mc03_mmi(uint8_t *dst, const uint8_t *src,
503         ptrdiff_t dst_stride);
504 void ff_avg_h264_qpel16_mc13_mmi(uint8_t *dst, const uint8_t *src,
505         ptrdiff_t dst_stride);
506 void ff_avg_h264_qpel16_mc23_mmi(uint8_t *dst, const uint8_t *src,
507         ptrdiff_t dst_stride);
508 void ff_avg_h264_qpel16_mc33_mmi(uint8_t *dst, const uint8_t *src,
509         ptrdiff_t dst_stride);
510 
511 void ff_avg_h264_qpel8_mc00_mmi(uint8_t *dst, const uint8_t *src,
512         ptrdiff_t dst_stride);
513 void ff_avg_h264_qpel8_mc10_mmi(uint8_t *dst, const uint8_t *src,
514         ptrdiff_t dst_stride);
515 void ff_avg_h264_qpel8_mc20_mmi(uint8_t *dst, const uint8_t *src,
516         ptrdiff_t dst_stride);
517 void ff_avg_h264_qpel8_mc30_mmi(uint8_t *dst, const uint8_t *src,
518         ptrdiff_t dst_stride);
519 void ff_avg_h264_qpel8_mc01_mmi(uint8_t *dst, const uint8_t *src,
520         ptrdiff_t dst_stride);
521 void ff_avg_h264_qpel8_mc11_mmi(uint8_t *dst, const uint8_t *src,
522         ptrdiff_t dst_stride);
523 void ff_avg_h264_qpel8_mc21_mmi(uint8_t *dst, const uint8_t *src,
524         ptrdiff_t dst_stride);
525 void ff_avg_h264_qpel8_mc31_mmi(uint8_t *dst, const uint8_t *src,
526         ptrdiff_t dst_stride);
527 void ff_avg_h264_qpel8_mc02_mmi(uint8_t *dst, const uint8_t *src,
528         ptrdiff_t dst_stride);
529 void ff_avg_h264_qpel8_mc12_mmi(uint8_t *dst, const uint8_t *src,
530         ptrdiff_t dst_stride);
531 void ff_avg_h264_qpel8_mc22_mmi(uint8_t *dst, const uint8_t *src,
532         ptrdiff_t dst_stride);
533 void ff_avg_h264_qpel8_mc32_mmi(uint8_t *dst, const uint8_t *src,
534         ptrdiff_t dst_stride);
535 void ff_avg_h264_qpel8_mc03_mmi(uint8_t *dst, const uint8_t *src,
536         ptrdiff_t dst_stride);
537 void ff_avg_h264_qpel8_mc13_mmi(uint8_t *dst, const uint8_t *src,
538         ptrdiff_t dst_stride);
539 void ff_avg_h264_qpel8_mc23_mmi(uint8_t *dst, const uint8_t *src,
540         ptrdiff_t dst_stride);
541 void ff_avg_h264_qpel8_mc33_mmi(uint8_t *dst, const uint8_t *src,
542         ptrdiff_t dst_stride);
543 
544 void ff_avg_h264_qpel4_mc00_mmi(uint8_t *dst, const uint8_t *src,
545         ptrdiff_t dst_stride);
546 void ff_avg_h264_qpel4_mc10_mmi(uint8_t *dst, const uint8_t *src,
547         ptrdiff_t dst_stride);
548 void ff_avg_h264_qpel4_mc20_mmi(uint8_t *dst, const uint8_t *src,
549         ptrdiff_t dst_stride);
550 void ff_avg_h264_qpel4_mc30_mmi(uint8_t *dst, const uint8_t *src,
551         ptrdiff_t dst_stride);
552 void ff_avg_h264_qpel4_mc01_mmi(uint8_t *dst, const uint8_t *src,
553         ptrdiff_t dst_stride);
554 void ff_avg_h264_qpel4_mc11_mmi(uint8_t *dst, const uint8_t *src,
555         ptrdiff_t dst_stride);
556 void ff_avg_h264_qpel4_mc21_mmi(uint8_t *dst, const uint8_t *src,
557         ptrdiff_t dst_stride);
558 void ff_avg_h264_qpel4_mc31_mmi(uint8_t *dst, const uint8_t *src,
559         ptrdiff_t dst_stride);
560 void ff_avg_h264_qpel4_mc02_mmi(uint8_t *dst, const uint8_t *src,
561         ptrdiff_t dst_stride);
562 void ff_avg_h264_qpel4_mc12_mmi(uint8_t *dst, const uint8_t *src,
563         ptrdiff_t dst_stride);
564 void ff_avg_h264_qpel4_mc22_mmi(uint8_t *dst, const uint8_t *src,
565         ptrdiff_t dst_stride);
566 void ff_avg_h264_qpel4_mc32_mmi(uint8_t *dst, const uint8_t *src,
567         ptrdiff_t dst_stride);
568 void ff_avg_h264_qpel4_mc03_mmi(uint8_t *dst, const uint8_t *src,
569         ptrdiff_t dst_stride);
570 void ff_avg_h264_qpel4_mc13_mmi(uint8_t *dst, const uint8_t *src,
571         ptrdiff_t dst_stride);
572 void ff_avg_h264_qpel4_mc23_mmi(uint8_t *dst, const uint8_t *src,
573         ptrdiff_t dst_stride);
574 void ff_avg_h264_qpel4_mc33_mmi(uint8_t *dst, const uint8_t *src,
575         ptrdiff_t dst_stride);
576 
577 #endif  // #ifndef AVCODEC_MIPS_H264DSP_MIPS_H
578