FFmpeg Summer Of Code 2009

From MultimediaWiki
Jump to navigation Jump to search

Current Status

This list is still a work-in-progress, please see also the Talk Page.

Qualification tasks

For us to consider your application for SoC we require a completed qualification task. Choose a task from the Small Tasks list, send an email to FFmpeg-devel mailing list to inform that you are working on it (to avoid duplicated work) and when it is ready submit it for review at FFmpeg-devel. The task is considered completed when your patch is accepted to our main SVN tree.

1st Tier Project Proposals

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

S/PDIF muxer

  • Implement a muxer capable to mux:
    • DTS, all 3 packing modes and the usable HD extensions
    • AC3, eAC3 also
    • MLP
    • PCM
    • WMApro
    • AAC
    • Mpeg-audio, layer 2 and 3

Mentor: Benjamin Larsson

Flash Screen video 2 codec

  • Implement a flashsv2 decoder and encoder. And extend the current flashsv encoder to support optimal 2-pass encoding.

Mentor: Benjamin Larsson

MPEG-4 ALS decoder

  • primary goal: stream copy of ALS frames in MP4 files from reference encoder
    • detect codec_id
    • preserve extradata
  • primary goal: write the decoder based on the ISO specification
    • ISO/IEC 14496-3:2005/Amd.2:2006 and related corrigenda
  • primary goal: decode files with basic ALS features
    • integer samples
    • LPC
    • rice coding
    • joint-stereo
  • secondary goal: decode files with more advanced ALS features
    • floating-point samples
    • block switching
    • LTP (long term prediction)
    • BGMC (arithmetic coding)
    • MCC (advanced multi-channel)
    • RLSLMS (backward-adaptive prediction)
  • secondary goal: pass the ISO conformance tests
  • secondary goal: handle anything the reference encoder can come up with

Mentor: Justin Ruggles

2nd Tier Project Proposals

All that separates these proposals from their 1st tier brethren is a mentor.

Implement a better regressions test system

  • Split up the current regtests
  • Add tests for all the missing formats and codecs to FATE


  • Port MPlayer's libvo to ffplay
  • Note that this does not just mean to produce a working hack so that ffplay can use xv, but a clean and acceptable wrapper for (most of) libvo.

GStreamer input

  • Like we have vfw input we could have a gstreamer input format also. This would enable support of wmapro and wmalossless until these formats are RE'd.

Mentor: Christian Schaller

AMR-WB Decoder

Also see AMR.

GSM Decoder

Also see GSM.

Sipr Decoder

Also see RealAudio sipr and this patch.

Speex Decoder

Also see Speex.

AMR-NB Encoder

Also see AMR.

VP6 Encoder

WMV3 Encoder

  • Clearly defined task
  • Primary goal: Encode video sequences such that they can be decoded by a Windows Media player.

This could either be done by improving this patch or by writing the encoder from scratch.

Improve subtitle support

  • Add text-to-bitmap conversion functions
  • One with hard-coded bitmaps for characters
  • One that utilizes freetype
  • Function used will be chosen upon compilation

Adjust existing subtitle support to new ABI

AACS implementation

  • Add the ability to encode and decode using Advanced Access Content System to FFmpeg.

VC-1 Interlaced Support

  • Add support for interlaced streams as used in Bluray recordings to the VC-1 decoder.
  • This includes fixing some reference streams

Improve Ratecontrol

  • Primary goal 1: Fast heuristic VBV compliant per macroblock ratecontrol which has a better PSNR/bitrate and better subjective quality/bitrate than the current code.
  • Primary goal 2: VBV compliant, rate distortion optimal per macroblock ratecontrol using the viterbi algorithm.
  • Secondary goal 1: Fast heuristic scene change detection which detects scene changes more accurately, has better PSNR/bitrate and subjective quality/bitrate than the current heuristic.
  • Secondary goal 2: Rate distortion optimal (for the current picture) scene change detection.
  • Secondary goal 3: B frames decision which is faster and or has a higher PSNR/bitrate and subjective quality/bitrate than the current code.

WMA lossless