]> git.sesse.net Git - ffmpeg/blob - libavfilter/libmpcodecs/cpudetect.h
Merge commit '36ef5369ee9b336febc2c270f8718cec4476cb85'
[ffmpeg] / libavfilter / libmpcodecs / cpudetect.h
1 /*
2  * This file is part of MPlayer.
3  *
4  * MPlayer is free software; you can redistribute it and/or modify
5  * it under the terms of the GNU General Public License as published by
6  * the Free Software Foundation; either version 2 of the License, or
7  * (at your option) any later version.
8  *
9  * MPlayer is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12  * GNU General Public License for more details.
13  *
14  * You should have received a copy of the GNU General Public License along
15  * with MPlayer; if not, write to the Free Software Foundation, Inc.,
16  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
17  */
18
19 #ifndef MPLAYER_CPUDETECT_H
20 #define MPLAYER_CPUDETECT_H
21
22 //#include "config.h"
23
24 #define CPUTYPE_I386    3
25 #define CPUTYPE_I486    4
26 #define CPUTYPE_I586    5
27 #define CPUTYPE_I686    6
28
29 #include "libavutil/x86_cpu.h"
30
31 typedef struct cpucaps_s {
32     int cpuType;
33     int cpuModel;
34     int cpuStepping;
35     int hasMMX;
36     int hasMMX2;
37     int has3DNow;
38     int has3DNowExt;
39     int hasSSE;
40     int hasSSE2;
41     int hasSSE3;
42     int hasSSSE3;
43     int hasSSE4a;
44     int isX86;
45     unsigned cl_size; /* size of cache line */
46     int hasAltiVec;
47     int hasTSC;
48 } CpuCaps;
49
50 extern CpuCaps gCpuCaps;
51
52 void do_cpuid(unsigned int ax, unsigned int *p);
53
54 void GetCpuCaps(CpuCaps *caps);
55
56 /* returned value is malloc()'ed so free() it after use */
57 char *GetCpuFriendlyName(unsigned int regs[], unsigned int regs2[]);
58
59 #endif /* MPLAYER_CPUDETECT_H */