[mythtv] Re: [mythtv-commits] mythtv commits (mythmusic FFTW breaks build?)

Steven mythmail at richardstraat.homedns.org
Sat May 14 17:49:44 UTC 2005

I've tried switching to the new fftw 3.0.1 but that doesn't fix things. 
This is what I get :

g++ -c -pipe -Wall -W -fomit-frame-pointer -I/usr/include/SDL 
-DQT_SHARED -I/usr/lib/qt/mkspecs/default -I. -I/usr/include 
-I/usr/kde/3.3/include -I/usr/include -I/usr/include/cdda 
-I/usr/lib/qt/include -I/usr/X11R6/include -o visualize.o visualize.cpp
visualize.cpp: In constructor `Spectrum::Spectrum()':
visualize.cpp:57: error: invalid conversion from `void*' to `fftw_real*'
visualize.cpp:58: error: invalid conversion from `void*' to `fftw_real*'
visualize.cpp:59: error: invalid conversion from `void*' to `fftw_real*'
visualize.cpp:60: error: invalid conversion from `void*' to `fftw_real*'
visualize.cpp: In constructor `Gears::Gears(QWidget*, const char*)':
visualize.cpp:610: error: invalid conversion from `void*' to `fftw_real*'
visualize.cpp:611: error: invalid conversion from `void*' to `fftw_real*'
visualize.cpp:612: error: invalid conversion from `void*' to `fftw_real*'
visualize.cpp:613: error: invalid conversion from `void*' to `fftw_real*'
make[2]: *** [visualize.o] Error 1

mythtv at cvs.mythtv.org schreef:

>Changes committed by danielk on Fri May 13 16:36:30 2005
>Modified Files:
>   in mythplugins/mythmusic/mythmusic:
>        inlines.h visualize.cpp visualize.h 
>   in mythplugins:
>        configure 
>Log Message:
>Ported mythmusic to FFTW v 3.0, modified configure to enable FFTW3
>if present.
>I'm not sure if I got the amplitude funtion right in visualize.cpp.
>I cribbed the FFTW v 2.0 ones, but it appears to conflate the 
>high and low frequencies. It may have something to do with the
>the rfftw_one returning an array of floats, while the new fftw_execute
>returns an array of complexes. But according to the 2.0 docs the 
>rfftw_one function really returns complex values typecast as floats,
>in which case the 2.0 magnitude function is more broken than the 3.0
>magnitude fucntion.
>Someone who knows what this code is supposed to do should look at this.
>At this point it compiles, links, and appears to do the right
>thing in the visualizations to my untrained eyes.
>PS The arrays were not properly aligned before, I now allocate the
>arrays with av_malloc, so that FFTW can use SIMD instructions.
>The FFTW could be further sped up by using floats instead of doubles,
>using the SEE int32_to_float instructions when available, by using
>the  halfcomplex-format DFT instead of the full FFT, and/or by saving
>and restoring the "FFTW Wisdom" to speed up startup time.
>* FFTW Wisdom is determined by executing several different FFT
>algorithms until the best one is found for the current array
>alignments, array sizes, processor architecture, etc. It doesn't
>take long on my 2.8Ghz machine, but...

More information about the mythtv-dev mailing list