FFmpeg Summer Of Code 2007: Difference between revisions
(Porting SGI image format support to new API as qualification task.) |
(Added Justin as mentor for E-AC3) |
||
Line 84: | Line 84: | ||
''Mentor: Luca Barbato'' | ''Mentor: Luca Barbato'' | ||
==== E-AC3 Decoder ==== | |||
* Specification: http://www.atsc.org/standards/a_52b.pdf | |||
* Samples: http://samples.mplayerhq.hu/evob/MAININTRO.EVO | |||
''Mentor: Justin Ruggles'' | |||
=== Ideas for more projects to be determined === | === Ideas for more projects to be determined === | ||
Line 98: | Line 104: | ||
* Code: http://svn.mplayerhq.hu/aac/ | * Code: http://svn.mplayerhq.hu/aac/ | ||
==== GSM Decoder ==== | ==== GSM Decoder ==== |
Revision as of 01:55, 17 March 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).
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 Qualification Tasks that can be done. But you are free to submit anything you feel might be of value to FFmpeg. The qualification task can be done after you have filed you application.
- Submit a good application through the formal Google Summer of Code process during the application timeframe (March 14-24, 2007).
- You have to have >35 hours per week to put into the project.
- You can't have another job at the same time as the SoC project.
Current Status
- March 5-12, 2007: Application period for mentoring organizations.
- March 6, 2007: Mike Melanson submitted FFmpeg mentoring application.
- March 14, 2007: Google are now accepting student Applications.
- March 15, 2007: FFmpeg got accepted as mentoring organization; now accepting student applications until March 24, 2007.
Project Proposals
Overview
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.
To re-iterate:
- Localized/isolated code projects = good
- Global code refactoring = bad
Note
THIS LIST IS NOT THE PROPOSALS WE ARE SUBMITTING!
Most of this list is just some ideas we are kicking around.
Projects with Mentors (official projects)
QCELP Decoder
- Specification: QCELP decoder spec is c.s0020 and source is c.r0020
- Sample files: http://samples.mplayerhq.hu/A-codecs/qclp/
Mentor: Benjamin Larsson
Matroska Muxer
- 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
- Specification: ISO 13818-1
Mentor: Baptiste Coudurier
MXF Muxer
- Specification: SMPTE 377M
Mentor: Baptiste Coudurier
RV40 Decoder
- RealVideo 4 is steadily being reverse engineered and should be a reasonable candidate for re-implementation by the summer.
Mentor: Mike Melanson
PAFF decoding for H.264/AVC
- Specification: ITU-T
- Sample files: http://samples.mplayerhq.hu/V-codecs/h264/PAFF/
Mentor: Loren Merritt
Dirac Encoder AND Decoder
- Website: http://dirac.sf.net
- Specification: http://dirac.sourceforge.net/specification.html
Mentor: Luca Barbato
E-AC3 Decoder
- Specification: http://www.atsc.org/standards/a_52b.pdf
- Samples: http://samples.mplayerhq.hu/evob/MAININTRO.EVO
Mentor: Justin Ruggles
Ideas for more projects to be determined
JPEG2000
- 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
Finish LC AAC decoder and implement HE-AAC(+)
GSM Decoder
- Specification + sample implementation: http://kbs.cs.tu-berlin.de/~jutta/toast.html
- Samples: http://samples.mplayerhq.hu/A-codecs/GSM/
i263 Decoder
- Specification: I263 Format Specification at MultimediaWiki
- Sources: GPLed I263 decoder
- Sample files: http://samples.mplayerhq.hu/V-codecs/I263/
VP6 Encoder
- Specification: On2 VP6
- Samples: http://samples.mplayerhq.hu/V-codecs/VP6/
NUT Muxer
DPX/Cineon Encoder AND Decoder
- Specification: SMPTE 268M
- http://en.wikipedia.org/wiki/DPX
- Sources: CinePaint implementation , linuxmovies.org list of open source film tools
- Samples: ftp://ftp.graphicsmagick.org/pub/dpx/
OpenEXR Encoder AND Decoder
- Website and open source tools: http://openexr.com/
- License: modified BSD
- http://en.wikipedia.org/wiki/OpenEXR
- Sources: CinePaint implementation , linuxmovies.org list of open source film tools
HD Photo Encoder AND Decoder
- Sources and specification: http://www.microsoft.com/whdc/xps/hdphotodpk.mspx
- http://en.wikipedia.org/wiki/HD_Photo
Qualification tasks
Add a note if you choose to work on a Qualification task to avoid duplicate work.
TIFF encoder
- Specification: http://partners.adobe.com/public/developer/en/tiff/TIFF6.pdf
- Samples: http://samples.mplayerhq.hu/mov/tiff/
Vivo demuxer
- Specification: look at the MPlayer vivo demuxer [1]
- 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/
Port SGI image support to new API
FFmpeg changed image format APIs, but the SGI file format was never ported to the new API.
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
BFI Playback System
Add FFmpeg playback capability for the BFI format. This entails writing a new file demuxer and simple video decoder.
DrV said he was working on this.
THP Playback System
Add FFmpeg playback capability for the THP format. This entails writing a new file demuxer and leveraging existing JPEG and ADPCM decoders to handle the video and audio data inside.
Game Formats
Several game formats are documented in this Wiki, but not yet implemented in FFmpeg. Some of them are Bethsoft VID, ...
See Also
FFmpeg Wishlist for more tasks or ideas.
FFmpeg bugs for ffmpeg bugs.