Clementine-audio-player-Mac.../src
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
..
analyzers Rewrite the Block Analyzer to improve performance. 2022-09-01 19:36:03 +01:00
core Transcoder now accepts URLs for sources. 2022-01-10 16:39:58 +00:00
covers Reformat all C++ 2020-09-22 14:56:06 +01:00
dbus devices: Remove obsolete DeviceKit. 2021-05-06 20:52:33 +01:00
devices Removing Ripper dependence on cdio 2022-01-10 16:39:58 +00:00
engines Revert "Fix: GstEnginePipeline BusCallback erroneously returned false." 2021-11-05 16:54:05 +00:00
globalsearch Search song from Spotify via web api 2021-07-18 10:45:10 +01:00
internet internet/podcasts: Fix crash when updating podcasts. 2021-07-26 12:36:24 +01:00
library Replace Q_ENUMS with Q_ENUM 2021-07-14 10:19:28 +01:00
mac Reformat all C++ 2020-09-22 14:56:06 +01:00
moodbar Reformat all C++ 2020-09-22 14:56:06 +01:00
musicbrainz MusicBrainzClient fix: Don't try to read reply on connection timeout 2021-09-04 15:24:44 +01:00
networkremote Transcoder now accepts URLs for sources. 2022-01-10 16:39:58 +00:00
playlist Fix use of emit 2021-07-14 10:18:47 +01:00
playlistparsers Use XSPF image elements as manually set artwork 2021-09-18 23:52:37 +01:00
ripper RipCDDialog: References to pointers in function args. 2022-01-26 01:09:50 +00:00
smartplaylists smartplaylists: Escape pattern characters in search term 2021-04-01 14:52:48 +01:00
songinfo Reformat all C++ 2020-09-22 14:56:06 +01:00
transcoder Added option to remove/replace originals in transcoder dialog (fixed). 2022-01-20 11:43:07 +00:00
translations Automatic merge of translations from Transifex 2022-04-11 02:56:58 +00:00
ui Separating out filename formatting options into separate widget. 2021-08-31 10:19:32 +01:00
visualisations Replace qrand usage with QRandomGenerator 2021-04-20 10:31:07 +01:00
widgets add tooltips to IconOnly tabs 2021-10-25 16:21:14 +02:00
wiimotedev settings: Don't connect service-specific signals to every page 2021-03-24 10:31:52 +00:00
CMakeLists.txt Separating out filename formatting options into separate widget. 2021-08-31 10:19:32 +01:00
config.h build: Move main config from /src to /include 2021-03-16 09:30:56 +00:00
main.cpp Rename multiple files to match the application ID 2021-07-20 11:21:05 +01:00
version.h.in Create a 1.0 release branch, and rework the way version numbers are done everywhere. 2011-12-02 14:48:19 +00:00