[Mplayer-cvslog] CVS: main/postproc postprocess.c,1.67,1.68 postprocess.h,1.28,1.29
Michael Niedermayer
michael at mplayerhq.hu
Wed Oct 30 22:02:53 CET 2002
Update of /cvsroot/mplayer/main/postproc
In directory mail:/var/tmp.root/cvs-serv2114/postproc
Modified Files:
postprocess.c postprocess.h
Log Message:
per context cpuCaps (idea by kabi)
Index: postprocess.c
===================================================================
RCS file: /cvsroot/mplayer/main/postproc/postprocess.c,v
retrieving revision 1.67
retrieving revision 1.68
diff -u -r1.67 -r1.68
--- postprocess.c 30 Oct 2002 20:50:31 -0000 1.67
+++ postprocess.c 30 Oct 2002 21:02:03 -0000 1.68
@@ -104,8 +104,6 @@
static const int deringThreshold= 20;
-static int cpuCaps=0;
-
struct PPFilter{
char *shortName;
char *longName;
@@ -150,6 +148,8 @@
int nonBQP;
int frameNum;
+
+ int cpuCaps;
PPMode ppMode;
} PPContext;
@@ -221,12 +221,6 @@
}
#endif
-int pp_init(int caps){
- cpuCaps= caps;
-
- return 0;
-}
-
// The horizontal Functions exist only in C cuz the MMX code is faster with vertical filters and transposing
/**
@@ -495,7 +489,7 @@
// minor note: the HAVE_xyz is messed up after that line so dont use it
static inline void postProcess(uint8_t src[], int srcStride, uint8_t dst[], int dstStride, int width, int height,
- QP_STORE_T QPs[], int QPStride, int isColor, PPMode *ppMode, void *vc)
+ QP_STORE_T QPs[], int QPStride, int isColor, PPMode *ppMode, pp_context *vc)
{
PPContext *c= (PPContext *)vc;
c->ppMode= *ppMode; //FIXME
@@ -506,11 +500,11 @@
#ifdef RUNTIME_CPUDETECT
#ifdef ARCH_X86
// ordered per speed fasterst first
- if(cpuCaps & PP_CPU_CAPS_MMX2)
+ if(c->cpuCaps & PP_CPU_CAPS_MMX2)
postProcess_MMX2(src, srcStride, dst, dstStride, width, height, QPs, QPStride, isColor, c);
- else if(cpuCaps & PP_CPU_CAPS_3DNOW)
+ else if(c->cpuCaps & PP_CPU_CAPS_3DNOW)
postProcess_3DNow(src, srcStride, dst, dstStride, width, height, QPs, QPStride, isColor, c);
- else if(cpuCaps & PP_CPU_CAPS_MMX)
+ else if(c->cpuCaps & PP_CPU_CAPS_MMX)
postProcess_MMX(src, srcStride, dst, dstStride, width, height, QPs, QPStride, isColor, c);
else
postProcess_C(src, srcStride, dst, dstStride, width, height, QPs, QPStride, isColor, c);
@@ -759,11 +753,13 @@
return ppMode;
}
-void *pp_get_context(int width, int height){
+void *pp_get_context(int width, int height, int cpuCaps){
PPContext *c= memalign(32, sizeof(PPContext));
int i;
int mbWidth = (width+15)>>4;
int mbHeight= (height+15)>>4;
+
+ c->cpuCaps= cpuCaps;
c->tempBlocks= (uint8_t*)memalign(8, 2*16*8);
c->yHistogram= (uint64_t*)memalign(8, 256*sizeof(uint64_t));
Index: postprocess.h
===================================================================
RCS file: /cvsroot/mplayer/main/postproc/postprocess.h,v
retrieving revision 1.28
retrieving revision 1.29
diff -u -r1.28 -r1.29
--- postprocess.h 30 Oct 2002 20:50:31 -0000 1.28
+++ postprocess.h 30 Oct 2002 21:02:03 -0000 1.29
@@ -95,10 +95,9 @@
// name is the stuff after "-pp" on the command line
PPMode pp_get_mode_by_name_and_quality(char *name, int quality);
-pp_context *pp_get_context(int width, int height);
+pp_context *pp_get_context(int width, int height, int cpuCaps);
void pp_free_context(pp_context *ppContext);
-int pp_init(int cpuCaps);
#define PP_CPU_CAPS_MMX 0x80000000
#define PP_CPU_CAPS_MMX2 0x20000000
#define PP_CPU_CAPS_3DNOW 0x40000000
More information about the MPlayer-cvslog
mailing list