1 /* 2 * Copyright (c) 2015 Parag Salasakar (Parag.Salasakar@imgtec.com) 3 * 4 * This file is part of FFmpeg. 5 * 6 * FFmpeg is free software; you can redistribute it and/or 7 * modify it under the terms of the GNU Lesser General Public 8 * License as published by the Free Software Foundation; either 9 * version 2.1 of the License, or (at your option) any later version. 10 * 11 * FFmpeg is distributed in the hope that it will be useful, 12 * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 * Lesser General Public License for more details. 15 * 16 * You should have received a copy of the GNU Lesser General Public 17 * License along with FFmpeg; if not, write to the Free Software 18 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 19 */ 20 21 #ifndef AVCODEC_MIPS_QPELDSP_MIPS_H 22 #define AVCODEC_MIPS_QPELDSP_MIPS_H 23 24 #include "../mpegvideo.h" 25 26 void ff_copy_8x8_msa(uint8_t *dst, const uint8_t *src, ptrdiff_t stride); 27 void ff_copy_16x16_msa(uint8_t *dst, const uint8_t *src, ptrdiff_t stride); 28 void ff_avg_width8_msa(uint8_t *dst, const uint8_t *src, ptrdiff_t stride); 29 void ff_avg_width16_msa(uint8_t *dst, const uint8_t *src, ptrdiff_t stride); 30 31 void ff_horiz_mc_qpel_aver_src0_8width_msa(uint8_t *dst, const uint8_t *src, 32 ptrdiff_t stride); 33 void ff_horiz_mc_qpel_aver_src0_16width_msa(uint8_t *dst, const uint8_t *src, 34 ptrdiff_t stride); 35 void ff_horiz_mc_qpel_8width_msa(uint8_t *dst, const uint8_t *src, 36 ptrdiff_t stride); 37 void ff_horiz_mc_qpel_16width_msa(uint8_t *dst, const uint8_t *src, 38 ptrdiff_t stride); 39 void ff_horiz_mc_qpel_aver_src1_8width_msa(uint8_t *dst, const uint8_t *src, 40 ptrdiff_t stride); 41 void ff_horiz_mc_qpel_aver_src1_16width_msa(uint8_t *dst, const uint8_t *src, 42 ptrdiff_t stride); 43 void ff_horiz_mc_qpel_no_rnd_aver_src0_8width_msa(uint8_t *dst, 44 const uint8_t *src, 45 ptrdiff_t stride); 46 void ff_horiz_mc_qpel_no_rnd_aver_src0_16width_msa(uint8_t *dst, 47 const uint8_t *src, 48 ptrdiff_t stride); 49 void ff_horiz_mc_qpel_no_rnd_8width_msa(uint8_t *dst, const uint8_t *src, 50 ptrdiff_t stride); 51 void ff_horiz_mc_qpel_no_rnd_16width_msa(uint8_t *dst, const uint8_t *src, 52 ptrdiff_t stride); 53 void ff_horiz_mc_qpel_no_rnd_aver_src1_8width_msa(uint8_t *dst, 54 const uint8_t *src, 55 ptrdiff_t stride); 56 void ff_horiz_mc_qpel_no_rnd_aver_src1_16width_msa(uint8_t *dst, 57 const uint8_t *src, 58 ptrdiff_t stride); 59 void ff_horiz_mc_qpel_avg_dst_aver_src0_8width_msa(uint8_t *dst, 60 const uint8_t *src, 61 ptrdiff_t stride); 62 void ff_horiz_mc_qpel_avg_dst_aver_src0_16width_msa(uint8_t *dst, 63 const uint8_t *src, 64 ptrdiff_t stride); 65 void ff_horiz_mc_qpel_avg_dst_8width_msa(uint8_t *dst, const uint8_t *src, 66 ptrdiff_t stride); 67 void ff_horiz_mc_qpel_avg_dst_16width_msa(uint8_t *dst, const uint8_t *src, 68 ptrdiff_t stride); 69 void ff_horiz_mc_qpel_avg_dst_aver_src1_8width_msa(uint8_t *dst, 70 const uint8_t *src, 71 ptrdiff_t stride); 72 void ff_horiz_mc_qpel_avg_dst_aver_src1_16width_msa(uint8_t *dst, 73 const uint8_t *src, 74 ptrdiff_t stride); 75 76 void ff_vert_mc_qpel_aver_src0_8x8_msa(uint8_t *dst, const uint8_t *src, 77 ptrdiff_t stride); 78 void ff_vert_mc_qpel_aver_src0_16x16_msa(uint8_t *dst, const uint8_t *src, 79 ptrdiff_t stride); 80 void ff_vert_mc_qpel_8x8_msa(uint8_t *dst, const uint8_t *src, 81 ptrdiff_t stride); 82 void ff_vert_mc_qpel_16x16_msa(uint8_t *dst, const uint8_t *src, 83 ptrdiff_t stride); 84 void ff_vert_mc_qpel_aver_src1_8x8_msa(uint8_t *dst, const uint8_t *src, 85 ptrdiff_t stride); 86 void ff_vert_mc_qpel_aver_src1_16x16_msa(uint8_t *dst, const uint8_t *src, 87 ptrdiff_t stride); 88 void ff_vert_mc_qpel_no_rnd_aver_src0_8x8_msa(uint8_t *dst, 89 const uint8_t *src, 90 ptrdiff_t stride); 91 void ff_vert_mc_qpel_no_rnd_aver_src0_16x16_msa(uint8_t *dst, 92 const uint8_t *src, 93 ptrdiff_t stride); 94 void ff_vert_mc_qpel_no_rnd_8x8_msa(uint8_t *dst, const uint8_t *src, 95 ptrdiff_t stride); 96 void ff_vert_mc_qpel_no_rnd_16x16_msa(uint8_t *dst, const uint8_t *src, 97 ptrdiff_t stride); 98 void ff_vert_mc_qpel_no_rnd_aver_src1_8x8_msa(uint8_t *dst, 99 const uint8_t *src, 100 ptrdiff_t stride); 101 void ff_vert_mc_qpel_no_rnd_aver_src1_16x16_msa(uint8_t *dst, 102 const uint8_t *src, 103 ptrdiff_t stride); 104 void ff_vert_mc_qpel_avg_dst_aver_src0_8x8_msa(uint8_t *dst, 105 const uint8_t *src, 106 ptrdiff_t stride); 107 void ff_vert_mc_qpel_avg_dst_aver_src0_16x16_msa(uint8_t *dst, 108 const uint8_t *src, 109 ptrdiff_t stride); 110 void ff_vert_mc_qpel_avg_dst_8x8_msa(uint8_t *dst, const uint8_t *src, 111 ptrdiff_t stride); 112 void ff_vert_mc_qpel_avg_dst_16x16_msa(uint8_t *dst, const uint8_t *src, 113 ptrdiff_t stride); 114 void ff_vert_mc_qpel_avg_dst_aver_src1_8x8_msa(uint8_t *dst, 115 const uint8_t *src, 116 ptrdiff_t stride); 117 void ff_vert_mc_qpel_avg_dst_aver_src1_16x16_msa(uint8_t *dst, 118 const uint8_t *src, 119 ptrdiff_t stride); 120 121 void ff_hv_mc_qpel_aver_hv_src00_16x16_msa(uint8_t *dst, const uint8_t *src, 122 ptrdiff_t stride); 123 void ff_hv_mc_qpel_aver_hv_src00_8x8_msa(uint8_t *dst, const uint8_t *src, 124 ptrdiff_t stride); 125 void ff_hv_mc_qpel_aver_v_src0_16x16_msa(uint8_t *dst, const uint8_t *src, 126 ptrdiff_t stride); 127 void ff_hv_mc_qpel_aver_v_src0_8x8_msa(uint8_t *dst, const uint8_t *src, 128 ptrdiff_t stride); 129 void ff_hv_mc_qpel_aver_hv_src10_16x16_msa(uint8_t *dst, const uint8_t *src, 130 ptrdiff_t stride); 131 void ff_hv_mc_qpel_aver_hv_src10_8x8_msa(uint8_t *dst, const uint8_t *src, 132 ptrdiff_t stride); 133 void ff_hv_mc_qpel_aver_h_src0_16x16_msa(uint8_t *dst, const uint8_t *src, 134 ptrdiff_t stride); 135 void ff_hv_mc_qpel_aver_h_src0_8x8_msa(uint8_t *dst, const uint8_t *src, 136 ptrdiff_t stride); 137 void ff_hv_mc_qpel_16x16_msa(uint8_t *dst, const uint8_t *src, 138 ptrdiff_t stride); 139 void ff_hv_mc_qpel_8x8_msa(uint8_t *dst, const uint8_t *src, ptrdiff_t stride); 140 void ff_hv_mc_qpel_aver_h_src1_16x16_msa(uint8_t *dst, const uint8_t *src, 141 ptrdiff_t stride); 142 void ff_hv_mc_qpel_aver_h_src1_8x8_msa(uint8_t *dst, const uint8_t *src, 143 ptrdiff_t stride); 144 void ff_hv_mc_qpel_aver_hv_src01_16x16_msa(uint8_t *dst, const uint8_t *src, 145 ptrdiff_t stride); 146 void ff_hv_mc_qpel_aver_hv_src01_8x8_msa(uint8_t *dst, const uint8_t *src, 147 ptrdiff_t stride); 148 void ff_hv_mc_qpel_aver_v_src1_16x16_msa(uint8_t *dst, const uint8_t *src, 149 ptrdiff_t stride); 150 void ff_hv_mc_qpel_aver_v_src1_8x8_msa(uint8_t *dst, const uint8_t *src, 151 ptrdiff_t stride); 152 void ff_hv_mc_qpel_aver_hv_src11_16x16_msa(uint8_t *dst, const uint8_t *src, 153 ptrdiff_t stride); 154 void ff_hv_mc_qpel_aver_hv_src11_8x8_msa(uint8_t *dst, const uint8_t *src, 155 ptrdiff_t stride); 156 void ff_hv_mc_qpel_avg_dst_aver_hv_src00_16x16_msa(uint8_t *dst, 157 const uint8_t *src, 158 ptrdiff_t stride); 159 void ff_hv_mc_qpel_avg_dst_aver_hv_src00_8x8_msa(uint8_t *dst, 160 const uint8_t *src, 161 ptrdiff_t stride); 162 void ff_hv_mc_qpel_avg_dst_aver_v_src0_16x16_msa(uint8_t *dst, 163 const uint8_t *src, 164 ptrdiff_t stride); 165 void ff_hv_mc_qpel_avg_dst_aver_v_src0_8x8_msa(uint8_t *dst, 166 const uint8_t *src, 167 ptrdiff_t stride); 168 void ff_hv_mc_qpel_avg_dst_aver_hv_src10_16x16_msa(uint8_t *dst, 169 const uint8_t *src, 170 ptrdiff_t stride); 171 void ff_hv_mc_qpel_avg_dst_aver_hv_src10_8x8_msa(uint8_t *dst, 172 const uint8_t *src, 173 ptrdiff_t stride); 174 void ff_hv_mc_qpel_avg_dst_aver_h_src0_16x16_msa(uint8_t *dst, 175 const uint8_t *src, 176 ptrdiff_t stride); 177 void ff_hv_mc_qpel_avg_dst_aver_h_src0_8x8_msa(uint8_t *dst, 178 const uint8_t *src, 179 ptrdiff_t stride); 180 void ff_hv_mc_qpel_avg_dst_16x16_msa(uint8_t *dst, const uint8_t *src, 181 ptrdiff_t stride); 182 void ff_hv_mc_qpel_avg_dst_8x8_msa(uint8_t *dst, const uint8_t *src, 183 ptrdiff_t stride); 184 void ff_hv_mc_qpel_avg_dst_aver_h_src1_16x16_msa(uint8_t *dst, 185 const uint8_t *src, 186 ptrdiff_t stride); 187 void ff_hv_mc_qpel_avg_dst_aver_h_src1_8x8_msa(uint8_t *dst, 188 const uint8_t *src, 189 ptrdiff_t stride); 190 void ff_hv_mc_qpel_avg_dst_aver_hv_src01_16x16_msa(uint8_t *dst, 191 const uint8_t *src, 192 ptrdiff_t stride); 193 void ff_hv_mc_qpel_avg_dst_aver_hv_src01_8x8_msa(uint8_t *dst, 194 const uint8_t *src, 195 ptrdiff_t stride); 196 void ff_hv_mc_qpel_avg_dst_aver_v_src1_16x16_msa(uint8_t *dst, 197 const uint8_t *src, 198 ptrdiff_t stride); 199 void ff_hv_mc_qpel_avg_dst_aver_v_src1_8x8_msa(uint8_t *dst, 200 const uint8_t *src, 201 ptrdiff_t stride); 202 void ff_hv_mc_qpel_avg_dst_aver_hv_src11_16x16_msa(uint8_t *dst, 203 const uint8_t *src, 204 ptrdiff_t stride); 205 void ff_hv_mc_qpel_avg_dst_aver_hv_src11_8x8_msa(uint8_t *dst, 206 const uint8_t *src, 207 ptrdiff_t stride); 208 void ff_hv_mc_qpel_no_rnd_aver_hv_src00_16x16_msa(uint8_t *dst, 209 const uint8_t *src, 210 ptrdiff_t stride); 211 void ff_hv_mc_qpel_no_rnd_aver_hv_src00_8x8_msa(uint8_t *dst, 212 const uint8_t *src, 213 ptrdiff_t stride); 214 void ff_hv_mc_qpel_no_rnd_aver_v_src0_16x16_msa(uint8_t *dst, 215 const uint8_t *src, 216 ptrdiff_t stride); 217 void ff_hv_mc_qpel_no_rnd_aver_v_src0_8x8_msa(uint8_t *dst, 218 const uint8_t *src, 219 ptrdiff_t stride); 220 void ff_hv_mc_qpel_no_rnd_aver_hv_src10_16x16_msa(uint8_t *dst, 221 const uint8_t *src, 222 ptrdiff_t stride); 223 void ff_hv_mc_qpel_no_rnd_aver_hv_src10_8x8_msa(uint8_t *dst, 224 const uint8_t *src, 225 ptrdiff_t stride); 226 void ff_hv_mc_qpel_no_rnd_aver_h_src0_16x16_msa(uint8_t *dst, 227 const uint8_t *src, 228 ptrdiff_t stride); 229 void ff_hv_mc_qpel_no_rnd_aver_h_src0_8x8_msa(uint8_t *dst, 230 const uint8_t *src, 231 ptrdiff_t stride); 232 void ff_hv_mc_qpel_no_rnd_16x16_msa(uint8_t *dst, const uint8_t *src, 233 ptrdiff_t stride); 234 void ff_hv_mc_qpel_no_rnd_8x8_msa(uint8_t *dst, const uint8_t *src, 235 ptrdiff_t stride); 236 void ff_hv_mc_qpel_no_rnd_aver_h_src1_16x16_msa(uint8_t *dst, 237 const uint8_t *src, 238 ptrdiff_t stride); 239 void ff_hv_mc_qpel_no_rnd_aver_h_src1_8x8_msa(uint8_t *dst, 240 const uint8_t *src, 241 ptrdiff_t stride); 242 void ff_hv_mc_qpel_no_rnd_aver_hv_src01_16x16_msa(uint8_t *dst, 243 const uint8_t *src, 244 ptrdiff_t stride); 245 void ff_hv_mc_qpel_no_rnd_aver_hv_src01_8x8_msa(uint8_t *dst, 246 const uint8_t *src, 247 ptrdiff_t stride); 248 void ff_hv_mc_qpel_no_rnd_aver_v_src1_16x16_msa(uint8_t *dst, 249 const uint8_t *src, 250 ptrdiff_t stride); 251 void ff_hv_mc_qpel_no_rnd_aver_v_src1_8x8_msa(uint8_t *dst, 252 const uint8_t *src, 253 ptrdiff_t stride); 254 void ff_hv_mc_qpel_no_rnd_aver_hv_src11_16x16_msa(uint8_t *dst, 255 const uint8_t *src, 256 ptrdiff_t stride); 257 void ff_hv_mc_qpel_no_rnd_aver_hv_src11_8x8_msa(uint8_t *dst, 258 const uint8_t *src, 259 ptrdiff_t stride); 260 261 #endif // #ifndef AVCODEC_MIPS_QPELDSP_MIPS_H 262