1 /* 2 * Copyright (c) 2015 Parag Salasakar (Parag.Salasakar@imgtec.com) 3 * Copyright (c) 2016 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_HPELDSP_MIPS_H 23 #define AVCODEC_MIPS_HPELDSP_MIPS_H 24 25 #include "libavcodec/bit_depth_template.c" 26 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); 87 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, 90 int h); 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, 93 int h); 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, 96 int h); 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, 99 int h); 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, 102 int h); 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, 105 int h); 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, 108 int h); 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, 111 int h); 112 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); 173 174 #endif // #ifndef AVCODEC_MIPS_HPELDSP_MIPS_H 175