FFmpeg / Libav Summer Of Code In Space 2011
Stefanosa (Talk | contribs)
(Add first draft of the project page for the SOCIS application - 2011)
Next diff →
Revision as of 19:36, 10 July 2011
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/Libav mailinglists.
- 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 and Libav 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/Libav mailing lists, make sure you read and understand our netiquette guidelines, especially avoid top-posting and thread-hijacking (note that if you don't understand one of those terms, make sure to have understood them before writing your first post). Before you send us your patch, read our development guidelines and make sure your patch fulfills all the requirements stated there. You should also familiar with the programs diff, patch and Git. You have to learn these basics on your own before you start, we will not teach them to you during the application process.
1st Tier Project Proposals
1st tier project proposals are project ideas that are reasonably well defined AND have a mentor volunteered.
Libavfilter video work
Libavfilter is the FFmpeg filtering library that started as a 2007 SoC project. It replaced the now removed vhook subsystem. Most of it is already part of the FFmpeg main source tree, but there a few bits remaining. This project would consist in a combination of the following tasks:
- Get the remaining bits of the SoC tree committed (this includes: the rotate, and fps 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...)
- 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, 2xsai, eval, posterize, elbg/posterize etc.)
- Implement a compose filter (suggestion for a better name?), for creating a mosaic of the input video streams
- Write a movie sink (e.g. it could be useful for implementing a display functionality, e.g. when the video is dumped to an output device)
- Write a frequency domain filter using the FFT implementation in libavcodec
- Write a Matlab/Octave/SAGE scripting wrapper (assuming it can be done)
- More ideas?
Mentor: Stefano Sabatini (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/Libav 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?)