Clementine-audio-player-Mac.../src/analyzers
Andrew Reading f59c9f4b2b Rewrite the Block Analyzer to improve performance.
The block analyzer was doing lots of repeated, out-of-order blits to the
widget's canvas. To improve performance and reduce CPU usage, this has
been rewritten to generate the canvas contents using only a single buffer.
Cache thrashing has been greatly reduced by writing to memory only
sequentially and in one single write pass. Further, the raw format is
now guaranteed to be in a format efficient for Qt.

The results are visually identical to what they were previously, but
result in a CPU usage reduction between 2 and 6 percent depending on refresh
rate and Psychadelic Mode value. In particular, there used to be a ~3 percent
overhead for Psychadelic Mode, and this has been eliminated.

The specific details of the block analyzer and explanations for how it works
(and used to work) have been documented via fairly extensive comments
in blockanalyzer.cpp.
2022-09-01 19:36:03 +01:00
..
analyzer.cpp Fix cpplint.py errors, fix copyright notices in src/analyzers, move src/core/fht* to src/analyzers 2014-11-29 20:07:01 +01:00
analyzerbase.cpp Rewrite the Block Analyzer to improve performance. 2022-09-01 19:36:03 +01:00
analyzerbase.h Reformat all C++ 2020-09-22 14:56:06 +01:00
analyzercontainer.cpp Reformat all C++ 2020-09-22 14:56:06 +01:00
analyzercontainer.h Reformat all C++ 2020-09-22 14:56:06 +01:00
baranalyzer.cpp Reformat all C++ 2020-09-22 14:56:06 +01:00
baranalyzer.h Reformat all C++ 2020-09-22 14:56:06 +01:00
blockanalyzer.cpp Rewrite the Block Analyzer to improve performance. 2022-09-01 19:36:03 +01:00
blockanalyzer.h Rewrite the Block Analyzer to improve performance. 2022-09-01 19:36:03 +01:00
boomanalyzer.cpp Reformat all C++ 2020-09-22 14:56:06 +01:00
boomanalyzer.h Add "Psychedelic Colour" mode to all analyzers 2015-07-01 11:48:03 -04:00
fht.cpp Reformat all C++ 2020-09-22 14:56:06 +01:00
fht.h Reformat all C++ 2020-09-22 14:56:06 +01:00
glanalyzer.cpp Reformat all C++ 2020-09-22 14:56:06 +01:00
glanalyzer.h Fix cpplint.py errors, fix copyright notices in src/analyzers, move src/core/fht* to src/analyzers 2014-11-29 20:07:01 +01:00
glanalyzer2.cpp Reformat all C++ 2020-09-22 14:56:06 +01:00
glanalyzer2.h Reformat all C++ 2020-09-22 14:56:06 +01:00
glanalyzer3.cpp Reformat all C++ 2020-09-22 14:56:06 +01:00
glanalyzer3.h Reformat all C++ 2020-09-22 14:56:06 +01:00
rainbowanalyzer.cpp Reformat all C++ 2020-09-22 14:56:06 +01:00
rainbowanalyzer.h Reformat all C++ 2020-09-22 14:56:06 +01:00
sonogram.cpp Refactor analyzers for new FHT modifications. Use QVectors where possible. Make readability changes in the code. 2017-03-13 18:56:37 +00:00
sonogram.h Fix boom analyzer, terbine & bar analyzer behaviour when paused 2015-11-23 12:54:08 -06:00
turbine.cpp Reformat all C++ 2020-09-22 14:56:06 +01:00
turbine.h Fix cpplint.py errors, fix copyright notices in src/analyzers, move src/core/fht* to src/analyzers 2014-11-29 20:07:01 +01:00