From 6cecf393b3a5941fcd10bb9236d1a318a9e3373c Mon Sep 17 00:00:00 2001 From: Jean-Baptiste Kempf <jb@videolan.org> Date: Mon, 8 Aug 2011 23:23:48 +0200 Subject: [PATCH] Contribs: add Goom --- contrib/src/goom/SHA512SUMS | 1 + contrib/src/goom/goom2k4-0-memleaks.patch | 141 ++++++++++++++++++++++ contrib/src/goom/goom2k4-0-mmx.patch | 14 +++ contrib/src/goom/goom2k4-0-win32.patch | 68 +++++++++++ contrib/src/goom/goom2k4-autotools.patch | 18 +++ contrib/src/goom/goom2k4-noxmmx.patch | 20 +++ contrib/src/goom/goom2k4-osx.patch | 11 ++ contrib/src/goom/goom2k4-xmmslibdir.patch | 11 ++ contrib/src/goom/rules.mak | 33 +++++ 9 files changed, 317 insertions(+) create mode 100644 contrib/src/goom/SHA512SUMS create mode 100644 contrib/src/goom/goom2k4-0-memleaks.patch create mode 100644 contrib/src/goom/goom2k4-0-mmx.patch create mode 100644 contrib/src/goom/goom2k4-0-win32.patch create mode 100644 contrib/src/goom/goom2k4-autotools.patch create mode 100644 contrib/src/goom/goom2k4-noxmmx.patch create mode 100644 contrib/src/goom/goom2k4-osx.patch create mode 100644 contrib/src/goom/goom2k4-xmmslibdir.patch create mode 100644 contrib/src/goom/rules.mak diff --git a/contrib/src/goom/SHA512SUMS b/contrib/src/goom/SHA512SUMS new file mode 100644 index 000000000000..604cfb1989d3 --- /dev/null +++ b/contrib/src/goom/SHA512SUMS @@ -0,0 +1 @@ +790e3ab8dee122320ad8b3ae15f6a1cd2780222d5ae97979f614f16ba73b4b853960e7945ef9053ad9eddf9e29e69d0c52f0875d07c5c6c7cee41d764bf4ea5f goom-2k4-0-src.tar.gz diff --git a/contrib/src/goom/goom2k4-0-memleaks.patch b/contrib/src/goom/goom2k4-0-memleaks.patch new file mode 100644 index 000000000000..3b881d770975 --- /dev/null +++ b/contrib/src/goom/goom2k4-0-memleaks.patch @@ -0,0 +1,141 @@ +diff -Naur goom-origin/src/convolve_fx.c goom/src/convolve_fx.c +--- goom-origin/src/convolve_fx.c 2005-02-07 14:46:42.000000000 +0100 ++++ goom/src/convolve_fx.c 2009-03-23 11:16:13.000000000 +0100 +@@ -107,7 +107,9 @@ + } + + static void convolve_free(VisualFX *_this) { +- free (_this->fx_data); ++ ConvData *data = _this->fx_data; ++ free (data->params.params); ++ free (data); + } + + static void create_output_with_brightness(VisualFX *_this, Pixel *src, Pixel *dest, +diff -Naur goom-origin/src/filters.c goom/src/filters.c +--- goom-origin/src/filters.c 2005-02-07 14:46:41.000000000 +0100 ++++ goom/src/filters.c 2009-03-23 10:46:34.000000000 +0100 +@@ -731,6 +731,12 @@ + + static void zoomFilterVisualFXWrapper_free (struct _VISUAL_FX *_this) + { ++ ZoomFilterFXWrapperData *data = (ZoomFilterFXWrapperData*)_this->fx_data; ++ if (data->brutS) free (data->freebrutS); ++ if (data->brutD) free (data->freebrutD); ++ if (data->brutT) free (data->freebrutT); ++ free (data->firedec); ++ free (data->params.params); + free(_this->fx_data); + } + +diff -Naur goom-origin/src/flying_stars_fx.c goom/src/flying_stars_fx.c +--- goom-origin/src/flying_stars_fx.c 2005-02-07 14:46:41.000000000 +0100 ++++ goom/src/flying_stars_fx.c 2009-03-23 11:18:57.000000000 +0100 +@@ -129,7 +129,10 @@ + } + + static void fs_free(VisualFX *_this) { +- free (_this->fx_data); ++ FSData *data = (FSData*)_this->fx_data; ++ free (data->stars); ++ free (data->params.params); ++ free (data); + } + + +diff -Naur goom-origin/src/gfontlib.c goom/src/gfontlib.c +--- goom-origin/src/gfontlib.c 2005-02-07 14:46:41.000000000 +0100 ++++ goom/src/gfontlib.c 2009-03-23 09:06:27.000000000 +0100 +@@ -126,6 +126,8 @@ + small_font_width [32] = font_width [32]/2; + font_chars [32] = 0; + small_font_chars [32] = 0; ++ free( gfont ); ++ free( font_pos ); + } + + void goom_draw_text (Pixel * buf,int resolx,int resoly, +diff -Naur goom-origin/src/goom_core.c goom/src/goom_core.c +--- goom-origin/src/goom_core.c 2005-02-07 14:46:41.000000000 +0100 ++++ goom/src/goom_core.c 2009-03-23 11:21:11.000000000 +0100 +@@ -765,6 +765,15 @@ + goomInfo->star_fx.free(&goomInfo->star_fx); + goomInfo->tentacles_fx.free(&goomInfo->tentacles_fx); + goomInfo->zoomFilter_fx.free(&goomInfo->zoomFilter_fx); ++ ++ // Release info visual ++ free (goomInfo->params); ++ free (goomInfo->sound.params.params); ++ ++ // Release PluginInfo ++ free (goomInfo->visuals); ++ gsl_free (goomInfo->scanner); ++ gsl_free (goomInfo->main_scanner); + + free(goomInfo); + } +diff -Naur goom-origin/src/goomsl.c goom/src/goomsl.c +--- goom-origin/src/goomsl.c 2005-02-07 14:46:41.000000000 +0100 ++++ goom/src/goomsl.c 2009-03-23 11:07:25.000000000 +0100 +@@ -90,6 +90,7 @@ + + void iflow_free(InstructionFlow *_this) + { /* {{{ */ ++ free(_this->instr); + goom_hash_free(_this->labels); + free(_this); /*TODO: finir cette fonction */ + } /* }}} */ +@@ -1422,8 +1423,12 @@ + void gsl_free(GoomSL *gss) + { /* {{{ */ + iflow_free(gss->iflow); +- free(gss->vars); +- free(gss->functions); ++ goom_hash_free(gss->vars); ++ goom_hash_free(gss->functions); ++ goom_hash_free(gss->structIDS); ++ free(gss->gsl_struct); ++ goom_heap_delete(gss->data_heap); ++ free(gss->ptrArray); + free(gss); + } /* }}} */ + +diff -Naur goom-origin/src/lines.c goom/src/lines.c +--- goom-origin/src/lines.c 2005-02-07 14:46:41.000000000 +0100 ++++ goom/src/lines.c 2009-03-23 10:28:26.000000000 +0100 +@@ -199,6 +199,7 @@ + goom_lines_free (GMLine ** l) + { + free ((*l)->points); ++ free ((*l)->points2); + free (*l); + l = NULL; + } +diff -Naur goom-origin/src/tentacle3d.c goom/src/tentacle3d.c +--- goom-origin/src/tentacle3d.c 2005-02-07 14:46:41.000000000 +0100 ++++ goom/src/tentacle3d.c 2009-03-23 11:13:38.000000000 +0100 +@@ -90,7 +90,9 @@ + } + + static void tentacle_fx_free(VisualFX *_this) { +- tentacle_free((TentacleFXData*)_this->fx_data); ++ TentacleFXData *data = (TentacleFXData*)_this->fx_data; ++ free(data->params.params); ++ tentacle_free(data); + free(_this->fx_data); + } + +@@ -106,6 +108,13 @@ + + static void tentacle_free (TentacleFXData *data) { + /* TODO : un vrai FREE GRID!! */ ++ int tmp; ++ for (tmp=0;tmp<nbgrid;tmp++){ ++ grid3d *g = data->grille[tmp]; ++ free (g->surf.vertex); ++ free (g->surf.svertex); ++ free (g); ++ } + free (data->vals); + } + diff --git a/contrib/src/goom/goom2k4-0-mmx.patch b/contrib/src/goom/goom2k4-0-mmx.patch new file mode 100644 index 000000000000..48366d6c5a88 --- /dev/null +++ b/contrib/src/goom/goom2k4-0-mmx.patch @@ -0,0 +1,14 @@ +diff -ruN goom.orig/src/xmmx.c goom/src/xmmx.c +--- goom.orig/src/xmmx.c 2006-10-01 22:10:15.000000000 +0200 ++++ goom/src/xmmx.c 2006-10-01 23:45:59.000000000 +0200 +@@ -69,8 +69,8 @@ + */ + + asm volatile +- ("#1 \n\t movq %[brutS], %%mm0" +- "#1 \n\t movq %[brutD], %%mm1" ++ ("#1 \n\t movq (%[brutS]), %%mm0" ++ "#1 \n\t movq (%[brutD]), %%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" diff --git a/contrib/src/goom/goom2k4-0-win32.patch b/contrib/src/goom/goom2k4-0-win32.patch new file mode 100644 index 000000000000..208cf284cf73 --- /dev/null +++ b/contrib/src/goom/goom2k4-0-win32.patch @@ -0,0 +1,68 @@ +diff -Naur goom-orig/configure.in goom/configure.in +--- goom-2k4-0-src/configure.in.orig 2005-02-07 14:46:41.000000000 +0100 ++++ goom-2k4-0-src/configure.in 2011-08-08 23:18:39.204832964 +0200 +@@ -1,6 +1,5 @@ + AC_INIT(README) + +-AM_DISABLE_STATIC + AM_INIT_AUTOMAKE(SDL_Goom, 2k4) + + ACLOCAL="$ACLOCAL -I m4" +@@ -76,24 +75,7 @@ + AM_CONDITIONAL(MACTARGET,test "x$MACTARGET" = "xyes") + + +-AC_CHECK_HEADER(pthread.h,,AC_MSG_ERROR([*** POSIX thread support not installed - please install first ***])) +- +-PTHREAD_LIBS=error +-AC_CHECK_LIB(pthread, pthread_attr_init, PTHREAD_LIBS="-lpthread") +- +-if test "x$PTHREAD_LIBS" = xerror; then +- AC_CHECK_LIB(pthreads, pthread_attr_init, PTHREAD_LIBS="-lpthreads") +-fi +- +-if test "x$PTHREAD_LIBS" = xerror; then +- AC_CHECK_LIB(c_r, pthread_attr_init, PTHREAD_LIBS="-lc_r") +-fi +- +-if test "x$PTHREAD_LIBS" = xerror; then +- AC_CHECK_FUNC(pthread_attr_init, PTHREAD_LIBS="") +-fi +- +-AC_SUBST(PTHREAD_LIBS) ++dnl AC_SUBST(PTHREAD_LIBS) + + dnl rm -f mmx_zoom.s + dnl echo -n checking for nasm... +diff -Naur goom-orig/src/filters.c goom/src/filters.c +--- goom-orig/src/filters.c 2005-02-07 14:46:41.000000000 +0100 ++++ goom/src/filters.c 2005-08-26 16:31:17.000000000 +0200 +@@ -201,8 +201,8 @@ + /* Noise */ + if (data->noisify) + { +- vx += (((float)random()) / ((float)RAND_MAX) - 0.5f) / 50.0f; +- vy += (((float)random()) / ((float)RAND_MAX) - 0.5f) / 50.0f; ++ vx += (((float)rand()) / ((float)RAND_MAX) - 0.5f) / 50.0f; ++ vy += (((float)rand()) / ((float)RAND_MAX) - 0.5f) / 50.0f; + } + + /* Hypercos */ +diff -Naur goom-orig/src/goom_core.c goom/src/goom_core.c +--- goom-orig/src/goom_core.c 2005-02-07 14:46:41.000000000 +0100 ++++ goom/src/goom_core.c 2005-08-26 16:33:01.000000000 +0200 +@@ -40,11 +40,11 @@ + static void init_buffers(PluginInfo *goomInfo, int buffsize) + { + goomInfo->pixel = (guint32 *) malloc (buffsize * sizeof (guint32) + 128); +- bzero (goomInfo->pixel, buffsize * sizeof (guint32) + 128); ++ memset (goomInfo->pixel, 0, buffsize * sizeof (guint32) + 128); + goomInfo->back = (guint32 *) malloc (buffsize * sizeof (guint32) + 128); +- bzero (goomInfo->back, buffsize * sizeof (guint32) + 128); ++ memset (goomInfo->back, 0, buffsize * sizeof (guint32) + 128); + goomInfo->conv = (Pixel *) malloc (buffsize * sizeof (guint32) + 128); +- bzero (goomInfo->conv, buffsize * sizeof (guint32) + 128); ++ memset (goomInfo->conv, 0, buffsize * sizeof (guint32) + 128); + + goomInfo->outputBuf = goomInfo->conv; + diff --git a/contrib/src/goom/goom2k4-autotools.patch b/contrib/src/goom/goom2k4-autotools.patch new file mode 100644 index 000000000000..62b7ad852915 --- /dev/null +++ b/contrib/src/goom/goom2k4-autotools.patch @@ -0,0 +1,18 @@ +--- goom/src/Makefile.am 2005-02-07 14:46:41.000000000 +0100 ++++ goom.new/src/Makefile.am 2009-08-19 09:21:57.000000000 +0200 +@@ -16,7 +16,7 @@ + goom2_libdir = $(libdir) + + goom2_library_includedir=$(includedir)/goom +-goom2_library_include_HEADERS = goom.h goom_plugin_info.h goom_typedefs.h goom_graphic.h goom_config_param.h goom_visual_fx.h goom_filters.h goom_tools.h goomsl.h goomsl_hash.h goomsl_heap.h goom_tools.h goom_config.h ++goom2_library_include_HEADERS = goom.h goom_plugin_info.h goom_typedefs.h goom_graphic.h goom_config_param.h goom_visual_fx.h goom_filters.h goom_tools.h goomsl.h goomsl_hash.h goomsl_heap.h goom_config.h + libgoom2_la_LDFLAGS = -export-dynamic -export-symbols-regex "goom.*" + libgoom2_la_SOURCES = \ + goomsl_yacc.y goomsl_lex.l goomsl.c goomsl_hash.c goomsl_heap.c \ +--- goom/Makefile.am.orig 2010-10-31 21:43:45.514184001 +0100 ++++ goom/Makefile.am 2010-10-31 21:44:01.382194251 +0100 +@@ -1,3 +1,4 @@ ++ACLOCAL_AMFLAGS = -I m4 + SUBDIRS = src xmms-goom sdl-goom @MACFOLDER@ + + #.pc file diff --git a/contrib/src/goom/goom2k4-noxmmx.patch b/contrib/src/goom/goom2k4-noxmmx.patch new file mode 100644 index 000000000000..d9f07a2ce45f --- /dev/null +++ b/contrib/src/goom/goom2k4-noxmmx.patch @@ -0,0 +1,20 @@ +--- goom/src/plugin_info.c 2005-02-07 14:46:41.000000000 +0100 ++++ goom.new/src/plugin_info.c 2011-01-23 15:37:37.524184437 +0100 +@@ -31,6 +31,7 @@ + /* p->methods.create_output_with_brightness = create_output_with_brightness;*/ + + #ifdef CPU_X86 ++#if 0 + if (cpuFlavour & CPU_OPTION_XMMX) { + #ifdef VERBOSE + printf ("Extented MMX detected. Using the fastest methods !\n"); +@@ -38,7 +39,8 @@ + p->methods.draw_line = draw_line_mmx; + p->methods.zoom_filter = zoom_filter_xmmx; + } +- else if (cpuFlavour & CPU_OPTION_MMX) { ++#endif ++ if (cpuFlavour & CPU_OPTION_MMX) { + #ifdef VERBOSE + printf ("MMX detected. Using fast methods !\n"); + #endif diff --git a/contrib/src/goom/goom2k4-osx.patch b/contrib/src/goom/goom2k4-osx.patch new file mode 100644 index 000000000000..1ab4db1e2fd1 --- /dev/null +++ b/contrib/src/goom/goom2k4-osx.patch @@ -0,0 +1,11 @@ +--- goom/configure.in.orig 2010-11-01 00:05:11.000000000 +0100 ++++ goom/configure.in 2010-11-01 00:05:16.000000000 +0100 +@@ -43,8 +43,6 @@ + dnl HOST + case "$host" in + *-apple-darwin*) +- MACTARGET="yes" +- MACFOLDER="mac" + AC_SUBST(MACFOLDER) + CCAS='$(CC)' + AC_SUBST(CCAS) diff --git a/contrib/src/goom/goom2k4-xmmslibdir.patch b/contrib/src/goom/goom2k4-xmmslibdir.patch new file mode 100644 index 000000000000..3459caa909db --- /dev/null +++ b/contrib/src/goom/goom2k4-xmmslibdir.patch @@ -0,0 +1,11 @@ +--- goom/xmms-goom/Makefile.am 2005-02-07 22:46:42.000000000 +0900 ++++ goom.new/xmms-goom/Makefile.am 2011-04-16 02:03:15.420291009 +0900 +@@ -2,7 +2,7 @@ + + if HAVE_XMMS + xmms_lib_LTLIBRARIES = libxmmsgoom2.la +-xmms_libdir = $(XMMS_VISUALIZATION_PLUGIN_DIR) ++xmms_libdir = $(libdir) + libxmmsgoom2_la_LIBADD = $(top_builddir)/src/libgoom2.la $(XMMS_LIBS) + libxmmsgoom2_la_SOURCES = xmms_goom.c + INCLUDES=-DDATADIR=\"@XMMS_DATA_DIR@\" @XMMS_CFLAGS@ -Wall -I../src/ diff --git a/contrib/src/goom/rules.mak b/contrib/src/goom/rules.mak new file mode 100644 index 000000000000..9b974849d85d --- /dev/null +++ b/contrib/src/goom/rules.mak @@ -0,0 +1,33 @@ +# goom + +GOOM_VERSION := 2k4-0 +GOOM_URL := $(CONTRIB_VIDEOLAN)/goom-$(GOOM_VERSION)-src.tar.gz + +PKGS += goom + +$(TARBALLS)/goom-$(GOOM_VERSION)-src.tar.gz: + $(call download,$(GOOM_URL)) + +.sum-goom: goom-$(GOOM_VERSION)-src.tar.gz + +goom: goom-$(GOOM_VERSION)-src.tar.gz .sum-goom + $(UNPACK) + mv goom2k4-0 goom-2k4-0-src + $(APPLY) $(SRC)/goom/goom2k4-0-memleaks.patch + $(APPLY) $(SRC)/goom/goom2k4-autotools.patch + $(APPLY) $(SRC)/goom/goom2k4-noxmmx.patch + $(APPLY) $(SRC)/goom/goom2k4-xmmslibdir.patch + $(APPLY) $(SRC)/goom/goom2k4-0-mmx.patch +ifdef HAVE_WIN32 + $(APPLY) $(SRC)/goom/goom2k4-0-win32.patch +endif +ifdef HAVE_MACOSX + $(APPLY) $(SRC)/goom/goom2k4-osx.patch +endif + $(MOVE) + +.goom: goom + $(RECONF) + cd $< && $(HOSTVARS) ./configure $(HOSTCONF) --disable-glibtest --disable-gtktest + cd $< && $(MAKE) install + touch $@ -- GitLab