[mythtv-commits] mythtv commits

mythtv at cvs.mythtv.org mythtv at cvs.mythtv.org
Fri May 13 16:40:02 UTC 2005

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:
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-commits mailing list