Final SoC Report – screencasts, screencasts.. screencasts!

Hey! Summer of Code just ended! since Monday we’re in Final Evaluation phase.
This means I can finally take some vacation and leave coding for a while 🙂 !
But, most of all, it means that it’s time again for not one, not two, but four screencasts!!

I’m sorry for not posting anything for a while but, needless to say I don’t like blogging :P, I was really busy with the merge. Julien Isorce, another gstreamer developer, was working on his own branch of gstreamer-gl since some time and recently David Schleef decided to merge it with cvs trunk.
He added a lot of great things like glsl colorspace conversion, win32 support, a working glimagesink and lot more. Unfortunately my effects didn’t work with the new code so I had to work hard to make them work again.

But let’s stop talking about this boring stuff, now almost everything is fine so… get ready for the show 😛 !

New Effects

New Effects

Not too much on this side..

  • a Glow Lighting effect that some of you requested. I tried to resemble gimp SoftGlow filter, do you like it?
  • a SinCity inspired effect that desaturates everything but red shades… don’t know if you agree but I love it!
  • better curves for Sepia and Cross Processing effect, maybe the latter still needs some tuning (too light blue on dark tones).
  • a Square distortion effect… ehm, no.. it was already there 🙂 but that’s definitely my favourite one!

New Filters

These are still young and don’t work quite well yet, but I’m almost there!

GstGLPixbufOverlay

Takes an image filename through a property and alpha blends it with the video stream.
It could be nice with Cheese to add funny frames, or just to add a red circle to displayed video while recording.

GstGLDifferenceMatte

This one saves a video frame of the background and replaces it with an image.
It’s really hard to make it work properly, it tries to guess the background thresholding the difference between current frame and saved one.
To get a good result it needs a uniform background, better with a uncommon color, a low noise webcam (i tried to remove noise dependency with some gaussian blur), etc.
Any idea to improve it? Probably RGB is not the right colorspace to do this thing, maybe using HSL or HSV and thresholding just hue could help to get rid of luminance dependency. I’ll give it a try.

Clutter Experiments

Clutter live preview

This is my last experiment with rendering from gstreamer gl into a ClutterActor.
It uses XComposite to redirect glimagesink stream offscreen and Clutter Texture from Pixmap support (thanks Andy Wingo for the idea) to turn it into an Actor.
It’s still young and experimental but it could be a good starting point for a clutter based effect selector for Cheese.

Great, but where is the code?
There is no release yet but you can test it if you want from the git repository git://diracvideo.org/git/gst-plugins-gl.git
Take a look at tests directory.
It is known to work for sure on linux, windows and probably osx (through X).
It needs a recent gpu that supports FBOs (mandatory) and GL Shading Language (optional, needed for the effects and accelerated colorspace conversion).

Thanks
That’s all for now.
A big thanks to everyone who helped, supported, encouraged me during this Summer of Code, Daniel Siegel, David Schleef, Julien Isorce, the guys from , , -it, ##OpenGL, the GNOME Community, everyone!
Thank you, it’s been a great time!