Front Page All Articles Recent Changes Random Article

Contents

Concatenative language

  • ACL
  • Ait
  • Aocla
  • Breeze
  • Cat
  • Cognate
  • colorForth
  • CoSy
  • Deque
  • Elymas
  • Enchilada
  • ETAC
  • F
  • Factor
  • Forth
  • Freelang
  • Gershwin
  • Joy
  • Kitten
  • lang5
  • Lviv
  • min
  • mjoy
  • Mlatu
  • Ode
  • Om
  • Onyx
  • Plorth
  • Popr
  • Porth
  • PostScript
  • Quackery
  • r3
  • Raven
  • Retro
  • Staapl
  • Stabel
  • Trith
  • Worst
  • xs
  • XY
  • 5th
  • 8th

Other languages

  • APL
  • C++
  • Erlang
  • FP trivia
  • Haskell
  • Io
  • Java
  • JavaScript
  • Lisp
  • ML
  • Oberon
  • RPL
  • Self
  • Slate
  • Smalltalk

Computer Science

  • Type systems
  • Language paradigms
  • Compilers
  • Interpreters
  • Garbage collection

Meta

  • Search
  • Farkup wiki format
  • People
  • Etiquette
  • Sandbox

Factor/GSoC/2009/Audio and video libraries

Mentor

Doug Coleman

Skills required

  • Knowledge of C
  • Knowledge of Factor's FFI
  • Factor API design skills

Level

Beginner

Existing work

Factor already has various multimedia libraries, in various states of disrepair:

  • ogg.vorbis - binding
  • ogg.theora - binding
  • ogg.player - Ogg video and audio player
  • mod - a libmod binding
  • id3 - ID3 parser in pure Factor
  • openal - 3D audio binding

These need to be cleaned up. Additional libraries and bindings, for example to libraries such as GStreamer, 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.

Challenges

  • Learning the APIs of various libraries

This revision created on Fri, 13 Mar 2009 22:51:38 by erg

Latest Revisions Edit

All content is © 2008-2023 by its respective authors. By adding content to this wiki, you agree to release it under the BSD license.