]> git.sesse.net Git - vlc/commitdiff
Contribs: add Goom
authorJean-Baptiste Kempf <jb@videolan.org>
Mon, 8 Aug 2011 21:23:48 +0000 (23:23 +0200)
committerJean-Baptiste Kempf <jb@videolan.org>
Mon, 8 Aug 2011 21:28:56 +0000 (23:28 +0200)
contrib/src/goom/SHA512SUMS [new file with mode: 0644]
contrib/src/goom/goom2k4-0-memleaks.patch [new file with mode: 0644]
contrib/src/goom/goom2k4-0-mmx.patch [new file with mode: 0644]
contrib/src/goom/goom2k4-0-win32.patch [new file with mode: 0644]
contrib/src/goom/goom2k4-autotools.patch [new file with mode: 0644]
contrib/src/goom/goom2k4-noxmmx.patch [new file with mode: 0644]
contrib/src/goom/goom2k4-osx.patch [new file with mode: 0644]
contrib/src/goom/goom2k4-xmmslibdir.patch [new file with mode: 0644]
contrib/src/goom/rules.mak [new file with mode: 0644]

diff --git a/contrib/src/goom/SHA512SUMS b/contrib/src/goom/SHA512SUMS
new file mode 100644 (file)
index 0000000..604cfb1
--- /dev/null
@@ -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 (file)
index 0000000..3b881d7
--- /dev/null
@@ -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 (file)
index 0000000..48366d6
--- /dev/null
@@ -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 (file)
index 0000000..208cf28
--- /dev/null
@@ -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)\r
\r
+-AM_DISABLE_STATIC\r
+ AM_INIT_AUTOMAKE(SDL_Goom, 2k4)\r
\r
+ ACLOCAL="$ACLOCAL -I m4"\r
+@@ -76,24 +75,7 @@
+ AM_CONDITIONAL(MACTARGET,test "x$MACTARGET" = "xyes")\r
\r
\r
+-AC_CHECK_HEADER(pthread.h,,AC_MSG_ERROR([*** POSIX thread support not installed - please install first ***]))\r
+-\r
+-PTHREAD_LIBS=error\r
+-AC_CHECK_LIB(pthread, pthread_attr_init, PTHREAD_LIBS="-lpthread")\r
+-\r
+-if test "x$PTHREAD_LIBS" = xerror; then\r
+-    AC_CHECK_LIB(pthreads, pthread_attr_init, PTHREAD_LIBS="-lpthreads")\r
+-fi\r
+-\r
+-if test "x$PTHREAD_LIBS" = xerror; then\r
+-    AC_CHECK_LIB(c_r, pthread_attr_init, PTHREAD_LIBS="-lc_r")\r
+-fi\r
+-\r
+-if test "x$PTHREAD_LIBS" = xerror; then\r
+-    AC_CHECK_FUNC(pthread_attr_init, PTHREAD_LIBS="")\r
+-fi\r
+-\r
+-AC_SUBST(PTHREAD_LIBS)\r
++dnl AC_SUBST(PTHREAD_LIBS)\r
\r
+ dnl rm -f mmx_zoom.s\r
+ dnl   echo -n checking for nasm...\r
+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 (file)
index 0000000..62b7ad8
--- /dev/null
@@ -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 (file)
index 0000000..d9f07a2
--- /dev/null
@@ -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 (file)
index 0000000..1ab4db1
--- /dev/null
@@ -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\r
+ case "$host" in\r
+ *-apple-darwin*)\r
+-      MACTARGET="yes"\r
+-      MACFOLDER="mac"\r
+       AC_SUBST(MACFOLDER)\r
+       CCAS='$(CC)'\r
+       AC_SUBST(CCAS)\r
diff --git a/contrib/src/goom/goom2k4-xmmslibdir.patch b/contrib/src/goom/goom2k4-xmmslibdir.patch
new file mode 100644 (file)
index 0000000..3459caa
--- /dev/null
@@ -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 (file)
index 0000000..9b97484
--- /dev/null
@@ -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 $@