Penguin

GStreamer is an LGPLed media framework for building graphs of inputs, filters, and outputs (think !DirectShow? if you know it), based on the GLib 2.0 object model.

Inputs can be drivers for DigitalCameras other other periphery, or may read media files, or get their input from basically anything else, such as network connections or by programmatically generating sound. Filters process their input in various ways; some of them are basically mandatory (like demultiplexers for a media file input stream), while others are others optional, such as sound enhancing filters or video effects. Outputs are could be drivers such as for sound output using ALSA, OSS, ESound, or anything else supported by the platform in question, or for video output using X11, OpenGL, or what have you, or they could push their input across a network connection or write it into a file or simply analyze it or whatever.

By using such an architecture, MediaPlayers such as Totem as well as any other kinds of applications can take advantage of advances in CoDec and filter technology transparently. Developers can add new CoDecs to all GStreamer-based applications and filters by writing a simple plugin with a clean, generic interface. Most of the existing plugins are licensed under LGPL just like the framework itself, so GStreamer is useful for commercial development.

The GStreamer project is currently moving under the umbrella of the FreeDesktop project.