FFmpeg Summer Of Code In Space 2012
For us to consider your application for SOCIS we require a completed qualification task. Many Summer-of-Code projects (in the list below) have specific qualification tasks. These tasks are meant to make you familiar with the code that you will be working with, are at approximately the same difficulty level as the actual Summer-of-Code project itself (just a lot smaller), and often already provide you with a jumpstart into your Summer-of-Code project. We suggest the following order of events:
- First, select a Summer-of-Code project (either from the list below, but in some cases you may also come up with your own)
- Second, discuss this project with the person that will mentor it. If a mentor is listed, talk to him on IRC, via email or so. If no mentor is listed, find one by emailing the FFmpeg mailinglist.
- With your mentor, discuss the most appropriate qualification task for your Summer-of-Code project.
If no specific qualification task is listed for your project of interest, you can discuss with your mentor to choose a task from the Small Tasks list or the Interesting Patches list instead. If your prospective mentor agrees, please send an email to the FFmpeg mailing list to inform that you are working on it (to avoid duplicated work). The qualification task is considered completed when your patch is accepted to the main Git tree.
Before posting to the FFmpeg mailing list, make sure you read and understand our netiquette guidelines, especially avoid top-posting and thread-hijacking. You should also familiar with the programs diff, patch and git.
1st Tier Project Proposals
1st tier project proposals are project ideas that are reasonably well defined and have a mentor volunteered.
Libavfilter misc extensions
Libavfilter is the FFmpeg filtering library. It currently supports audio and video filtering and generation support.
The task would consist of writing or porting audio and video filters and eventually fix/extend libavfilter API and design.
Prerequisites: good C coding skills, familiarity with git/source code control systems, having some background on DSP and image/sound processing techniques would be a bonus but is not strictly required.
Qualification task: a port or an implementation from scratch of one or more filters.
- Port all the missing filters from MPlayer (do not forget asking the authors if it is ok to release them under the LGPL)
- Framework: implement dynamic-reconfiguration of the filterchain, for supporting dynamic size/format changes
- Port filters from other frameworks (mjpeg-tools, effectv, frei0r, virtualdub, vlc, etc...) when it makes sense.
- Write wrappers for more image processing libraries and filtering frameworks (libgimp, libgraphicsmagic, weed), extend the libopencv wrapper for supporting more filters (this may need implemented float image support in libswscale)
- Write more filters (possibly starting from already posted filters which for a reason or another were never committed, e.g. concatenate, fish, eval, posterize, elbg/posterize etc.)
- Write a frequency domain transform filter and inverse frequency domain transform using the DSP utils in libavcodec
- Write a Matlab/Octave/SAGE scripting wrapper (assuming it can be done)
- Add metadata injection in the filtergraph
- Fix libavfilter trac tickets
Mentor: Stefano Sabatini - saste in IRC (possibly with a backup mentor)
2nd Tier Project Proposals
These proposals lack of a mentor.
Finish GSoC projects from previous years
Some projects are lingering in the dark unfinished. They should be picked up and made ready for inclusion. These projects are potentially less involved than starting from scratch, but also more useful for FFmpeg since the probability that the projects get finished should be higher. If some of them are deemed too easy, they could be combined.
For the current status of all GSoC projects up to date, see FFmpeg Summer Of Code.
Forward Error Correction
Add FEC to libavutil.
- RTP FEC, standardised as SMPTE 2022M (Possibly the same as Pro-MPEG FEC) - (not 100% sure if this is for all types of RTP or just some)
- MPEG-TS 16 bytes extra - (not sure where this is standardised - in DVB perhaps?)