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" );