2 * Copyright (c) 2015 Manojkumar Bhosale (Manojkumar.Bhosale@imgtec.com)
4 * This file is part of FFmpeg.
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.
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.
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
21 #include "libavcodec/hevcdsp.h"
23 #define MC(PEL, DIR, WIDTH) \
24 void ff_hevc_put_hevc_##PEL##_##DIR####WIDTH##_8_msa(int16_t *dst, \
26 ptrdiff_t src_stride, \
71 #define UNI_MC(PEL, DIR, WIDTH) \
72 void ff_hevc_put_hevc_uni_##PEL##_##DIR####WIDTH##_8_msa(uint8_t *dst, \
73 ptrdiff_t dst_stride, \
75 ptrdiff_t src_stride, \
81 UNI_MC(pel, pixels, 4);
82 UNI_MC(pel, pixels, 6);
83 UNI_MC(pel, pixels, 8);
84 UNI_MC(pel, pixels, 12);
85 UNI_MC(pel, pixels, 16);
86 UNI_MC(pel, pixels, 24);
87 UNI_MC(pel, pixels, 32);
88 UNI_MC(pel, pixels, 48);
89 UNI_MC(pel, pixels, 64);
111 UNI_MC(qpel, hv, 12);
112 UNI_MC(qpel, hv, 16);
113 UNI_MC(qpel, hv, 24);
114 UNI_MC(qpel, hv, 32);
115 UNI_MC(qpel, hv, 48);
116 UNI_MC(qpel, hv, 64);
120 #define BI_MC(PEL, DIR, WIDTH) \
121 void ff_hevc_put_hevc_bi_##PEL##_##DIR####WIDTH##_8_msa(uint8_t *dst, \
122 ptrdiff_t dst_stride, \
124 ptrdiff_t src_stride, \
125 int16_t *src_16bit, \
131 BI_MC(pel, pixels, 4);
132 BI_MC(pel, pixels, 6);
133 BI_MC(pel, pixels, 8);
134 BI_MC(pel, pixels, 12);
135 BI_MC(pel, pixels, 16);
136 BI_MC(pel, pixels, 24);
137 BI_MC(pel, pixels, 32);
138 BI_MC(pel, pixels, 48);
139 BI_MC(pel, pixels, 64);