FFmpeg Summer Of Code 2007
Google is sponsoring their third annual Summer of Code for the summer of 2007. This entails sponsoring students to work on assorted open source projects as well as sponsoring mentors in those same projects. Everyone wins.
FFmpeg was a Summer of Code participant in the summer of 2006 (here is the corresponding Wiki page) and hopes to be accepted again this year.
Mike Melanson (mike -at- multimedia.cx) is the administrator and main point of contact for matters relating to the FFmpeg Summer of Code.
How to apply
Before you can apply make sure you are qualified enough to apply. Last year 50% of the applicants weren't qualified for the task they applied for.
- You have to know how to program in C fairly well.
- We would like you to submit a patch that fixes a bug or adds a feature to FFmpeg. By doing that we will know that you are qualified for the task or not. On this page there is a list of Small Tasks that can be done. But you are free to submit anything you feel might be of value to FFmpeg.
- Submit a good application through the formal Google Summer of Code process during the application timeframe (March 14-24, 2007).
- March 5-12, 2007: Application period for mentoring organizations.
- March 6, 2007: Mike Melanson submitted FFmpeg mentoring application.
Waiting for acceptance...
Qualifications for a good Summer of Code proposal:
- discrete, well-defined, modular
- comprised of a series of measurable sub-goals
- based on open specs that are available free of charge
- based on complete specs
An example of a good proposal is the implementation of a decoder or demuxer for an as yet unsupported multimedia format, or an encoder or muxer for a format that can already be demuxed/decoded by FFmpeg.
An example of a less desirable proposal is one that's not as measurable, such as refactoring APIs. Bad proposals tend to be ones that would require touching a lot of core code.
- Localized/isolated code projects = good
- Global code refactoring = bad
- Specifications: As ITU-T recommendations, ISO publicly available standards
- Sources: JasPer, OpenJpeg, JJ2000 (in Java)
- Samples: http://samples.mplayerhq.hu/jpeg2000/
Monkey's Audio Decoder
- Sources: original sources, original sources port for non-win32 platforms, LGPLed Java implementation
- Specification: QCELP decoder spec is c.s0020 and source is c.r0020
- Sample files: http://samples.mplayerhq.hu/A-codecs/qclp/
Mentor: Benjamin Larsson
- Specification: http://www.atsc.org/standards/a_52b.pdf
- Samples: http://samples.mplayerhq.hu/evob/MAININTRO.EVO
- Specification + sample implementation: http://kbs.cs.tu-berlin.de/~jutta/toast.html
- Samples: http://samples.mplayerhq.hu/A-codecs/GSM/
- Specification: I263 Format Specification at MultimediaWiki
- Sources: GPLed I263 decoder
- Sample files: http://samples.mplayerhq.hu/V-codecs/I263/
- Specification: On2 VP6
- Samples: http://samples.mplayerhq.hu/V-codecs/VP6/
- Specification: http://www.matroska.org/technical/specs/index.html
- Sample files: http://samples.mplayerhq.hu/Matroska/
Mentor: Aurelien Jacobs; Backup mentors: Steve Lhomme, Ronald S. Bultje
MPEG TS/DVB Muxer
PAFF decoding for H.264/AVC
- Specification: ITU-T
- Sample files: http://samples.mplayerhq.hu/V-codecs/h264/PAFF/
(contingent on near-term reverse engineering efforts)
- Specification: http://www.dca.fee.unicamp.br/~martino/disciplinas/ea978/tgaffs.pdf
- Samples: http://www.openquicktime.org/files.php/aletrek/
- Specification: http://partners.adobe.com/public/developer/en/tiff/TIFF6.pdf
- Samples: http://samples.mplayerhq.hu/mov/tiff/
Bethsoft VID demuxer
- Specification: look at the MPlayer vivo demuxer 
- Samples: http://samples.mplayerhq.hu/vivo/
IFF/8SVX 8-bit audio demuxer
- Specification: http://netghost.narod.ru/gff/vendspec/iff/iff.txt, http://sox.sourceforge.net/AudioFormats-11.html, and xine demuxer
- Samples: http://aminet.net/mods/smpl/
Optimize some code
Do you think some code in ffmpeg could run faster? We would love to get some faster decoders or encoders.
This requires some ASM skills and using timer code to benchmark.
Speedups needed in:
- h264 decoder
- vc-1 decoder
Review/fix some FFmpeg patches
insert FFmpeg patch list here.
- QTRLE encoder
- DNxHD encoder and decoder through external reference code