After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 515073 - [goom] Update to goom2k4
[goom] Update to goom2k4
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-plugins-good
git master
Other Linux
: Normal enhancement
: 0.10.18
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2008-02-07 20:45 UTC by Bastien Nocera
Modified: 2008-04-09 14:04 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
gst-plugins-good-goom2k4.patch (4.42 KB, patch)
2008-02-07 20:54 UTC, Bastien Nocera
none Details | Review
gst-plugins-good-goom2k4-2.patch (681.39 KB, patch)
2008-02-09 00:54 UTC, Bastien Nocera
committed Details | Review
goom-makefile.diff (764 bytes, patch)
2008-02-22 06:55 UTC, Sebastian Dröge (slomo)
committed Details | Review
goom-lgpl.txt (2.22 KB, text/plain)
2008-02-23 14:17 UTC, Bastien Nocera
  Details

Description Bastien Nocera 2008-02-07 20:45:45 UTC
Crappy patch attached. It makes goom not suck in Totem.

http://www.ios-software.com/index.php3?page=projet&quoi=1
goom2k4 is LGPL
Comment 1 Bastien Nocera 2008-02-07 20:54:56 UTC
Created attachment 104668 [details] [review]
gst-plugins-good-goom2k4.patch

for i in *.[ch] ; do if [ $i != gstgoom.c -a $i != gstgoom.h ] ; then echo cvs rm -f $i ; fi ; done

(Copy all the files over from goom2k4)

cvs add *.[ch]

Voila

What sucks:
- Too many files that probably don't need to be there
- We unset errors in the Makefile.am because yacc produces crap code, and in the rest of the code
- Optimisations still not used (see bug 475411)
- Depends on Yacc/Lex when it didn't use to (should we ship the generated .c file instead? Or completely remove the config file crap)
Comment 2 David Schleef 2008-02-08 02:07:32 UTC
Is goom2k4 available as a standalone library?
Comment 3 Bastien Nocera 2008-02-08 02:12:53 UTC
It is, even installs a .pc file, but I was told I should do a copy so that we can be sure that goom is always available, as before. There's probably also quite a few files that can be trimmed compared to the original code.
Comment 4 Jan Schmidt 2008-02-08 15:23:39 UTC
I'd prefer to keep our own local copy of the code, since goom is pretty much our fallback visualisation - often there are no libvisual plugins installed.
Comment 5 Jan Schmidt 2008-02-08 16:00:53 UTC
I'm really tempted to try and push this into this release, but with only a couple of hours until the freeze I'm going to restrain myself - it's too big a rewrite. 

Punting for after the release, when we can finesse the code properly.

I'd also rather avoid the YACC/LEX dependency - we have some funky pre-generation of the gst_parse code in core to allows builds on Windows without BISON/FLEX for exactly this reason.
Comment 6 Bastien Nocera 2008-02-09 00:54:14 UTC
Created attachment 104757 [details] [review]
gst-plugins-good-goom2k4-2.patch

Biiig patch.

- Use liboil to detect CPU optimisations (fixes bug 475411)
- Use gst-arch for which optimisations to compile
- Use the same hand-made Lex/Bison generation as gstreamer/gst/parse
Comment 7 Bastien Nocera 2008-02-22 01:16:56 UTC
OK to commit now that -good reopened?
Comment 8 Sebastian Dröge (slomo) 2008-02-22 06:55:20 UTC
Created attachment 105747 [details] [review]
goom-makefile.diff

Well, it works good for me (with attached patch) but it's almost impossible to review this large patch IMHO.

Also the printf() in plugin_info.c should probably be GST_DEBUG or something... and the MMX detection doesn't work:

"Too bad ! No SIMD optimization available for your CPU." although my CPU supports MMX. maybe liboil needs to be initialized first or something?
Comment 9 Sebastian Dröge (slomo) 2008-02-22 08:18:05 UTC
btw, I'd prefer to depend on new enough flex/bison for the next -base and -good release as this hack we currently have there is scary and the flex/bison versions required are released since _ages_.

