FFmpeg Summer of Code 2013: Difference between revisions

From MultimediaWiki
Jump to navigation Jump to search
(→‎Video codecs: Animated png)
Line 31: Line 31:
'''Description:''' FFmpeg contains a DTS decoder and an experimental DTS encoder. Both are missing some features.
'''Description:''' FFmpeg contains a DTS decoder and an experimental DTS encoder. Both are missing some features.
* DTS-HD decoder: A possible qualification task is to implement ticket #1920
* DTS-HD decoder: A possible qualification task is to implement ticket #1920
** Add support for mixed Core + DTS-HD stream structure
** Add support for X96 extension (96khz)
** Add support for XLL extension (lossless)
** Add support for pure DTS-HD streams that do not contain a DTS core
* DTS encoder improvements
* DTS encoder improvements



Revision as of 03:21, 22 February 2013

FFmpeg Summer of Code Ideas List

Proposing Ideas

If you have a project idea please contact a developer first at the #ffmpeg-devel IRC channel on Freenode or via the ffmpeg-devel mailing list. A good source of ideas is the FFmpeg bug tracker and FFmpeg Summer of Code 2012 Ideas List.

When adding an idea follow this template for consistency:

Example Title

Description: A few sentences or a short paragraph describing the task.

Expected results: Bulleted list or paragraph describing what the student is expected to achieve.

Prerequisites: Skills or knowledge required by student.

Mentor: List mentor and backup mentor if there is one and contact info such as IRC name or email address.

GSoC Ideas

Audio codecs

AAC

Description: FFmpeg contains an AAC encoder and decoder, both of them can be improved in various ways. This is enough work for more than one GSoC project, so one part of your submission would be to define on which task exactly you want to work.

  • AAC LD decoder
  • AAC BSAC decoder: This has already been started, but the existing decoder still fails on many samples
  • AAC SSR decoder
  • AAC 960/120 MDCT window
  • AAC multi-channel encoding

See also the FFmpeg bug tracker for AAC issues, fixing one of them or rebasing the existing incomplete BSAC decoder for current git head fixing one or more existing bugs are possible qualification tasks.

DTS / DCA

Description: FFmpeg contains a DTS decoder and an experimental DTS encoder. Both are missing some features.

  • DTS-HD decoder: A possible qualification task is to implement ticket #1920
    • Add support for mixed Core + DTS-HD stream structure
    • Add support for X96 extension (96khz)
    • Add support for XLL extension (lossless)
    • Add support for pure DTS-HD streams that do not contain a DTS core
  • DTS encoder improvements

MPEG-4 ALS encoder

Description: An ALS decoder was implemented several years ago, an encoder is still missing.

TrueHD encoder

Description: FFmpeg currently does not support encoding to one of the lossless audio formats used on Bluray discs. This task consists of implementing a TrueHD encoder that allows to losslessly encode audio to play it on hardware devices capable of TrueHD decoding.

Video codecs

HEVC / H265

Description: The specification was finished, FFmpeg needs a decoder for this new format.

  • Write a basic decoder supporting I, P, and, only if time permits, B slices.
  • It does not need to be ASM/SIMD optimized but its high level structure must permit such optimizations to be easily added later.

As a qualification task you need to implement parsing headers and maybe a bit beyond that to demonstrate that you are qualified and understand the HEVC specification. This project requires a solid understanding of video coding and C, it's not something for the average SOC student.

H264 MVC

Description: MVC samples exist, the codec is used on Bluray media, FFmpeg is missing a decoder. Since this task also consists of some changes in the current architecture, it is especially important that this task is discussed on the ffmpeg-devel mailing list. As qualification you have to do some work that demonstrates your understanding of MVC and that is a subpart of the whole MVC implementation.

VC-1 interlaced

Description: The FFmpeg VC-1 decoder has improved over the years, but many samples are still not decoded bit-exact and real-world interlaced streams typically show artefacts.

  • Implement missing interlace features
  • Make more reference samples bit-exact

As a qualification task, you should try to find a bug in the current decoder implementation and fix it.

animated png

Description: FFmpeg currently does not support Animated PNGs.

  • animated png decoder
  • animated png encoder

FFplay

glplay

Description: The SDL library that is used by FFplay has some deficiencies, adding OpenGL output to FFplay should allow for better performance (and less bugs at least for some hardware / driver combinations). This could be a new application (glplay), but it is probably simpler to extend ffplay to use OpenGL. You can use code from MPlayer's OpenGL vo module which may be relicensed under the LGPL.

Libavfilter extension

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

  • This 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 and checking that the new integrated filter is not slower.
  • For more ideas read the GSoC 2011 libavfilter video proposal and trac libavfilter tickets.

Expected results: Write or port audio and video filters and possibly fix/extend libavfilter API and design.

Prerequisites: C coding skills, familiarity with git/source code control systems. Some background on DSP and image/sound processing techniques would be a bonus but is not strictly required.

Mentor: Stefano Sabatini (saste on IRC).