[gst-devel] Google Summer of Code: advanced OpenGL video mixer/renderer

David Schleef ds at schleef.org
Thu Mar 20 20:48:06 CET 2008

On Thu, Mar 20, 2008 at 03:37:30PM +0200, Attila Áfra wrote:
> I'm planning to write an OpenGL accelerated video mixer/renderer library:
> (Accelerated Cross-platform Video Renderer). Its main features will be:
>   * all calculations done using OpenGL 2.1 and GLSL
>   * support for many planar and packed video formats
>   * correct color space conversion taking into account chroma siting,
>     primaries, nominal range, etc.
>   * asynchronous high speed video uploading using pixel buffer objects
>   * high quality resampling (including chroma upsampling): bicubic, Lanczos
>   * pixel-based motion and edge adaptive de-interlacing with automatic
> inverse
>     telecine supporting arbitrary cadences
>   * 3D noise filter
>   * color correction
>   * video mixing using alpha blending

Implementing that list well would take much longer than a Google Summer
of Code project.

> What do you think about this project? I can give more details about it,
> because I've made some good progress on the design.

I think it would be wise to decrease the scope of the project.  Pick
a few video processes, implement them with a dirt-simple API, wrap it
all in a GStreamer plugin, then go back and redesign the infrastructure,
redesign the API, reassess the level of quality you expect from the
algorithms, etc.  At that point, you might have some time left in your
summer to start reimplementing various stuff and adding more processes.

There already exists a similar library hidden inside Schroedinger that
does similar stuff with a C and CUDA backend.  The signal processing is
currently mostly Dirac and video compression oriented, though.

Also, as others have mentioned, there is gst-plugins-gl.  This has
gotten bogged down in the craptastic API that is OpenGL.


More information about the gstreamer-devel mailing list