]> git.sesse.net Git - ffmpeg/blob - libavcodec/mips/hpeldsp_init_mips.c
avformat/librist: simplify secret strlcpy
[ffmpeg] / libavcodec / mips / hpeldsp_init_mips.c
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 #include "libavutil/mips/cpu.h"
23 #include "../hpeldsp.h"
24 #include "libavcodec/mips/hpeldsp_mips.h"
25
26 void ff_hpeldsp_init_mips(HpelDSPContext *c, int flags)
27 {
28     int cpu_flags = av_get_cpu_flags();
29
30     if (have_mmi(cpu_flags)) {
31         c->put_pixels_tab[0][0] = ff_put_pixels16_8_mmi;
32         c->put_pixels_tab[0][1] = ff_put_pixels16_x2_8_mmi;
33         c->put_pixels_tab[0][2] = ff_put_pixels16_y2_8_mmi;
34         c->put_pixels_tab[0][3] = ff_put_pixels16_xy2_8_mmi;
35
36         c->put_pixels_tab[1][0] = ff_put_pixels8_8_mmi;
37         c->put_pixels_tab[1][1] = ff_put_pixels8_x2_8_mmi;
38         c->put_pixels_tab[1][2] = ff_put_pixels8_y2_8_mmi;
39         c->put_pixels_tab[1][3] = ff_put_pixels8_xy2_8_mmi;
40
41         c->put_pixels_tab[2][0] = ff_put_pixels4_8_mmi;
42         c->put_pixels_tab[2][1] = ff_put_pixels4_x2_8_mmi;
43         c->put_pixels_tab[2][2] = ff_put_pixels4_y2_8_mmi;
44         c->put_pixels_tab[2][3] = ff_put_pixels4_xy2_8_mmi;
45
46         c->put_no_rnd_pixels_tab[0][0] = ff_put_pixels16_8_mmi;
47         c->put_no_rnd_pixels_tab[0][1] = ff_put_no_rnd_pixels16_x2_8_mmi;
48         c->put_no_rnd_pixels_tab[0][2] = ff_put_no_rnd_pixels16_y2_8_mmi;
49         c->put_no_rnd_pixels_tab[0][3] = ff_put_no_rnd_pixels16_xy2_8_mmi;
50
51         c->put_no_rnd_pixels_tab[1][0] = ff_put_pixels8_8_mmi;
52         c->put_no_rnd_pixels_tab[1][1] = ff_put_no_rnd_pixels8_x2_8_mmi;
53         c->put_no_rnd_pixels_tab[1][2] = ff_put_no_rnd_pixels8_y2_8_mmi;
54         c->put_no_rnd_pixels_tab[1][3] = ff_put_no_rnd_pixels8_xy2_8_mmi;
55
56         c->avg_pixels_tab[0][0] = ff_avg_pixels16_8_mmi;
57         c->avg_pixels_tab[0][1] = ff_avg_pixels16_x2_8_mmi;
58         c->avg_pixels_tab[0][2] = ff_avg_pixels16_y2_8_mmi;
59         c->avg_pixels_tab[0][3] = ff_avg_pixels16_xy2_8_mmi;
60
61         c->avg_pixels_tab[1][0] = ff_avg_pixels8_8_mmi;
62         c->avg_pixels_tab[1][1] = ff_avg_pixels8_x2_8_mmi;
63         c->avg_pixels_tab[1][2] = ff_avg_pixels8_y2_8_mmi;
64         c->avg_pixels_tab[1][3] = ff_avg_pixels8_xy2_8_mmi;
65
66         c->avg_pixels_tab[2][0] = ff_avg_pixels4_8_mmi;
67         c->avg_pixels_tab[2][1] = ff_avg_pixels4_x2_8_mmi;
68         c->avg_pixels_tab[2][2] = ff_avg_pixels4_y2_8_mmi;
69         c->avg_pixels_tab[2][3] = ff_avg_pixels4_xy2_8_mmi;
70     }
71
72     if (have_msa(cpu_flags)) {
73         c->put_pixels_tab[0][0] = ff_put_pixels16_msa;
74         c->put_pixels_tab[0][1] = ff_put_pixels16_x2_msa;
75         c->put_pixels_tab[0][2] = ff_put_pixels16_y2_msa;
76         c->put_pixels_tab[0][3] = ff_put_pixels16_xy2_msa;
77
78         c->put_pixels_tab[1][0] = ff_put_pixels8_msa;
79         c->put_pixels_tab[1][1] = ff_put_pixels8_x2_msa;
80         c->put_pixels_tab[1][2] = ff_put_pixels8_y2_msa;
81         c->put_pixels_tab[1][3] = ff_put_pixels8_xy2_msa;
82
83         c->put_pixels_tab[2][1] = ff_put_pixels4_x2_msa;
84         c->put_pixels_tab[2][2] = ff_put_pixels4_y2_msa;
85         c->put_pixels_tab[2][3] = ff_put_pixels4_xy2_msa;
86
87         c->put_no_rnd_pixels_tab[0][0] = ff_put_pixels16_msa;
88         c->put_no_rnd_pixels_tab[0][1] = ff_put_no_rnd_pixels16_x2_msa;
89         c->put_no_rnd_pixels_tab[0][2] = ff_put_no_rnd_pixels16_y2_msa;
90         c->put_no_rnd_pixels_tab[0][3] = ff_put_no_rnd_pixels16_xy2_msa;
91
92         c->put_no_rnd_pixels_tab[1][0] = ff_put_pixels8_msa;
93         c->put_no_rnd_pixels_tab[1][1] = ff_put_no_rnd_pixels8_x2_msa;
94         c->put_no_rnd_pixels_tab[1][2] = ff_put_no_rnd_pixels8_y2_msa;
95         c->put_no_rnd_pixels_tab[1][3] = ff_put_no_rnd_pixels8_xy2_msa;
96
97         c->avg_pixels_tab[0][0] = ff_avg_pixels16_msa;
98         c->avg_pixels_tab[0][1] = ff_avg_pixels16_x2_msa;
99         c->avg_pixels_tab[0][2] = ff_avg_pixels16_y2_msa;
100         c->avg_pixels_tab[0][3] = ff_avg_pixels16_xy2_msa;
101
102         c->avg_pixels_tab[1][0] = ff_avg_pixels8_msa;
103         c->avg_pixels_tab[1][1] = ff_avg_pixels8_x2_msa;
104         c->avg_pixels_tab[1][2] = ff_avg_pixels8_y2_msa;
105         c->avg_pixels_tab[1][3] = ff_avg_pixels8_xy2_msa;
106
107         c->avg_pixels_tab[2][0] = ff_avg_pixels4_msa;
108         c->avg_pixels_tab[2][1] = ff_avg_pixels4_x2_msa;
109         c->avg_pixels_tab[2][2] = ff_avg_pixels4_y2_msa;
110         c->avg_pixels_tab[2][3] = ff_avg_pixels4_xy2_msa;
111     }
112 }