(and glib >= 2.12 or 2.10 would be nice too but that's another topic)
Comment 10 Jan Schmidt 2008-02-22 08:43:20 UTC
It occurs to me to wonder if we should keep the old goom too and put the new one in a new sub-directory, registered as goom2k4 or something.    


Comment 11 Sebastian Dröge (slomo) 2008-02-22 08:49:51 UTC
Why? Unless something broke compared to the old version (which should be fixed then) there would be no advantage of having the old goom. What do I miss?
Comment 12 Jan Schmidt 2008-02-22 10:52:48 UTC
Well, this one adds new dependencies, and seems in general heavier than the old one. That, plus there's some wacko out there who prefers the old look.

I think I'd like to keep it around. Maybe a better idea is to call the old one goom2k1 and this one 'goom' so people get the new one on an upgrade though ;)
Comment 13 Bastien Nocera 2008-02-22 20:25:29 UTC
(In reply to comment #12)
> Well, this one adds new dependencies, and seems in general heavier than the old
> one. That, plus there's some wacko out there who prefers the old look.

The "old look" is the same minus actually showing interesting effects, and there's no dependencies that aren't in other GStreamer packages (ie. the core gstreamer).

> I think I'd like to keep it around. Maybe a better idea is to call the old one
> goom2k1 and this one 'goom' so people get the new one on an upgrade though ;)

Fair enough, I'll do that, and fix up Sebastian's problem on x86.
Comment 14 Bastien Nocera 2008-02-23 01:55:41 UTC
2008-02-23  Bastien Nocera  <hadess@hadess.net>

        * configure.ac: Add checks for Flex/Yacc/Bison and other
        furry animals, for the new goom 2k4 based plugin

        * gst/goom/*: Update to use goom 2k4, uses liboil to detect
        CPU optimisations (not working yet), move the old plugin to...

        * gst/goom2k1/*: ... here, in case somebody is sick enough

        Fixes #515073
Comment 15 Bastien Nocera 2008-02-23 02:39:16 UTC
All fixed now.

2008-02-23  Bastien Nocera  <hadess@hadess.net>

	* gst/goom/Makefile.am: Remove the warnings being disabled,
	fix linkage on x86, spotted by Sebastian Dröge
	<slomo@circular-chaos.org>

	* gst/goom/convolve_fx.c (convolve_init),
	(create_output_with_brightness), (convolve_apply):
	* gst/goom/filters.c (zoomFilterVisualFXWrapper_create):
	* gst/goom/goomsl.c:
	* gst/goom/ifs.c (ifs_update), (ifs_visualfx_create):
	* gst/goom/plugin_info.c:
	* gst/goom/tentacle3d.c (tentacle_fx_create):
	Fix warnings, and disable the motifs in the convolve_fx
	plugin (they were causing warnings, and they were just
	"Goom" in funny letterring)
Comment 16 Jan Schmidt 2008-02-23 13:38:25 UTC
I just noticed this in ppc_drawings.s and ppc_zoom_ultimate.s: 

"This Source Code is released under the terms of the General Public License"

We need to get some clarification of that, or remove the PPC asm bits.
Comment 17 Bastien Nocera 2008-02-23 13:53:02 UTC
(In reply to comment #16)
> I just noticed this in ppc_drawings.s and ppc_zoom_ultimate.s: 
> 
> "This Source Code is released under the terms of the General Public License"
> 
> We need to get some clarification of that, or remove the PPC asm bits.

Mailed the authors about it.
Comment 18 Bastien Nocera 2008-02-23 14:17:52 UTC
Created attachment 105818 [details]
goom-lgpl.txt

Guillaume is the only copyright holder (from the headers), and he's agreed to relicense those files under the LGPL.
Comment 19 Keith Curtis 2008-02-27 23:43:08 UTC
I just wanted to add that the old goom sucked big time. That code should be killed as it looks like garbage by comparison.
In bug 341355, I added two screenshots:
Old goom: http://bugzilla.gnome.org/attachment.cgi?id=88873&action=view
New goom: http://bugzilla.gnome.org/attachment.cgi?id=88874&action=view

And the static screenshots don't do the difference justice.

Using the standard goom2k4 codebase will also give you a better place to do any work. Libvisual is good, but they are an added dependency, don't support Goom, it doesn't know what totem is, it isn't installed out of the box, doesn't use liboil, and has its own set of issues including the fact that the website is down and no one is working on it.

I'm very glad to see this happen! I use totem because all the other music tools do too much.
Comment 20 Tim-Philipp Müller 2008-04-09 14:04:24 UTC
> Guillaume is the only copyright holder (from the headers), and he's agreed to
> relicense those files under the LGPL.

Changed headers accordingly:

 2008-04-09  Tim-Philipp Müller  <tim at centricular dot net>

        * gst/goom/ppc_drawings.s:
        * gst/goom/ppc_zoom_ultimate.s:
          Change license of these files to LGPL, as permitted by the
          author, Guillaume Borios. See #515073.