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 27void ff_put_pixels16_msa(uint8_t *block, const uint8_t *pixels, 28 ptrdiff_t line_size, int32_t h); 29void ff_put_pixels16_x2_msa(uint8_t *block, const uint8_t *pixels, 30 ptrdiff_t line_size, int32_t h); 31void ff_put_pixels16_y2_msa(uint8_t *block, const uint8_t *pixels, 32 ptrdiff_t line_size, int32_t h); 33void ff_put_pixels16_xy2_msa(uint8_t *block, const uint8_t *pixels, 34 ptrdiff_t line_size, int32_t h); 35void ff_put_pixels8_msa(uint8_t *block, const uint8_t *pixels, 36 ptrdiff_t line_size, int32_t h); 37void ff_put_pixels8_x2_msa(uint8_t *block, const uint8_t *pixels, 38 ptrdiff_t line_size, int32_t h); 39void ff_put_pixels8_y2_msa(uint8_t *block, const uint8_t *pixels, 40 ptrdiff_t line_size, int32_t h); 41void ff_put_pixels8_xy2_msa(uint8_t *block, const uint8_t *pixels, 42 ptrdiff_t line_size, int32_t h); 43void ff_put_pixels4_msa(uint8_t *block, const uint8_t *pixels, 44 ptrdiff_t line_size, int32_t h); 45void ff_put_pixels4_x2_msa(uint8_t *block, const uint8_t *pixels, 46 ptrdiff_t line_size, int32_t h); 47void ff_put_pixels4_y2_msa(uint8_t *block, const uint8_t *pixels, 48 ptrdiff_t line_size, int32_t h); 49void ff_put_pixels4_xy2_msa(uint8_t *block, const uint8_t *pixels, 50 ptrdiff_t line_size, int32_t h); 51void ff_put_no_rnd_pixels16_x2_msa(uint8_t *block, const uint8_t *pixels, 52 ptrdiff_t line_size, int32_t h); 53void ff_put_no_rnd_pixels16_y2_msa(uint8_t *block, const uint8_t *pixels, 54 ptrdiff_t line_size, int32_t h); 55void ff_put_no_rnd_pixels16_xy2_msa(uint8_t *block, const uint8_t *pixels, 56 ptrdiff_t line_size, int32_t h); 57void ff_put_no_rnd_pixels8_x2_msa(uint8_t *block, const uint8_t *pixels, 58 ptrdiff_t line_size, int32_t h); 59void ff_put_no_rnd_pixels8_y2_msa(uint8_t *block, const uint8_t *pixels, 60 ptrdiff_t line_size, int32_t h); 61void ff_put_no_rnd_pixels8_xy2_msa(uint8_t *block, const uint8_t *pixels, 62 ptrdiff_t line_size, int32_t h); 63void ff_avg_pixels16_msa(uint8_t *block, const uint8_t *pixels, 64 ptrdiff_t line_size, int32_t h); 65void ff_avg_pixels16_x2_msa(uint8_t *block, const uint8_t *pixels, 66 ptrdiff_t line_size, int32_t h); 67void ff_avg_pixels16_y2_msa(uint8_t *block, const uint8_t *pixels, 68 ptrdiff_t line_size, int32_t h); 69void ff_avg_pixels16_xy2_msa(uint8_t *block, const uint8_t *pixels, 70 ptrdiff_t line_size, int32_t h); 71void ff_avg_pixels8_msa(uint8_t *block, const uint8_t *pixels, 72 ptrdiff_t line_size, int32_t h); 73void ff_avg_pixels8_x2_msa(uint8_t *block, const uint8_t *pixels, 74 ptrdiff_t line_size, int32_t h); 75void ff_avg_pixels8_y2_msa(uint8_t *block, const uint8_t *pixels, 76 ptrdiff_t line_size, int32_t h); 77void ff_avg_pixels8_xy2_msa(uint8_t *block, const uint8_t *pixels, 78 ptrdiff_t line_size, int32_t h); 79void ff_avg_pixels4_msa(uint8_t *block, const uint8_t *pixels, 80 ptrdiff_t line_size, int32_t h); 81void ff_avg_pixels4_x2_msa(uint8_t *block, const uint8_t *pixels, 82 ptrdiff_t line_size, int32_t h); 83void ff_avg_pixels4_y2_msa(uint8_t *block, const uint8_t *pixels, 84 ptrdiff_t line_size, int32_t h); 85void ff_avg_pixels4_xy2_msa(uint8_t *block, const uint8_t *pixels, 86 ptrdiff_t line_size, int32_t h); 87 88void 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); 91void 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); 94void 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); 97void 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); 100void 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); 103void 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); 106void 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); 109void 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 113void ff_put_pixels16_8_mmi(uint8_t *block, const uint8_t *pixels, 114 ptrdiff_t line_size, int32_t h); 115void ff_put_pixels16_x2_8_mmi(uint8_t *block, const uint8_t *pixels, 116 ptrdiff_t line_size, int32_t h); 117void ff_put_pixels16_y2_8_mmi(uint8_t *block, const uint8_t *pixels, 118 ptrdiff_t line_size, int32_t h); 119void ff_put_pixels16_xy2_8_mmi(uint8_t *block, const uint8_t *pixels, 120 ptrdiff_t line_size, int32_t h); 121void ff_put_pixels8_8_mmi(uint8_t *block, const uint8_t *pixels, 122 ptrdiff_t line_size, int32_t h); 123void ff_put_pixels8_x2_8_mmi(uint8_t *block, const uint8_t *pixels, 124 ptrdiff_t line_size, int32_t h); 125void ff_put_pixels8_y2_8_mmi(uint8_t *block, const uint8_t *pixels, 126 ptrdiff_t line_size, int32_t h); 127void ff_put_pixels8_xy2_8_mmi(uint8_t *block, const uint8_t *pixels, 128 ptrdiff_t line_size, int32_t h); 129void ff_put_pixels4_8_mmi(uint8_t *block, const uint8_t *pixels, 130 ptrdiff_t line_size, int32_t h); 131void ff_put_pixels4_x2_8_mmi(uint8_t *block, const uint8_t *pixels, 132 ptrdiff_t line_size, int32_t h); 133void ff_put_pixels4_y2_8_mmi(uint8_t *block, const uint8_t *pixels, 134 ptrdiff_t line_size, int32_t h); 135void ff_put_pixels4_xy2_8_mmi(uint8_t *block, const uint8_t *pixels, 136 ptrdiff_t line_size, int32_t h); 137void ff_put_no_rnd_pixels16_x2_8_mmi(uint8_t *block, const uint8_t *pixels, 138 ptrdiff_t line_size, int32_t h); 139void ff_put_no_rnd_pixels16_y2_8_mmi(uint8_t *block, const uint8_t *pixels, 140 ptrdiff_t line_size, int32_t h); 141void ff_put_no_rnd_pixels16_xy2_8_mmi(uint8_t *block, const uint8_t *pixels, 142 ptrdiff_t line_size, int32_t h); 143void ff_put_no_rnd_pixels8_x2_8_mmi(uint8_t *block, const uint8_t *pixels, 144 ptrdiff_t line_size, int32_t h); 145void ff_put_no_rnd_pixels8_y2_8_mmi(uint8_t *block, const uint8_t *pixels, 146 ptrdiff_t line_size, int32_t h); 147void ff_put_no_rnd_pixels8_xy2_8_mmi(uint8_t *block, const uint8_t *pixels, 148 ptrdiff_t line_size, int32_t h); 149void ff_avg_pixels16_8_mmi(uint8_t *block, const uint8_t *pixels, 150 ptrdiff_t line_size, int32_t h); 151void ff_avg_pixels16_x2_8_mmi(uint8_t *block, const uint8_t *pixels, 152 ptrdiff_t line_size, int32_t h); 153void ff_avg_pixels16_y2_8_mmi(uint8_t *block, const uint8_t *pixels, 154 ptrdiff_t line_size, int32_t h); 155void ff_avg_pixels16_xy2_8_mmi(uint8_t *block, const uint8_t *pixels, 156 ptrdiff_t line_size, int32_t h); 157void ff_avg_pixels8_8_mmi(uint8_t *block, const uint8_t *pixels, 158 ptrdiff_t line_size, int32_t h); 159void ff_avg_pixels8_x2_8_mmi(uint8_t *block, const uint8_t *pixels, 160 ptrdiff_t line_size, int32_t h); 161void ff_avg_pixels8_y2_8_mmi(uint8_t *block, const uint8_t *pixels, 162 ptrdiff_t line_size, int32_t h); 163void ff_avg_pixels8_xy2_8_mmi(uint8_t *block, const uint8_t *pixels, 164 ptrdiff_t line_size, int32_t h); 165void ff_avg_pixels4_8_mmi(uint8_t *block, const uint8_t *pixels, 166 ptrdiff_t line_size, int32_t h); 167void ff_avg_pixels4_x2_8_mmi(uint8_t *block, const uint8_t *pixels, 168 ptrdiff_t line_size, int32_t h); 169void ff_avg_pixels4_y2_8_mmi(uint8_t *block, const uint8_t *pixels, 170 ptrdiff_t line_size, int32_t h); 171void 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