zao / foo_wave_seekbar

A foobar2000 UI seekbar element displaying the playing waveform.
http://www.foobar2000.org/components/view/foo_wave_seekbar
Other
85 stars 7 forks source link

Rapid track changes saturate GDI message pump #34

Open zao opened 9 years ago

zao commented 9 years ago

For very short tracks played in succession (example is 339 frames), the GDI frontend spends more time generating the image than the track takes to play, blocking the message pump with update_data work, hanging the player.

For repeated plays of the same track, likely solution is to maintain a small cache of images. For sequenced plays of different tracks, thread off generation or trigger via idle messages, achieving rate limiting and pre-emption.

Or of course, "don't do that".