Title Extend Cheese with OpenGL effects
Student Filippo Argiolas
Mentor Daniel Siegel
Abstract
Cheese has been one of the best innovations that made 2.22 a great
GNOME Release. It's amazing to use the webcam to take funny photos and
it's great how it integrates with the whole desktop.

Looking at the effects it provides though, it still lacks something to
realize its whole potential. Some cool hardware accelerated effect
(some distortion and artistic realtime image manipulation) would
greatly improve the variety of fancy and funny photos achievable and
would stimulate a bit more the hedonistic side that every user has.

So my purpose is to write a gstreamer plugin capable of trasforming
the webcam video data to GL textures that can be manipulated with hardware
accelerated techniques and resend them as video data to the gstreamer
pipeline. My plugin would take advantage of modern video adapters'
programmable pipeline supporting GLSL shaders.
This plugin will be easily integrated with Cheese that already uses
gstreamer based effects.

I'll also write some simple effect for the new plugin:

- some photobooth-like distortion effect (squeeze, mirror, dent,
  bulge, fisheye, light-tunnel and probably more)

- some color manipulation effect (negative, sepia, black&white,
  thermal signature, and probably something more complex like
  convolution filters, chromakey, etc)

All this effects, being gstreamer based, won't be restricted to Cheese
use only but they could be, of course, used in other video editing
software (e.g. PiTiVi), or wherever gstreamer is used to manage
video data.

Later, if time would allow or even after GSOC program ends, I'd like
to add some UI improvements to Cheese, like switching to Clutter to
display video, improve the effect selector with live previews of
applied effects, and some Clutter based animation here and there.