view cpudetect.h @ 14843:bbb693d3b130

Fix the ogg fourcc nightmare!!! The problem: once upon a time, windows idiots decided to try to store vorbis-in-ogg-in-avi. Of course this failed miserably, but they used the audio format tag 0xfffe for "extended" to do this. Later someone working on MPlayer somehow decided 0xfffe was the format for vorbis, which is nonsense, and now that's conflicting with real wav files with extended audio format. This patch changes demux_ogg (and mkv) to use sane fourcc's for vorbis and theora and gets rid of the 0xfffe nonsense so hopefully wav files with extended audio will work now. If there are problems, we'll have to find workarounds...and drive an 18-wheeler full of cola thru the house of whoever wrote this 0xfffe nonsense in MPlayer to begin with...
author rfelker
date Sun, 27 Feb 2005 18:11:17 +0000
parents 821f464b4d90
children b5c6755ffa29
line wrap: on
line source

#ifndef CPUDETECT_H
#define CPUDETECT_H

#define CPUTYPE_I386	3
#define CPUTYPE_I486	4
#define CPUTYPE_I586	5
#define CPUTYPE_I686    6

#ifdef ARCH_X86_64
#  define REGa    rax
#  define REGb    rbx
#  define REGSP   rsp
#  define REG_a  "rax"
#  define REG_b  "rbx"
#  define REG_c  "rcx"
#  define REG_d  "rdx"
#  define REG_S  "rsi"
#  define REG_D  "rdi"
#  define REG_SP "rsp"
#  define REG_BP "rbp"
#else
#  define REGa    eax
#  define REGb    ebx
#  define REGSP   esp
#  define REG_a  "eax"
#  define REG_b  "ebx"
#  define REG_c  "ecx"
#  define REG_d  "edx"
#  define REG_S  "esi"
#  define REG_D  "edi"
#  define REG_SP "esp"
#  define REG_BP "ebp"
#endif

typedef struct cpucaps_s {
	int cpuType;
	int cpuStepping;
	int hasMMX;
	int hasMMX2;
	int has3DNow;
	int has3DNowExt;
	int hasSSE;
	int hasSSE2;
	int isX86;
	unsigned cl_size; /* size of cache line */
        int hasAltiVec;
	int hasTSC;
} CpuCaps;

extern CpuCaps gCpuCaps;

void GetCpuCaps(CpuCaps *caps);

/* returned value is malloc()'ed so free() it after use */
char *GetCpuFriendlyName(unsigned int regs[], unsigned int regs2[]);

#endif /* !CPUDETECT_H */