I ported a GIMP filter, Color Enhance, to GStreamer. Basically, it does saturation stretching in HSV space. I've just committed the new code to github.
There are two major problems with the algorithm when used on video. The first is performance. I made some modifications to the algorithm (see details in the commit message and the code), and now the performance is reasonable, but still can't keep up with 640x480 @ 50 FPS. The other problem is flickering, as the degree of stretching varies from frame to frame. Maybe a moving average could help.
If you have any ideas or suggestions, feel free to tell me in the comments.