2 * Copyright (c) 2015 Parag Salasakar (Parag.Salasakar@imgtec.com)
3 * Copyright (c) 2016 Zhou Xiaoyong <zhouxiaoyong@loongson.cn>
5 * This file is part of FFmpeg.
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.
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.
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
22 #ifndef AVCODEC_MIPS_HPELDSP_MIPS_H
23 #define AVCODEC_MIPS_HPELDSP_MIPS_H
25 #include "libavcodec/bit_depth_template.c"
27 void ff_put_pixels16_msa(uint8_t *block, const uint8_t *pixels,
28 ptrdiff_t line_size, int32_t h);
29 void ff_put_pixels16_x2_msa(uint8_t *block, const uint8_t *pixels,
30 ptrdiff_t line_size, int32_t h);
31 void ff_put_pixels16_y2_msa(uint8_t *block, const uint8_t *pixels,
32 ptrdiff_t line_size, int32_t h);
33 void ff_put_pixels16_xy2_msa(uint8_t *block, const uint8_t *pixels,
34 ptrdiff_t line_size, int32_t h);
35 void ff_put_pixels8_msa(uint8_t *block, const uint8_t *pixels,
36 ptrdiff_t line_size, int32_t h);
37 void ff_put_pixels8_x2_msa(uint8_t *block, const uint8_t *pixels,
38 ptrdiff_t line_size, int32_t h);
39 void ff_put_pixels8_y2_msa(uint8_t *block, const uint8_t *pixels,
40 ptrdiff_t line_size, int32_t h);
41 void ff_put_pixels8_xy2_msa(uint8_t *block, const uint8_t *pixels,
42 ptrdiff_t line_size, int32_t h);
43 void ff_put_pixels4_msa(uint8_t *block, const uint8_t *pixels,
44 ptrdiff_t line_size, int32_t h);
45 void ff_put_pixels4_x2_msa(uint8_t *block, const uint8_t *pixels,
46 ptrdiff_t line_size, int32_t h);
47 void ff_put_pixels4_y2_msa(uint8_t *block, const uint8_t *pixels,
48 ptrdiff_t line_size, int32_t h);
49 void ff_put_pixels4_xy2_msa(uint8_t *block, const uint8_t *pixels,
50 ptrdiff_t line_size, int32_t h);
51 void ff_put_no_rnd_pixels16_x2_msa(uint8_t *block, const uint8_t *pixels,
52 ptrdiff_t line_size, int32_t h);
53 void ff_put_no_rnd_pixels16_y2_msa(uint8_t *block, const uint8_t *pixels,
54 ptrdiff_t line_size, int32_t h);
55 void ff_put_no_rnd_pixels16_xy2_msa(uint8_t *block, const uint8_t *pixels,
56 ptrdiff_t line_size, int32_t h);
57 void ff_put_no_rnd_pixels8_x2_msa(uint8_t *block, const uint8_t *pixels,
58 ptrdiff_t line_size, int32_t h);
59 void ff_put_no_rnd_pixels8_y2_msa(uint8_t *block, const uint8_t *pixels,
60 ptrdiff_t line_size, int32_t h);
61 void ff_put_no_rnd_pixels8_xy2_msa(uint8_t *block, const uint8_t *pixels,
62 ptrdiff_t line_size, int32_t h);
63 void ff_avg_pixels16_msa(uint8_t *block, const uint8_t *pixels,
64 ptrdiff_t line_size, int32_t h);
65 void ff_avg_pixels16_x2_msa(uint8_t *block, const uint8_t *pixels,
66 ptrdiff_t line_size, int32_t h);
67 void ff_avg_pixels16_y2_msa(uint8_t *block, const uint8_t *pixels,
68 ptrdiff_t line_size, int32_t h);
69 void ff_avg_pixels16_xy2_msa(uint8_t *block, const uint8_t *pixels,
70 ptrdiff_t line_size, int32_t h);
71 void ff_avg_pixels8_msa(uint8_t *block, const uint8_t *pixels,
72 ptrdiff_t line_size, int32_t h);
73 void ff_avg_pixels8_x2_msa(uint8_t *block, const uint8_t *pixels,
74 ptrdiff_t line_size, int32_t h);
75 void ff_avg_pixels8_y2_msa(uint8_t *block, const uint8_t *pixels,
76 ptrdiff_t line_size, int32_t h);
77 void ff_avg_pixels8_xy2_msa(uint8_t *block, const uint8_t *pixels,
78 ptrdiff_t line_size, int32_t h);
79 void ff_avg_pixels4_msa(uint8_t *block, const uint8_t *pixels,
80 ptrdiff_t line_size, int32_t h);
81 void ff_avg_pixels4_x2_msa(uint8_t *block, const uint8_t *pixels,
82 ptrdiff_t line_size, int32_t h);
83 void ff_avg_pixels4_y2_msa(uint8_t *block, const uint8_t *pixels,
84 ptrdiff_t line_size, int32_t h);
85 void ff_avg_pixels4_xy2_msa(uint8_t *block, const uint8_t *pixels,
86 ptrdiff_t line_size, int32_t h);
88 void ff_put_pixels16_l2_8_mmi(uint8_t *dst, const uint8_t *src1,
89 const uint8_t *src2, int dst_stride, int src_stride1, int src_stride2,
91 void ff_put_pixels8_l2_8_mmi(uint8_t *dst, const uint8_t *src1,
92 const uint8_t *src2, int dst_stride, int src_stride1, int src_stride2,
94 void ff_put_pixels4_l2_8_mmi(uint8_t *dst, const uint8_t *src1,
95 const uint8_t *src2, int dst_stride, int src_stride1, int src_stride2,
97 void ff_avg_pixels16_l2_8_mmi(uint8_t *dst, const uint8_t *src1,
98 const uint8_t *src2, int dst_stride, int src_stride1, int src_stride2,
100 void ff_avg_pixels8_l2_8_mmi(uint8_t *dst, const uint8_t *src1,
101 const uint8_t *src2, int dst_stride, int src_stride1, int src_stride2,
103 void ff_avg_pixels4_l2_8_mmi(uint8_t *dst, const uint8_t *src1,
104 const uint8_t *src2, int dst_stride, int src_stride1, int src_stride2,
106 void ff_put_no_rnd_pixels16_l2_8_mmi(uint8_t *dst, const uint8_t *src1,
107 const uint8_t *src2, int dst_stride, int src_stride1, int src_stride2,
109 void ff_put_no_rnd_pixels8_l2_8_mmi(uint8_t *dst, const uint8_t *src1,
110 const uint8_t *src2, int dst_stride, int src_stride1, int src_stride2,
113 void ff_put_pixels16_8_mmi(uint8_t *block, const uint8_t *pixels,
114 ptrdiff_t line_size, int32_t h);
115 void ff_put_pixels16_x2_8_mmi(uint8_t *block, const uint8_t *pixels,
116 ptrdiff_t line_size, int32_t h);
117 void ff_put_pixels16_y2_8_mmi(uint8_t *block, const uint8_t *pixels,
118 ptrdiff_t line_size, int32_t h);
119 void ff_put_pixels16_xy2_8_mmi(uint8_t *block, const uint8_t *pixels,
120 ptrdiff_t line_size, int32_t h);
121 void ff_put_pixels8_8_mmi(uint8_t *block, const uint8_t *pixels,
122 ptrdiff_t line_size, int32_t h);
123 void ff_put_pixels8_x2_8_mmi(uint8_t *block, const uint8_t *pixels,
124 ptrdiff_t line_size, int32_t h);
125 void ff_put_pixels8_y2_8_mmi(uint8_t *block, const uint8_t *pixels,
126 ptrdiff_t line_size, int32_t h);
127 void ff_put_pixels8_xy2_8_mmi(uint8_t *block, const uint8_t *pixels,
128 ptrdiff_t line_size, int32_t h);
129 void ff_put_pixels4_8_mmi(uint8_t *block, const uint8_t *pixels,
130 ptrdiff_t line_size, int32_t h);
131 void ff_put_pixels4_x2_8_mmi(uint8_t *block, const uint8_t *pixels,
132 ptrdiff_t line_size, int32_t h);
133 void ff_put_pixels4_y2_8_mmi(uint8_t *block, const uint8_t *pixels,
134 ptrdiff_t line_size, int32_t h);
135 void ff_put_pixels4_xy2_8_mmi(uint8_t *block, const uint8_t *pixels,
136 ptrdiff_t line_size, int32_t h);
137 void ff_put_no_rnd_pixels16_x2_8_mmi(uint8_t *block, const uint8_t *pixels,
138 ptrdiff_t line_size, int32_t h);
139 void ff_put_no_rnd_pixels16_y2_8_mmi(uint8_t *block, const uint8_t *pixels,
140 ptrdiff_t line_size, int32_t h);
141 void ff_put_no_rnd_pixels16_xy2_8_mmi(uint8_t *block, const uint8_t *pixels,
142 ptrdiff_t line_size, int32_t h);
143 void ff_put_no_rnd_pixels8_x2_8_mmi(uint8_t *block, const uint8_t *pixels,
144 ptrdiff_t line_size, int32_t h);
145 void ff_put_no_rnd_pixels8_y2_8_mmi(uint8_t *block, const uint8_t *pixels,
146 ptrdiff_t line_size, int32_t h);
147 void ff_put_no_rnd_pixels8_xy2_8_mmi(uint8_t *block, const uint8_t *pixels,
148 ptrdiff_t line_size, int32_t h);
149 void ff_avg_pixels16_8_mmi(uint8_t *block, const uint8_t *pixels,
150 ptrdiff_t line_size, int32_t h);
151 void ff_avg_pixels16_x2_8_mmi(uint8_t *block, const uint8_t *pixels,
152 ptrdiff_t line_size, int32_t h);
153 void ff_avg_pixels16_y2_8_mmi(uint8_t *block, const uint8_t *pixels,
154 ptrdiff_t line_size, int32_t h);
155 void ff_avg_pixels16_xy2_8_mmi(uint8_t *block, const uint8_t *pixels,
156 ptrdiff_t line_size, int32_t h);
157 void ff_avg_pixels8_8_mmi(uint8_t *block, const uint8_t *pixels,
158 ptrdiff_t line_size, int32_t h);
159 void ff_avg_pixels8_x2_8_mmi(uint8_t *block, const uint8_t *pixels,
160 ptrdiff_t line_size, int32_t h);
161 void ff_avg_pixels8_y2_8_mmi(uint8_t *block, const uint8_t *pixels,
162 ptrdiff_t line_size, int32_t h);
163 void ff_avg_pixels8_xy2_8_mmi(uint8_t *block, const uint8_t *pixels,
164 ptrdiff_t line_size, int32_t h);
165 void ff_avg_pixels4_8_mmi(uint8_t *block, const uint8_t *pixels,
166 ptrdiff_t line_size, int32_t h);
167 void ff_avg_pixels4_x2_8_mmi(uint8_t *block, const uint8_t *pixels,
168 ptrdiff_t line_size, int32_t h);
169 void ff_avg_pixels4_y2_8_mmi(uint8_t *block, const uint8_t *pixels,
170 ptrdiff_t line_size, int32_t h);
171 void ff_avg_pixels4_xy2_8_mmi(uint8_t *block, const uint8_t *pixels,
172 ptrdiff_t line_size, int32_t h);
174 #endif // #ifndef AVCODEC_MIPS_HPELDSP_MIPS_H