Difference between revisions of "FFmpeg / Libav Summer Of Code"

From MultimediaWiki
Jump to navigation Jump to search
(AMR-NB Decoder: Done!)
m
 
(49 intermediate revisions by 12 users not shown)
Line 1: Line 1:
The [[FFmpeg]] project has been a participant in the [http://code.google.com/soc/ Google Summer of Code] program since 2006.
+
The [[FFmpeg]] project has been a participant in the [http://code.google.com/soc/ Google Summer of Code] program since 2006. In 2011, the [[Libav]] fork became part of the same Summer of Code effort.
  
* [[FFmpeg_Summer_Of_Code_2010|2010 project page]]
+
* [[FFmpeg_Summer_of_Code_2014|2014 FFmpeg Project page]]
* [[FFmpeg_Summer_Of_Code_2009|2009 project page]]
+
* [[FFmpeg_Summer_of_Code_2013|2013 FFmpeg Project page]]
 +
* [[Libav Summer Of Code 2013|2013 Libav project page]]
 +
* [[Libav Summer Of Code 2012|2012 Libav project page]]
 +
* [[FFmpeg_Summer_of_Code_2012|2012 FFmpeg Project page]]
 +
* [[FFmpeg / Libav Summer Of Code 2011|2011 project page]]
 +
* [[FFmpeg Summer Of Code 2010|2010 project page]]
 +
* [[FFmpeg Summer Of Code 2009|2009 project page]]
 
* [[FFmpeg Summer Of Code 2008|2008 project page]]
 
* [[FFmpeg Summer Of Code 2008|2008 project page]]
 
* [[FFmpeg Summer Of Code 2007|2007 project page]]
 
* [[FFmpeg Summer Of Code 2007|2007 project page]]
 
* [[FFmpeg Summer Of Code 2006|2006 project page]]
 
* [[FFmpeg Summer Of Code 2006|2006 project page]]
  
Each accepted project is developed in its own sandbox, separate from the main FFmpeg codebase. Naturally, the end goal of each of the accepted FFmpeg projects ought to be to have that code in shape for acceptance into the production codebase. This page tracks the status of each project and how well each student did.
+
Each accepted project is developed in its own sandbox, separate from the main FFmpeg / Libav codebase. Naturally, the end goal of each of the accepted projects ought to be to have that code in shape for acceptance into the production codebase. This page tracks the status of each project and how well each student did.
  
 
== 2006 Projects ==
 
== 2006 Projects ==
Line 65: Line 71:
 
* Mentor: [[User:Merbanan|Benjamin Larsson]] and Michael Niedermayer
 
* Mentor: [[User:Merbanan|Benjamin Larsson]] and Michael Niedermayer
 
* Student Status: <font color="#CCCC00">project not finished during SoC</font>
 
* Student Status: <font color="#CCCC00">project not finished during SoC</font>
* Code Status: <font color="#CCCC00">Parts have been committed to FFmpeg, but remain disabled.</font> Still in  development (albeit slowly) by [[User:Koorogi|Bobby Bingham]] and [[User:Vitor|Vitor]].  2009 SoC projects are underway to complete its integration and add audio support.
+
* Code Status: <font color="#00CC00">Accepted into the FFmpeg codebase.</font>
  
 
=== E-AC-3 Decoder ===
 
=== E-AC-3 Decoder ===
Line 77: Line 83:
 
* Mentor: [[User:pengvado|Loren Merritt]]
 
* Mentor: [[User:pengvado|Loren Merritt]]
 
* Student Status: <font color="#CC0000">disappeared, project unfinished</font>
 
* Student Status: <font color="#CC0000">disappeared, project unfinished</font>
* Code Status: <font color="#CCCC00">The code is working but not all features are supported.</font>
+
* Code Status: <font color="#CCCC00">The code is working but not all features are supported.</font>, <font color="#00CC00">committed to FFmpeg</font>.
  
 
=== Dirac Encoder and Decoder ===
 
=== Dirac Encoder and Decoder ===
Line 83: Line 89:
 
* Mentor: [[User:Lu_zero|Luca Barbato]]
 
* Mentor: [[User:Lu_zero|Luca Barbato]]
 
* Student Status: <font color="#CCCC00">project not finished during SoC</font>
 
* Student Status: <font color="#CCCC00">project not finished during SoC</font>
* Code Status: <font color="#CCCC00">The decoder is in good shape, the encoder still needs more work. Both need to be updated to the latest spec.</font>
+
* Code Status: <font color="#00CC00">Decoder committed to FFmpeg,</font><font color="#CCCC00"> the encoder still needs more work.</font>
  
 
=== TS Muxer ===
 
=== TS Muxer ===
Line 97: Line 103:
 
* Mentor: Kristian Jerpetjoen
 
* Mentor: Kristian Jerpetjoen
 
* Student Status: <font color="#00CC00">FFmpeg committer</font>
 
* Student Status: <font color="#00CC00">FFmpeg committer</font>
* Code Status: <font color="#CCCC00">in process</font> here: http://gitorious.org/projects/ffmpeg/repos/ffmpeg-mt
+
* Code Status: <font color="#00CC00">Accepted into the FFmpeg codebase.</font>
  
 
=== Nellymoser Encoder ===
 
=== Nellymoser Encoder ===
Line 121: Line 127:
 
* Mentor: [[User:Andoma|Andreas Öman]]
 
* Mentor: [[User:Andoma|Andreas Öman]]
 
* Student Status: <font color="#00CC00">FFmpeg committer</font>
 
* Student Status: <font color="#00CC00">FFmpeg committer</font>
* Code Status: <font color="#00CC00">merged</font> but still missing some features, [[User:AConverse|Alex Converse]] is working on finishing it.
+
* Code Status: <font color="#CCCC00">merged but terrible</font>
  
 
=== MLP/TrueHD encoder ===
 
=== MLP/TrueHD encoder ===
Line 127: Line 133:
 
* Mentor: [[User:Jruggle|Justin Ruggles]]
 
* Mentor: [[User:Jruggle|Justin Ruggles]]
 
* Student Status: <font color="#00CC00">FFmpeg committer</font>
 
* Student Status: <font color="#00CC00">FFmpeg committer</font>
* Code Status: <font color="#CCCC00">in process</font>, the first stage, getting the MLP decoder into shape and committed, has been accomplished.
+
* Code Status: <font color="#CC0000">MLP encoder never finished</font>, <font color="#00CC00">MLP decoder committed to FFmpeg</font>.
  
 
=== WMA Pro Decoder ===
 
=== WMA Pro Decoder ===
Line 194: Line 200:
 
* Student: Colin McQuillan
 
* Student: Colin McQuillan
 
* Mentor:  [[User:superdump|Robert Swain]]
 
* Mentor:  [[User:superdump|Robert Swain]]
* Student Status: <font color="#CCCC00">project almost finished during SoC</font>
+
* Student Status: <font color="#CCCC00">AMR-NB decoder almost finished during SoC</font>
* Code Status: <font color="#CC0000">Close to being merged</font>, picked up by [[User:Vitor|Vitor Sessak]] and Colin has also contributed some changes later. It is in the process of being <font color="#CCCC00">committed to FFmpeg</font>.
+
* Code Status: <font color="#00CC00">AMR-NB decoder accepted into the FFmpeg codebase</font>, <font color="#CC0000">AMR-NB encoder not started</font>.
 +
 
 +
== 2010 Projects ==
 +
 
 +
=== Improve RTSP/RTP layer ===
 +
* Student: Josh Allmann
 +
* Student Status: <font color="#00CC00">Active contributor</font>
 +
* Mentor: [[User:Lu_zero|Luca Barbato]], [[User:Mstorsjo|Martin Storsjö]]
 +
* Code Status: <font color="#00CC00">Fully integrated ([[Improve RTSP/RTP layer|checklist]])</font>
 +
 
 +
=== Writing an AMR-WB audio decoder ===
 +
* Student: Marcelo Povoa
 +
* Mentor: [[User:superdump|Robert Swain]]
 +
* Code Status: <font color="#00CC00">AMR-WB decoder accepted into the FFmpeg codebase</font>
 +
 
 +
=== MMS protocol Implementation ===
 +
* Student: [[User:spyfeng|Zhentan Feng]]
 +
* Mentor: [[User:Ronald S. Bultje|Ronald Bultje]]
 +
* Code Status: <font color="#00CC00">MMSH and MMST protocols accepted into FFmpeg codebase</font>, <font color="#CC0000">MMSU protocol not started</font>.
 +
 
 +
=== G.723.1 Decoder/Encoder ===
 +
* Student: Mohamed Naufal
 +
* Mentor: [[User:Merbanan|Benjamin Larsson]]
 +
* Code Status: <font color="#00CC00">Accepted into the FFmpeg codebase.</font>.
 +
 
 +
=== Libavfilter audio framework and filters ===
 +
* Student: S.N. Hemanth Meenakshisundaram
 +
* Mentor: Stefano Sabatini
 +
* Code Status: <font color="#AAAA00">partially integrated in the FFmpeg codebase</font>
 +
* Project Status: <font color="#00CC00">final evaluation passed</font>
 +
 
 +
=== MOD audio playback support ===
 +
* Student: Sebastian Vater
 +
* Mentor: Stefano Sabatini, Vitor Sessak
 +
* Code Status: <font color="#AAAA00">implemented in external repo, not integrated into FFmpeg codebase</font>
 +
* Project Status: <font color="#00CC00">final evaluation passed</font>
 +
 
 +
=== Accurate Seeking API ===
 +
* Student: Michael Chinen
 +
* Mentor: [[User:Bcoudurier|Baptiste Coudurier]]
 +
 
 +
== 2011 Projects (FFmpeg / Libav) ==
 +
 
 +
=== BSAC AAC Decoder ===
 +
* Student: Young Han Lee
 +
* Mentor: [[User:AConverse|Alex Converse]]
 +
* Code Status: [http://github.com/yhlee/bsac Started]
 +
 
 +
=== Playlist Support ===
 +
* Student: [[User:elenril|Anton Khirnov]]
 +
* Mentor: [[User:Lu_zero|Luca Barbato]]
 +
 
 +
=== Improve the audio filtering support in libavfilter ===
 +
* Student: Mina Nagy
 +
* Mentor: [[User:stefanosa|Stefano Sabatini]]
 +
* Code Status: <font color="#CCCC00">partially committed</font>
 +
* Project Status: <font color="#00CC00">final evaluation passed</font>
 +
 
 +
=== DTS Encoder ===
 +
* Student: Xiang Wang
 +
* Mentor: [[User:Merbanan|Benjamin Larsson]]
 +
* Project Status: <font color="#CC0000">failed</font>
 +
 
 +
=== VC-1 decoder missing features implementation ===
 +
* Student: Mashiat Sarker Shakkhar
 +
* Mentor: [[User:Ronald S. Bultje|Ronald Bultje]]
 +
* Code Status: [https://github.com/shahriman/libav WiP]
 +
 
 +
=== Complete WMVP/WVP2 decoder ===
 +
* Student: Alberto Delmás
 +
* Mentor: [[User:Kostya|Kostya Shishkov]]
 +
* Code Status: <font color="#00CC00">Accepted into the FFmpeg codebase.</font>
 +
 
 +
=== Implement Windows Television (WTV) muxer ===
 +
* Student: [[User:spyfeng|Zhentan Feng]]
 +
* Mentor: [[User:suxen_drol|Peter Ross]]
 +
* Code Status: <font color="#00CC00">Accepted into the FFmpeg codebase.</font>
 +
 
 +
=== Hardware Accelerated H264 Decoding on Android ===
 +
* Student: Mohamed Naufal
 +
* Mentor: [[User:Mstorsjo|Martin Storsjö]]
 +
* Code Status: <font color="#00CC00">Accepted into the FFmpeg codebase.</font>
 +
 
 +
=== Flash screen video (1)/2 ===
 +
* Student: [[User:DonDiego|Diego Biurrun]]
 +
* Mentor: [[User:Jumpyshoes|Daniel Kang]]
 +
* Project Status: <font color="#CC0000">failed</font>
 +
 
 +
=== Dirac Video Codec update ===
 +
* Student: Jordi Ortiz
 +
* Mentor: [[User:Lu_zero|Luca Barbato]]
 +
* Code Status: <font color="#00CC00">Decoder accepted into the FFmpeg codebase.</font>
 +
 
 +
== 2012 Projects (Libav) ==
 +
 
 +
=== HEVC/H.265 video decoder ===
 +
* Student: Guillaume Martres
 +
* Mentor: [[User:Shahriman|Mashiat Sarker Shakkhar]]
 +
* Code Status: [https://github.com/smarter/libav/tree/hevc <font color="#CCCC00">in progress</font>]
 +
 
 +
=== Opus decoder ===
 +
* Student: Andrew D'Addesio
 +
* Mentor: [[User:Jruggle|Justin Ruggles]]
 +
* Code Status: [https://github.com/Fatbag/libav <font color="#CCCC00">in progress</font>]
 +
 
 +
=== Rewrite avserver ===
 +
* Student: Jordi Ortiz
 +
* Mentor: [[User:Lu_zero|Luca Barbato]]
 +
* Code Status: <font color="#00CC00">Accepted into the Libav codebase.</font>
 +
 
 +
=== RTMP[E|S|T|TE] protocol implementation ===
 +
* Student: Samuel Pitoiset
 +
* Mentor: [[User:Mstorsjo|Martin Storsjö]]
 +
* Code Status: <font color="#00CC00">Accepted into the Libav codebase.</font>
 +
 
 +
=== Ut Video encoder ===
 +
* Student: Jan Ekström
 +
* Mentor: Derek Buitenhuis
 +
* Code Status: <font color="#00CC00">Accepted into the Libav codebase.</font>
  
 
[[Category:FFmpeg]]
 
[[Category:FFmpeg]]
 +
[[Category:Libav]]

Latest revision as of 13:48, 8 February 2014

The FFmpeg project has been a participant in the Google Summer of Code program since 2006. In 2011, the Libav fork became part of the same Summer of Code effort.

Each accepted project is developed in its own sandbox, separate from the main FFmpeg / Libav codebase. Naturally, the end goal of each of the accepted projects ought to be to have that code in shape for acceptance into the production codebase. This page tracks the status of each project and how well each student did.

Contents

2006 Projects

VC-1 Decoder

AMR-NB Decoder

  • Student: Robert Swain
  • Mentor: Benjamin Larsson
  • Student Status: FFmpeg committer. Project not finished during SoC.
  • Code Status: Continued in another Summer of Code task and accepted into the FFmpeg codebase.

AC-3 Decoder

AAC Decoder

Vorbis Encoder

  • Student: Mathew Philip
  • Mentor: Oded Shimon
  • Student Status: disappeared, project barely started
  • Code Status: Picked up by Oded Shimon and committed to FFmpeg.

2007 Projects

RealVideo 4 Decoder

  • Student: Kostya Shishkov
  • Mentor: Mike Melanson
  • Student Status: FFmpeg committer
  • Code Status: Accepted into the FFmpeg codebase. The project goal morphed to include a RealVideo 3 decoder since the 2 schemes are so similar.

QCELP Decoder

  • Student: Reynaldo Verdejo Pinochet
  • Mentor: Benjamin Larsson
  • Student Status: FFmpeg commiter. Produced a working decoder during SoC but the code didn't reach SVN before the end of the program.
  • Code Status: Picked up by Kenan Gillet and with the help of Reynaldo committed to FFmpeg. Some features still missing, though.

Matroska Muxer

  • Student: David Conrad
  • Mentor: Aurélien Jacobs
  • Student Status: FFmpeg committer
  • Code Status: Accepted into the FFmpeg codebase.

Video Filter API (AKA libavfilter)

  • Student: Bobby Bingham
  • Mentor: Benjamin Larsson and Michael Niedermayer
  • Student Status: project not finished during SoC
  • Code Status: Accepted into the FFmpeg codebase.

E-AC-3 Decoder

  • Student: Bartlomiej Wolowiec
  • Mentor: Justin Ruggles
  • Student Status: FFmpeg committer; code produced worked for most available samples, but there were some unimplemented features.
  • Code Status: Picked up by Justin Ruggles, finished and committed to FFmpeg.

JPEG 2000 Encoder and Decoder

  • Student: Kamil Nowosad
  • Mentor: Loren Merritt
  • Student Status: disappeared, project unfinished
  • Code Status: The code is working but not all features are supported., committed to FFmpeg.

Dirac Encoder and Decoder

  • Student: Marco Gerards
  • Mentor: Luca Barbato
  • Student Status: project not finished during SoC
  • Code Status: Decoder committed to FFmpeg, the encoder still needs more work.

TS Muxer

  • Student: Xiaohui Sun
  • Mentor: Baptiste Coudurier
  • Student Status: disappeared, project unfinished
  • Code Status: Changes requested during the review process for FFmpeg inclusion were never made.

2008 Projects

Generic frame-level multithreading support

  • Student: Alexander Strange
  • Mentor: Kristian Jerpetjoen
  • Student Status: FFmpeg committer
  • Code Status: Accepted into the FFmpeg codebase.

Nellymoser Encoder

  • Student: Bartlomiej Wolowiec
  • Mentor: Benjamin Larsson
  • Student Status: FFmpeg committer
  • Code Status: Accepted into the FFmpeg codebase.

ALAC Encoder

  • Student: Jai Menon
  • Mentor: Justin Ruggles
  • Student Status: FFmpeg committer
  • Code Status: Accepted into the FFmpeg codebase.

LGPL reimplementation of GPL sws_scale parts

  • Student: Keiji Costantini
  • Mentor: Luca Barbato
  • Student Status: project unfinished
  • Code Status: The GPL YUV table generator has since been implemented as LGPL by Kostya Shishkov.

AAC-LC Encoder

  • Student: Kostya
  • Mentor: Andreas Öman
  • Student Status: FFmpeg committer
  • Code Status: merged but terrible

MLP/TrueHD encoder

  • Student: Ramiro Polla
  • Mentor: Justin Ruggles
  • Student Status: FFmpeg committer
  • Code Status: MLP encoder never finished, MLP decoder committed to FFmpeg.

WMA Pro Decoder

  • Student: Sascha Sommer
  • Mentor: Benjamin Larsson
  • Student Status: FFmpeg committer
  • Code Status: Accepted into the FFmpeg codebase.

MXF Muxer

2009 Projects

RTMP Support (Flash streaming)

libswscale cleanup

S/PDIF muxer

  • Student: Bartlomiej Wolowiec
  • Mentor: Benjamin Larsson
  • Student Status: FFmpeg committer
  • Code Status: Accepted into the FFmpeg codebase.

Playlist/Concatenation Support for FFmpeg

JPEG2000 decoder and encoder

Implement the New Seeking API in Libavformat

MPEG-4 ALS decoder

  • Student: Thilo Borgmann
  • Mentor: Justin Ruggles
  • Student Status: FFmpeg committer
  • Code Status: Accepted into the FFmpeg codebase.

Implementation of AVFilter infrastructure and various audio filters

  • Student: Kevin Dubois
  • Mentor: Vitor Sessak
  • Student Status: project not finished during SoC
  • Code Status: unfinished

Finish AMR-NB decoder and write an encoder

  • Student: Colin McQuillan
  • Mentor: Robert Swain
  • Student Status: AMR-NB decoder almost finished during SoC
  • Code Status: AMR-NB decoder accepted into the FFmpeg codebase, AMR-NB encoder not started.

2010 Projects

Improve RTSP/RTP layer

Writing an AMR-WB audio decoder

  • Student: Marcelo Povoa
  • Mentor: Robert Swain
  • Code Status: AMR-WB decoder accepted into the FFmpeg codebase

MMS protocol Implementation

  • Student: Zhentan Feng
  • Mentor: Ronald Bultje
  • Code Status: MMSH and MMST protocols accepted into FFmpeg codebase, MMSU protocol not started.

G.723.1 Decoder/Encoder

  • Student: Mohamed Naufal
  • Mentor: Benjamin Larsson
  • Code Status: Accepted into the FFmpeg codebase..

Libavfilter audio framework and filters

  • Student: S.N. Hemanth Meenakshisundaram
  • Mentor: Stefano Sabatini
  • Code Status: partially integrated in the FFmpeg codebase
  • Project Status: final evaluation passed

MOD audio playback support

  • Student: Sebastian Vater
  • Mentor: Stefano Sabatini, Vitor Sessak
  • Code Status: implemented in external repo, not integrated into FFmpeg codebase
  • Project Status: final evaluation passed

Accurate Seeking API

2011 Projects (FFmpeg / Libav)

BSAC AAC Decoder

Playlist Support

Improve the audio filtering support in libavfilter

  • Student: Mina Nagy
  • Mentor: Stefano Sabatini
  • Code Status: partially committed
  • Project Status: final evaluation passed

DTS Encoder

VC-1 decoder missing features implementation

Complete WMVP/WVP2 decoder

  • Student: Alberto Delmás
  • Mentor: Kostya Shishkov
  • Code Status: Accepted into the FFmpeg codebase.

Implement Windows Television (WTV) muxer

Hardware Accelerated H264 Decoding on Android

  • Student: Mohamed Naufal
  • Mentor: Martin Storsjö
  • Code Status: Accepted into the FFmpeg codebase.

Flash screen video (1)/2

Dirac Video Codec update

  • Student: Jordi Ortiz
  • Mentor: Luca Barbato
  • Code Status: Decoder accepted into the FFmpeg codebase.

2012 Projects (Libav)

HEVC/H.265 video decoder

Opus decoder

Rewrite avserver

  • Student: Jordi Ortiz
  • Mentor: Luca Barbato
  • Code Status: Accepted into the Libav codebase.

RTMP[E|S|T|TE] protocol implementation

  • Student: Samuel Pitoiset
  • Mentor: Martin Storsjö
  • Code Status: Accepted into the Libav codebase.

Ut Video encoder

  • Student: Jan Ekström
  • Mentor: Derek Buitenhuis
  • Code Status: Accepted into the Libav codebase.