+2008-02-26 Jan Schmidt <jan.schmidt@sun.com>
+
+ * configure.ac:
+ Detect and indicate if GCC inline assembly syntax is
+ available.
+
+ * gst/goom/Makefile.am:
+ * gst/goom/convolve_fx.c:
+ * gst/goom/flying_stars_fx.c:
+ * gst/goom/goom_config.h:
+ * gst/goom/goom_core.c:
+ * gst/goom/goomsl.c:
+ * gst/goom/ifs.c:
+ * gst/goom/mmx.c:
+ * gst/goom/plugin_info.c:
+ * gst/goom/xmmx.c:
+ Fix various GCC-isms, and only build the inline assembly
+ with compilers that support GCC inline assembly.
+
+ Fix a couple of other warnings shown with Forte.
+
2008-02-25 Stefan Kost <ensonic@users.sf.net>
* gst/goom/xmmx.c:
-Subproject commit 1c5138efc5679d9eaee66c84dcfabdec5b727493
+Subproject commit e746d20ef536a73aea9964666c7d5f6d5c9465df
AG_GST_BISON_CHECK
AG_GST_FLEX_CHECK
AM_PROG_AS
+dnl Check if we have GCC inline-asm
+AS_GCC_INLINE_ASSEMBLY([HAVE_GCC_ASM=yes], [HAVE_GCC_ASM=no])
+if test x$HAVE_GCC_ASM = xyes ; then
+ AC_DEFINE(HAVE_GCC_ASM, 1,
+ [Define if compiler supports gcc inline assembly])
+fi
+AM_CONDITIONAL(HAVE_GCC_ASM, test "x$HAVE_GCC_ASM" = "xyes")
dnl *** sys plug-ins ***
endif
if HAVE_CPU_I386
ARCH_FILES = $(MMX_FILES)
-ARCH_CFLAGS = -DHAVE_MMX
+ARCH_CFLAGS = -DBUILD_MMX
endif
libgstgoom_la_SOURCES = \
convolve_create (void)
{
VisualFX vfx = {
- init:convolve_init,
- free:convolve_free,
- apply:convolve_apply,
- fx_data:0
+ convolve_init,
+ convolve_free,
+ convolve_apply,
+ NULL
};
return vfx;
}
FSData *data = (FSData *) _this->fx_data;
int i;
- int max =
- (int) ((1.0f + info->sound.goomPower) * goom_irand (info->gRandom,
+ int max = (int) ((1.0f + info->sound.goomPower) * goom_irand (info->gRandom,
150)) + 100;
float radius =
(1.0f + info->sound.goomPower) * (float) (goom_irand (info->gRandom,
flying_star_create (void)
{
VisualFX vfx = {
- init:fs_init,
- free:fs_free,
- apply:fs_apply,
- fx_data:0
+ fs_init,
+ fs_free,
+ fs_apply,
+ NULL
};
return vfx;
}
#define gint16 signed short int
#define gint32 signed int
#endif
+
+#if defined (BUILD_MMX) && defined (HAVE_GCC_ASM)
+#define HAVE_MMX
+#endif
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
+#include <strings.h>
#include <inttypes.h>
#include "goom.h"
goomInfo->update.lineMode--;
if (goomInfo->update.lineMode == -1)
goomInfo->update.lineMode = 0;
- } else
- if ((goomInfo->cycle % 80 == 0)
+ } else if ((goomInfo->cycle % 80 == 0)
&& (goom_irand (goomInfo->gRandom, 5) == 0) && goomInfo->update.lineMode)
goomInfo->update.lineMode--;
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
+#include <glib.h>
#include "goomsl.h"
#include "goomsl_private.h"
#include "goomsl_yacc.h"
default:
return VALIDATE_TODO;
}
- return VALIDATE_ERROR;
} /* }}} */
/*************/
ifs_update (PluginInfo * goomInfo, Pixel * data, Pixel * back, int increment,
IfsData * fx_data)
{
- static int couleur = 0xc0c0c0c0;
+ static unsigned int couleur = 0xc0c0c0c0;
static int v[4] = { 2, 4, 3, 2 };
static int col[4] = { 2, 4, 3, 2 };
IFSPoint *points;
int i;
- int couleursl = couleur;
+ unsigned int couleursl = couleur;
int width = goomInfo->screen.width;
int height = goomInfo->screen.height;
+#ifdef HAVE_CONFIG_H
#include "config.h"
+#endif
-#if defined (HAVE_CPU_I386) || defined (HAVE_CPU_X86_64)
+#include "goom_config.h"
+
+#ifdef HAVE_MMX
#define BUFFPOINTNB 16
#define BUFFPOINTMASK 0xffff
emms ();
/* __asm__ __volatile__ ("emms"); */
}
-
-#endif /* HAVE_CPU_I386 || HAVE_CPU_X86_64 */
+#else
+int
+mmx_supported (void)
+{
+ return (0);
+}
+#endif /* HAVE_MMX */
+#ifdef HAVE_CONFIG_H
#include "config.h"
+#endif
#include <gst/gst.h>
+#include "goom_config.h"
+
#include "goom_plugin_info.h"
#include "goom_fx.h"
#include "default_scripts.h"
#endif /* HAVE_CPU_PPC64 || HAVE_CPU_PPC */
-#ifdef HAVE_CPU_I386
+#ifdef HAVE_MMX
#include "mmx.h"
-#endif /* HAVE_CPU_I386 */
+#endif /* HAVE_MMX */
#include <liboil/liboil.h>
#include <liboil/liboilfunction.h>
/* FIXME: what about HAVE_CPU_X86_64 ? */
#ifdef HAVE_CPU_I386
+#ifdef HAVE_MMX
GST_INFO ("have an x86");
if (cpuFlavour & OIL_IMPL_FLAG_MMXEXT) {
GST_INFO ("Extended MMX detected. Using the fastest methods!");
} else {
GST_INFO ("Too bad ! No SIMD optimization available for your CPU.");
}
+#endif
#endif /* HAVE_CPU_I386 */
#ifdef HAVE_CPU_PPC64
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include "goom_config.h"
#ifdef HAVE_MMX
/* this was femms, which is AMD 3dnow */
__asm__ __volatile__ ("emms\n");
}
-
+#else
+int
+xmmx_supported (void)
+{
+ return (0);
+}
#endif