FFmpeg Summer of Code 2012

From MultimediaWiki
Jump to navigation Jump to search

How it works

Google's Summer of Code program is simple: you (the student) work on a project, full-time, during the whole summer, and you get assistance (advice, mentoring) from a FFmpeg developer. By doing so, you'll learn to operate in an opensource project, you'll get relevant coding experience, and you'll have a chance at earning money while doing fun stuff during the summer. So, you need a project, a mentor, do a qualification task (see below) so we can quickly assess how good a candidate we feel you'll be for the program, and then you can apply.

Please detail the deadlines for applying and being a student/mentor.

Selecting a project

Below, you'll find two lists of projects:

  • Projects with a mentor
  • Projects without a mentor

If you choose a project with a mentor, talk to that mentor (see below) and select a suitable qualification task. Once completed, you're eligible for participating in our Summer of Code program. If you choose a project without a mentor, your first job is to find a mentor (see below). Then, once you've found a mentor, continue as before. If you don't like any of the projects, you're free to define your own project and find a mentor as mentioned before (see below for caveats).

Contacting developers/mentors

Once you've found a project (with or without mentor), start talking to the developers. We can often be found on IRC, and you can talk to us on mailinglists also. Hop on irc.freenode.net channels #ffmpeg-devel, or talk to us on ffmpeg-devel@ffmpeg.org. Here, you'll be able to ask around for mentors for projects without a mentor if you need to. If you're trying to define your own project, explain (with reasonable amount of detail) what you intend to achieve and why you think your project should be in our Summer of Code program. Once you've found a mentor, you're good to start your qualification task.


Your qualification task

The goal of a qualification task is to see if the mentor and student feel that, together, they will be able to finish the project of their choice.

Applying

While you are working on your qualification task, apply at http://www.google-melange.com/. The degree (and detail) with which you've finished your qualification task will determine how likely your project is to be selected. In the past few years, students that completely finished their qualification task always got selected as Summer of Code students, but that may vary depending on the number of spots we get assigned by Google, and the number of students that apply.


1st Tier Project Proposals

1st tier project proposals are project ideas that are reasonably well defined AND have a mentor volunteered.

Improve the audio resampling/rematrixing/converting code

  • right now, we're using libswresample to resample/rematrix audio (samplerate / channels) and to resample the audio format (int, float, 16-bit, 32-bit).
  • both interleaved and planar audio sample formats are already supported
  • We need SIMD optimization of popular conversions (float-int16, int16-float), (stereo-mono-5.1) and anything else thats frequently used.
  • We need support for alternate conversion functions (e.g. sample format conversion with or without dithering)
  • fix bugs in current design (none known but there sure are some)

Mentor: Michael Niedermayer


video filter work

Mentor stefano

2nd Tier (need mentor) Project Proposals

some following proposals might be done by libav, still waiting for dust to settle.

DTS-HD decoder

(1) Add support for mixed Core + DTS-HD stream structure
    (DtsCoreFrame+DtsHdFrame+DtsCoreFrame+DtsHdFrame+...), used by Blu-Ray main
    and commentary tracks.
(2) Add support for XXCh extension (6.1 and 7.1 channels).
(3) Add support for X96 extension (96khz).
(4) Add support for XLL extension (lossless).
(5) Add support for a pure DTS-HD stream structure
    (DtsHdFrame+DtsHdFrame+DtsHdFrame+...), used by Blu-Ray PiP tracks.
(6) Add support for XBR extension (extra bitrate).


MPEG-4 ALS Roundup

This task is to update and enhance the existing ALS decoder as well as integrate and enhance the rudimentary encoder found at: https://github.com/justinruggles/FFmpeg-alsenc

Possible features are:

  • implement rls-lms in the decoder
  • do correct channel layout/sort handling in the decoder
  • update to current master
  • use codec private options
  • implement encode2(), setting pts and duration
  • document options and examples in encoders.texi
  • come up with a good set of encoding tests for FATE
  • implement mcc/channel sort in the encoder
  • implement rls-lms in the encoder
  • implement float support

reverse engineer TAK format

there is some interest in this format. maybe a qual task?

support for more subtitle formats

we have libass support now, either a parser (from mplayer) to convert subs into ass or something else.

mkv ordered chapters / playlist support

get playlist stuff into ffmpeg. playlist is blocking a few things like quicktime edit list and .asx / .pls files.

adobe fragmented http in/out

adobe has a new streaming format.

libavfilter 9/10bit support

make filters work with higher bitrate codecs/colorspaces