Imported Upstream version 5.1.2
[platform/upstream/ffmpeg.git] / libavcodec / loongarch / h264qpel_lasx.h
1 /*
2  * Copyright (c) 2020 Loongson Technology Corporation Limited
3  * Contributed by Shiyou Yin <yinshiyou-hf@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_LOONGARCH_H264QPEL_LASX_H
23 #define AVCODEC_LOONGARCH_H264QPEL_LASX_H
24
25 #include <stdint.h>
26 #include <stddef.h>
27 #include "libavcodec/h264.h"
28
29 void ff_h264_h_lpf_luma_inter_lasx(uint8_t *src, int stride,
30                                    int alpha, int beta, int8_t *tc0);
31 void ff_h264_v_lpf_luma_inter_lasx(uint8_t *src, int stride,
32                                    int alpha, int beta, int8_t *tc0);
33 void ff_put_h264_qpel16_mc00_lasx(uint8_t *dst, const uint8_t *src,
34                                   ptrdiff_t dst_stride);
35 void ff_put_h264_qpel16_mc10_lasx(uint8_t *dst, const uint8_t *src,
36                                   ptrdiff_t dst_stride);
37 void ff_put_h264_qpel16_mc20_lasx(uint8_t *dst, const uint8_t *src,
38                                   ptrdiff_t dst_stride);
39 void ff_put_h264_qpel16_mc30_lasx(uint8_t *dst, const uint8_t *src,
40                                   ptrdiff_t dst_stride);
41 void ff_put_h264_qpel16_mc01_lasx(uint8_t *dst, const uint8_t *src,
42                                   ptrdiff_t dst_stride);
43 void ff_put_h264_qpel16_mc11_lasx(uint8_t *dst, const uint8_t *src,
44                                   ptrdiff_t dst_stride);
45 void ff_put_h264_qpel16_mc21_lasx(uint8_t *dst, const uint8_t *src,
46                                   ptrdiff_t dst_stride);
47 void ff_put_h264_qpel16_mc31_lasx(uint8_t *dst, const uint8_t *src,
48                                   ptrdiff_t dst_stride);
49 void ff_put_h264_qpel16_mc02_lasx(uint8_t *dst, const uint8_t *src,
50                                   ptrdiff_t dst_stride);
51 void ff_put_h264_qpel16_mc12_lasx(uint8_t *dst, const uint8_t *src,
52                                   ptrdiff_t dst_stride);
53 void ff_put_h264_qpel16_mc32_lasx(uint8_t *dst, const uint8_t *src,
54                                   ptrdiff_t dst_stride);
55 void ff_put_h264_qpel16_mc22_lasx(uint8_t *dst, const uint8_t *src,
56                                   ptrdiff_t dst_stride);
57 void ff_put_h264_qpel16_mc03_lasx(uint8_t *dst, const uint8_t *src,
58                                   ptrdiff_t dst_stride);
59 void ff_put_h264_qpel16_mc13_lasx(uint8_t *dst, const uint8_t *src,
60                                   ptrdiff_t dst_stride);
61 void ff_put_h264_qpel16_mc23_lasx(uint8_t *dst, const uint8_t *src,
62                                   ptrdiff_t dst_stride);
63 void ff_put_h264_qpel16_mc33_lasx(uint8_t *dst, const uint8_t *src,
64                                   ptrdiff_t dst_stride);
65 void ff_avg_h264_qpel16_mc00_lasx(uint8_t *dst, const uint8_t *src,
66                                   ptrdiff_t dst_stride);
67 void ff_avg_h264_qpel16_mc10_lasx(uint8_t *dst, const uint8_t *src,
68                                   ptrdiff_t dst_stride);
69 void ff_avg_h264_qpel16_mc20_lasx(uint8_t *dst, const uint8_t *src,
70                                   ptrdiff_t dst_stride);
71 void ff_avg_h264_qpel16_mc30_lasx(uint8_t *dst, const uint8_t *src,
72                                   ptrdiff_t dst_stride);
73 void ff_avg_h264_qpel16_mc01_lasx(uint8_t *dst, const uint8_t *src,
74                                   ptrdiff_t dst_stride);
75 void ff_avg_h264_qpel16_mc11_lasx(uint8_t *dst, const uint8_t *src,
76                                   ptrdiff_t dst_stride);
77 void ff_avg_h264_qpel16_mc21_lasx(uint8_t *dst, const uint8_t *src,
78                                   ptrdiff_t dst_stride);
79 void ff_avg_h264_qpel16_mc31_lasx(uint8_t *dst, const uint8_t *src,
80                                   ptrdiff_t dst_stride);
81 void ff_avg_h264_qpel16_mc02_lasx(uint8_t *dst, const uint8_t *src,
82                                   ptrdiff_t dst_stride);
83 void ff_avg_h264_qpel16_mc12_lasx(uint8_t *dst, const uint8_t *src,
84                                   ptrdiff_t dst_stride);
85 void ff_avg_h264_qpel16_mc22_lasx(uint8_t *dst, const uint8_t *src,
86                                   ptrdiff_t dst_stride);
87 void ff_avg_h264_qpel16_mc32_lasx(uint8_t *dst, const uint8_t *src,
88                                   ptrdiff_t dst_stride);
89 void ff_avg_h264_qpel16_mc03_lasx(uint8_t *dst, const uint8_t *src,
90                                   ptrdiff_t dst_stride);
91 void ff_avg_h264_qpel16_mc13_lasx(uint8_t *dst, const uint8_t *src,
92                                   ptrdiff_t dst_stride);
93 void ff_avg_h264_qpel16_mc23_lasx(uint8_t *dst, const uint8_t *src,
94                                   ptrdiff_t dst_stride);
95 void ff_avg_h264_qpel16_mc33_lasx(uint8_t *dst, const uint8_t *src,
96                                   ptrdiff_t dst_stride);
97
98 void ff_put_h264_qpel8_mc00_lasx(uint8_t *dst, const uint8_t *src,
99                                  ptrdiff_t stride);
100 void ff_put_h264_qpel8_mc10_lasx(uint8_t *dst, const uint8_t *src,
101                                  ptrdiff_t stride);
102 void ff_put_h264_qpel8_mc20_lasx(uint8_t *dst, const uint8_t *src,
103                                  ptrdiff_t stride);
104 void ff_put_h264_qpel8_mc30_lasx(uint8_t *dst, const uint8_t *src,
105                                  ptrdiff_t stride);
106 void ff_put_h264_qpel8_mc01_lasx(uint8_t *dst, const uint8_t *src,
107                                  ptrdiff_t stride);
108 void ff_put_h264_qpel8_mc11_lasx(uint8_t *dst, const uint8_t *src,
109                                  ptrdiff_t stride);
110 void ff_put_h264_qpel8_mc21_lasx(uint8_t *dst, const uint8_t *src,
111                                  ptrdiff_t stride);
112 void ff_put_h264_qpel8_mc31_lasx(uint8_t *dst, const uint8_t *src,
113                                  ptrdiff_t stride);
114 void ff_put_h264_qpel8_mc02_lasx(uint8_t *dst, const uint8_t *src,
115                                  ptrdiff_t stride);
116 void ff_put_h264_qpel8_mc12_lasx(uint8_t *dst, const uint8_t *src,
117                                  ptrdiff_t stride);
118 void ff_put_h264_qpel8_mc22_lasx(uint8_t *dst, const uint8_t *src,
119                                  ptrdiff_t stride);
120 void ff_put_h264_qpel8_mc32_lasx(uint8_t *dst, const uint8_t *src,
121                                  ptrdiff_t stride);
122 void ff_put_h264_qpel8_mc03_lasx(uint8_t *dst, const uint8_t *src,
123                                  ptrdiff_t stride);
124 void ff_put_h264_qpel8_mc13_lasx(uint8_t *dst, const uint8_t *src,
125                                  ptrdiff_t stride);
126 void ff_put_h264_qpel8_mc23_lasx(uint8_t *dst, const uint8_t *src,
127                                  ptrdiff_t stride);
128 void ff_put_h264_qpel8_mc33_lasx(uint8_t *dst, const uint8_t *src,
129                                  ptrdiff_t stride);
130 void ff_avg_h264_qpel8_mc00_lasx(uint8_t *dst, const uint8_t *src,
131                                  ptrdiff_t dst_stride);
132 void ff_avg_h264_qpel8_mc10_lasx(uint8_t *dst, const uint8_t *src,
133                                  ptrdiff_t dst_stride);
134 void ff_avg_h264_qpel8_mc20_lasx(uint8_t *dst, const uint8_t *src,
135                                  ptrdiff_t dst_stride);
136 void ff_avg_h264_qpel8_mc30_lasx(uint8_t *dst, const uint8_t *src,
137                                  ptrdiff_t dst_stride);
138 void ff_avg_h264_qpel8_mc11_lasx(uint8_t *dst, const uint8_t *src,
139                                  ptrdiff_t dst_stride);
140 void ff_avg_h264_qpel8_mc21_lasx(uint8_t *dst, const uint8_t *src,
141                                  ptrdiff_t dst_stride);
142 void ff_avg_h264_qpel8_mc31_lasx(uint8_t *dst, const uint8_t *src,
143                                  ptrdiff_t dst_stride);
144 void ff_avg_h264_qpel8_mc02_lasx(uint8_t *dst, const uint8_t *src,
145                                  ptrdiff_t dst_stride);
146 void ff_avg_h264_qpel8_mc12_lasx(uint8_t *dst, const uint8_t *src,
147                                  ptrdiff_t dst_stride);
148 void ff_avg_h264_qpel8_mc22_lasx(uint8_t *dst, const uint8_t *src,
149                                  ptrdiff_t dst_stride);
150 void ff_avg_h264_qpel8_mc32_lasx(uint8_t *dst, const uint8_t *src,
151                                  ptrdiff_t dst_stride);
152 void ff_avg_h264_qpel8_mc13_lasx(uint8_t *dst, const uint8_t *src,
153                                  ptrdiff_t dst_stride);
154 void ff_avg_h264_qpel8_mc23_lasx(uint8_t *dst, const uint8_t *src,
155                                  ptrdiff_t dst_stride);
156 void ff_avg_h264_qpel8_mc33_lasx(uint8_t *dst, const uint8_t *src,
157                                  ptrdiff_t dst_stride);
158 #endif  // #ifndef AVCODEC_LOONGARCH_H264QPEL_LASX_H