FFmpeg Summer of Code 2012

From MultimediaWiki
Revision as of 09:28, 20 February 2012 by Stefanosa (talk | contribs) (→‎video filter work: Extend description for the libavfilter task)
Jump to navigation Jump to search
Please detail the deadlines for applying and being a student/mentor.

FFmpeg Summer of Code Proposals and Qualification Tasks.

Contacting Devels

Find us on irc, server: irc.freenode.net channel: #ffmpeg-devel or contact us by subscribing to the mailing list https://lists.ffmpeg.org/mailman/listinfo/ffmpeg-devel/

1st Tier Project Proposals

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

Libavfilter extension

Libavfilter is the FFmpeg filtering library that started as a 2007 SoC project. It currently supports audio and video filtering and generation support.

The task would consist into writing or porting audio and video filters and eventually fix/extend libavfilter API and design.

In particular the work may focus on porting MPlayer filters which are currently integrated through the mp wrapper. For each port the student should verify that the new filter produces the same output (by comparing the output generated by -vf mp=FILTER and -vf FILTER) and checking that the new integrated filter is not slower.

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 of one or more filters.

Mentor: Stefano Sabatini - saste on IRC (possibly with a backup mentor).

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