diff -ru goom2k4-0/src/filters.c xine-lib/src/post/goom/filters.c --- goom2k4-0/src/filters.c 2005-02-07 11:46:41.000000000 -0200 +++ xine-lib/src/post/goom/filters.c 2005-07-18 12:15:50.000000000 -0300 @@ -704,7 +704,7 @@ data->general_speed = 0.0f; data->reverse = 0; - data->theMode = AMULETTE_MODE; + data->theMode = rand() % 10; data->waveEffect = 0; data->hypercosEffect = 0; data->vPlaneEffect = 0; diff -ru goom2k4-0/src/goom_core.c xine-lib/src/post/goom/goom_core.c --- goom2k4-0/src/goom_core.c 2005-02-07 11:46:41.000000000 -0200 +++ xine-lib/src/post/goom/goom_core.c 2005-07-19 12:39:22.000000000 -0300 @@ -26,6 +26,8 @@ #include "goom_fx.h" #include "goomsl.h" +#include "xine_internal.h" + /* #define VERBOSE */ #define STOP_SPEED 128 @@ -736,7 +738,12 @@ /* affichage et swappage des buffers.. */ goomInfo->cycle++; + /* xine: no convolve_fx */ + /* goomInfo->convolve_fx.apply(&goomInfo->convolve_fx,return_val,goomInfo->outputBuf,goomInfo); + */ + xine_fast_memcpy(goomInfo->outputBuf, return_val, goomInfo->screen.size * sizeof(Pixel)); + return (guint32*)goomInfo->outputBuf; } diff -ru goom2k4-0/src/goom_tools.c xine-lib/src/post/goom/goom_tools.c --- goom2k4-0/src/goom_tools.c 2005-02-07 11:46:41.000000000 -0200 +++ xine-lib/src/post/goom/goom_tools.c 2005-07-18 14:30:02.000000000 -0300 @@ -3,7 +3,6 @@ GoomRandom *goom_random_init(int i) { GoomRandom *grandom = (GoomRandom*)malloc(sizeof(GoomRandom)); - srand (i); grandom->pos = 1; goom_random_update_array(grandom, GOOM_NB_RAND); return grandom; diff -ru goom2k4-0/src/ifs.c xine-lib/src/post/goom/ifs.c --- goom2k4-0/src/ifs.c 2005-02-07 11:46:41.000000000 -0200 +++ xine-lib/src/post/goom/ifs.c 2005-07-19 14:20:20.000000000 -0300 @@ -503,6 +503,13 @@ for (i = 0; i < 4; i++) { *tmp = (*tmp) >> cycle10; + + /* xine: make it darker */ + if( *tmp && !((*tmp) >> 1) ) + *tmp = 1; + else + *tmp = (*tmp) >> 1; + tmp++; } } diff -ru goom2k4-0/src/tentacle3d.c xine-lib/src/post/goom/tentacle3d.c --- goom2k4-0/src/tentacle3d.c 2005-02-07 11:46:41.000000000 -0200 +++ xine-lib/src/post/goom/tentacle3d.c 2005-07-19 14:04:57.000000000 -0300 @@ -10,7 +10,7 @@ #define D 256.0f #define nbgrid 6 -#define definitionx 15 +#define definitionx 9 #define definitionz 45 typedef struct _TENTACLE_FX_DATA { diff -ru goom2k4-0/src/xmmx.c xine-lib/src/post/goom/xmmx.c --- goom2k4-0/src/xmmx.c 2005-02-07 11:46:41.000000000 -0200 +++ xine-lib/src/post/goom/xmmx.c 2005-07-18 15:26:23.000000000 -0300 @@ -239,7 +239,11 @@ ++loop; } - __asm__ __volatile__ ("femms\n"); +/*#ifdef HAVE_ATHLON*/ + __asm__ __volatile__ ("emms\n"); +/*#else + emms(); +#endif*/ } #define DRAWMETHOD_PLUS_XMMX(_out,_backbuf,_col) \ @@ -387,7 +391,7 @@ } } end_of_line: - __asm__ __volatile__ ("femms\n"); + __asm__ __volatile__ ("emms\n"); } #endif Index: xmmx.c =================================================================== RCS file: /cvsroot/xine/xine-lib/src/post/goom/xmmx.c,v retrieving revision 1.6 diff -u -r1.6 xmmx.c --- xmmx.c 19 Jul 2005 18:10:31 -0000 1.6 +++ xmmx.c 21 Jul 2005 20:48:09 -0000 @@ -50,10 +50,10 @@ ratiox.d[1] = buffratio; asm volatile - ("\n\t movq %[ratio], %%mm6" + ("\n\t movq %0, %%mm6" "\n\t pslld $16, %%mm6" /* mm6 = [rat16=buffratio<<16 | rat16=buffratio<<16] */ "\n\t pxor %%mm7, %%mm7" /* mm7 = 0 */ - ::[ratio]"m"(ratiox)); + ::"m"(ratiox)); loop=0; @@ -69,8 +69,8 @@ */ asm volatile - ("#1 \n\t movq %[brutS], %%mm0" - "#1 \n\t movq %[brutD], %%mm1" + ("#1 \n\t movq %0, %%mm0" + "#1 \n\t movq %1, %%mm1" "#1 \n\t psubd %%mm0, %%mm1" /* mm1 = D - S */ "#1 \n\t movq %%mm1, %%mm2" /* mm2 = D - S */ "#1 \n\t pslld $16, %%mm1" @@ -83,8 +83,8 @@ "#1 \n\t paddd %%mm1, %%mm0" /* mm0 = S + mm1 */ "#1 \n\t psrld $16, %%mm0" : - : [brutS]"g"(brutS[loop]) - , [brutD]"g"(brutD[loop]) + : "g"(brutS[loop]) + , "g"(brutD[loop]) ); /* mm0 = S */ /* @@ -94,7 +94,7 @@ * modified : mm0,mm1,mm2 */ asm volatile - ("#1 \n\t movq %[prevXY], %%mm1" + ("#1 \n\t movq %0, %%mm1" "#1 \n\t pcmpgtd %%mm0, %%mm1" /* mm0 en X contient (idem pour Y) : * 1111 si prevXY > px @@ -107,7 +107,7 @@ #endif "#1 \n\t pand %%mm1, %%mm0" /* on met a zero la partie qui deborde */ - ::[prevXY]"m"(prevXY)); + ::"m"(prevXY)); /* Thread #2 * pre : mm0 : clipped position on screen @@ -127,11 +127,11 @@ "#2 \n\t shll $6,%%esi" "#2 \n\t movd %%mm1,%%eax" - "#2 \n\t addl %[precalCoef],%%esi" + "#2 \n\t addl %0,%%esi" "#2 \n\t andl $15,%%eax" "#2 \n\t movd (%%esi,%%eax,4),%%mm3" - ::[precalCoef]"g"(precalCoef):"eax","esi"); + ::"g"(precalCoef):"eax","esi"); /* * extraction des coefficients... (Thread #3) @@ -160,7 +160,7 @@ "#4 \n\t movd %%mm1,%%eax" "#3 \n\t movq %%mm3,%%mm5" - "#4 \n\t mull %[prevX]" + "#4 \n\t mull %1" "#4 \n\t movd %%mm0,%%esi" "#3 \n\t punpcklbw %%mm5, %%mm3" @@ -169,18 +169,18 @@ "#3 \n\t movq %%mm3, %%mm4" "#3 \n\t movq %%mm3, %%mm5" - "#4 \n\t movl %[expix1], %%esi" + "#4 \n\t movl %0, %%esi" "#3 \n\t punpcklbw %%mm5, %%mm3" "#4 \n\t movq (%%esi,%%eax,4),%%mm0" "#3 \n\t punpckhbw %%mm5, %%mm4" - "#4 \n\t addl %[prevX],%%eax" + "#4 \n\t addl %1,%%eax" "#4 \n\t movq (%%esi,%%eax,4),%%mm2" : - : [expix1] "g"(expix1) - , [prevX] "g"(prevX) + : "g"(expix1) + , "g"(prevX) :"eax","esi" ); Index: convolve_fx.c =================================================================== RCS file: /cvsroot/xine/xine-lib/src/post/goom/convolve_fx.c,v retrieving revision 1.4 diff -u -r1.4 convolve_fx.c --- convolve_fx.c 19 Jul 2005 18:10:29 -0000 1.4 +++ convolve_fx.c 22 Jul 2005 16:37:15 -0000 @@ -172,7 +172,7 @@ { __asm__ __volatile__ ( - "\n\t movd %[src], %%mm0" /* mm0 = src */ + "\n\t movd %1, %%mm0" /* mm0 = src */ "\n\t paddd %%mm4, %%mm2" /* [ ytex | xtex ] += [ -s | s ] */ "\n\t movd %%esi, %%mm5" /* save esi into mm5 */ "\n\t movq %%mm2, %%mm3" @@ -190,7 +190,7 @@ "\n\t xorl %%ecx, %%ecx" "\n\t movb (%%eax,%%esi), %%cl" - "\n\t movl %[ifftab], %%eax" + "\n\t movl %2, %%eax" "\n\t movd %%mm5, %%esi" /* restore esi from mm5 */ "\n\t movd (%%eax,%%ecx,4), %%mm1" /* mm1 = [0|0|0|iff2] */ @@ -202,10 +202,10 @@ "\n\t pmullw %%mm1, %%mm0" "\n\t psrlw $5, %%mm0" "\n\t packuswb %%mm7, %%mm0" - "\n\t movd %%mm0, %[dest]" - : [dest] "=g" (dest[i].val) - : [src] "g" (src[i].val) - , [ifftab]"g"(&ifftab[0]) + "\n\t movd %%mm0, %0" + : "=g" (dest[i].val) + : "g" (src[i].val) + , "g"(&ifftab[0]) : "eax","ecx"); i++; Index: convolve_fx.c =================================================================== RCS file: /cvsroot/xine/xine-lib/src/post/goom/convolve_fx.c,v retrieving revision 1.5 diff -u -r1.5 convolve_fx.c --- convolve_fx.c 22 Jul 2005 16:37:44 -0000 1.5 +++ convolve_fx.c 22 Jul 2005 16:41:19 -0000 @@ -154,19 +154,19 @@ #ifdef HAVE_MMX __asm__ __volatile__ ("\n\t pxor %%mm7, %%mm7" /* mm7 = 0 */ - "\n\t movd %[xtex], %%mm2" - "\n\t movd %[ytex], %%mm3" + "\n\t movd %0, %%mm2" + "\n\t movd %1, %%mm3" "\n\t punpckldq %%mm3, %%mm2" /* mm2 = [ ytex | xtex ] */ - "\n\t movd %[c], %%mm4" - "\n\t movd %[s], %%mm6" + "\n\t movd %2, %%mm4" + "\n\t movd %3, %%mm6" "\n\t pxor %%mm5, %%mm5" "\n\t psubd %%mm6, %%mm5" "\n\t punpckldq %%mm5, %%mm4" /* mm4 = [ -s | c ] */ - "\n\t movd %[motif], %%mm6" /* mm6 = motif */ + "\n\t movd %4, %%mm6" /* mm6 = motif */ - ::[xtex]"g"(xtex) ,[ytex]"g"(ytex) - , [c]"g"(c), [s]"g"(s) - , [motif] "g"(&data->conv_motif[0][0])); + ::"g"(xtex) ,"g"(ytex) + , "g"(c), "g"(s) + , "g"(&data->conv_motif[0][0])); for (x=info->screen.width;x--;) {