FFmpeg Summer Of Code 2006
Google is sponsoring its second Summer of Code. FFmpeg has been selected as one of the approved mentoring organizations. Here are a few project ideas:
VC-1
Implement the VC-1 codec based on the emerging open specification document and coming roadmap.
Mentor: Mike Melanson
AAC
Implement a new, optimized AAC decoder based on the emerging open specification document.
Mentor: Mike Melanson
FFmpeg Refactoring
Modularize the FFmpeg libraries so that each individual codec and muxer/demuxer modules can be easily enabled and disabled at compile time.
Mentor: Mike Melanson
Improving libavformat
libavformat is the interface of FFmpeg that is responsible for splitting apart encoded audio and video data from multimedia files (demuxing) and putting it together in new multimedia files (muxing). While libavcodec -- the FFmpeg component that encodes and decodes audio and video data -- enjoys widespread use among an impressive array of multimedia projects libavformat has not seen the same level of adoption. This task would entail investigating how to improve the libavformat API, how it interacts with client applications and input layers, developing proof of concept code for a new API and working to port existing muxers and demuxers to the new API.
Mentor: Mike Melanson
Dirac
Implement the Dirac codec based on the upcoming new specification from Dirac site
Mentor: Luca Barbato
NUT
Update the NUT container format support (the current one implements an ancient specification), check the current one here
Mentor: Luca Barbato
SNOW
Optimize and document SNOW wavelet codec
Mentor: Luca Barbato
AC3
Implement a LGPL (E)AC3 decoder
Mentor: Benjamin Larsson
Profiling and Optimization
Profile and optimize memory usage
Vorbis
Implement a Vorbis encoder
AMR
Implement a LGPL AMR decoder (encoder)
MP3
Implement a simple MP3 encoder
Pyschoacoustics
Implement a good pychoacoustic model. Support the usage of this model from the AC3, MP2 and other audio encoders.