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 -D_REENTRANT -D_REENTRANT -DPIC -fPIC -D_GNU_SOURCE -DPREFIX=\"/usr\" -D_FILE_OFFSET_BITS=64 -DQT_NO_DEBUG -DQT_THREAD_SUPPORT -DQT_PLUGIN -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




[EMAIL PROTECTED] 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...
----------------------------------------------------------------------------



_______________________________________________ mythtv-dev mailing list [email protected] http://mythtv.org/cgi-bin/mailman/listinfo/mythtv-dev

Reply via email to