mixxxdj/mixxx — pull request #444 by ywwg (2014-12-30 03:53:54+00:00)
Title: 1.12 performance low-hanging fruit

I've been doing a little profiling, because I've been seeing more buffer underruns than normal. I identified the following issues:

* vinyl spinny quality drawing was super slow, and the work was being done even if vinyl wasn't active or drawing was off. I fixed this during the spinny work.
* EngineFilterDelay::process takes lots of CPU for some reason, I don't know why. It's often the top item in the profile.
* EngineBuffer::isActive is super slow. Apparently checking a QSharedPointer for non-null is slow3. Adding a bool that tracks the null/notnull status of the pointer solves the problem, but we have to think about possible race conditions.
* EngineVinylSoundEmu is slow. It should noop if all of the conditions are false (!wasDithering && !isDithering && !prevQuieting && !curQuieting)

Of these, I have fixes for all of them except the Delay issue.