Factor/GSoC/2010/Audio and video libraries


Joe Groff

Skills required

  • Knowledge of C
  • Knowledge of Factor's FFI
  • Factor API design skills
  • Knowledge of media formats and libraries



Existing work

Factor already has various multimedia libraries:

  • ogg.* - bindings to Ogg, Vorbis, and Theora libraries
  • id3 - ID3 parser in pure Factor
  • openal - 3D audio binding
  • audio.engine - an OpenAL-based mixer engine using the above libraries to support WAV/AIFF and Ogg stream playback

Missing is a framework for video playback. Bindings to native media libraries such as GStreamer, Quicktime, and Windows Media should be written too. The end goal would be a high-level idiomatic Factor API for embedding audio and video in GUI applications.

Technical details

Factor's C FFI (foreign function interface) is capable of calling out to the entirety of C libraries, including callbacks and various calling conventions, like cdecl and stdcall. Therefore, all of the libraries can be bound to and called from inside Factor.

Benefit to the student

The student learns how to bind C libraries to Factor using Factor's FFI, and also learns how C multimedia libraries work.

Benefit to the community

Factor will be suitable for multimedia applications if this project is completed.


  • Learning the APIs of various libraries

This revision created on Thu, 25 Feb 2010 19:29:48 by jckarter