[FFmpeg-devel] GSoC mentoring application proposal

Reynaldo H. Verdejo Pinochet r.verdejo at sisa.samsung.com
Thu Feb 13 00:22:08 CET 2014


I have been helping out drafting the following application
for GSoC2014. This was all made in about 2 days and there's no
much time left as it has to be submitted tomorrow. This been said
though, I would appreciate any comments and improvement suggestions:

(sorry up front for the C&P mess if any):

1. Describe your organization

FFmpeg is the universal multimedia toolkit. A complete, cross-platform 
to record, convert, filter and stream audio and video. It includes 
libavcodec -
the leading audio/video codec library used by both companies and 
individuals for their
multimedia processing needs, either directly or through third party
wrappers and bindings

FFmpeg is possibly the most ubiquitous multimedia framework in the
world, it is used as a functional engine by many FLOSS multimedia 
several major web browsers, and provides the back-end for most online
transcoding services.

FFmpeg strives at being the universal multimedia tool, implementing
all possible multimedia formats (even the most obscure fringe formats),
and at being complete; providing fully fledged support for all
multimedia operations.

   2. Why is your organization applying to participate in Google Summer
      of Code 2014? What do you hope to gain by participating?

Past GSOCs and GCI have been a lot of fun, have led to some extraordinary
contributions from students and turned quite a few of them into long term
contributors. We hope to continue this trend from past summers.

As an added bonus, each new student is a challenge
to make our community better, more accessible and
prepared to be a good landing ground for
innovation and third party contribution.

   3. Has your organization participated in past Google Summer of Codes?


   4. Please summarize your involvement and the successes and challenges
      of your participation. Please also list your pass/fail rate for
      each year.

FFmpeg participated in the Google Summer of Code editions of 2006,
2007, 2008, 2009, 2010, and 2011.
During past GSoC editions, a large number of important modules have been 
written by students,
among these are
VC-1 (used in Blurays), AMR-NB and later WB (used in mobile phones),
our libavfilter framework, jpeg2000 encoding and decoding, MMS (used for 
streaming by Microsoft),
a dirac decoder, AAC d/encoder (used by iTunes, several Nintendo products,
the Playstation 3, Android, etc).

By the nature of modern multimedia, some of these
tasks were hard enough not to be finished in a single
summer round. They ended up being split over 2 or 3
periods, moving progressively ahead with each year.

A comprehensive list of all the past applications and tasks can be
found at:


   5. If your organization has not previously participated in Google
      Summer of Code, have you applied in the past? If so, for what


   6. What Open Source Initiative approved license(s) does your project


   7. What is the URL for your Ideas list?


   8. Mailing list email address, URL to sign-up page, etc.

ffmpeg-devel at ffmpeg.org

   9. What is the main IRC channel for your organization?

#ffmpeg-devel on irc.freenode.net

   10. Who will be your backup organization administrator?

Stefano Sabatini
saste in #ffmpeg-devel IRC (Freenode)

Reynaldo Verdejo
reynaldo in #ffmpeg-devel IRC (Freenode)

   11. How many potential mentors do you have for this year's program? 
What criteria did you use to select them?*

We have 16 potential mentors but this number will likely increase
before the relevant deadline.

Selection criteria:
Availability, project experience, qualification, mentoring/teaching
skills and past performance.

If mentors fail the criteria outlined above, they wont be accepted.
Also, they must be experts in the field the students
will work on. In fact, they are often the authors
or maintainers of at least some of the code the students'
assignments will deal with.

   12. What is your plan for dealing with disappearing students?

We will do our best to prevent this by not
accepting students who appear not to fit well
with the community, not be technically 'good enough' or
show early signs of poor communication. This is not about 'English as
a foreign language', many of our contributors and/or
maintainers fall in this category. This is about
being able to openly communicate problems and be
willing to discuss their possible solutions.

We require students to successfully finish a qualification task in the
area of the planned summer project and we require their active and 
regular participation
through some if not all our
communication channels. This is both during community bonding as well as 
during the summer.

The above outlined communication requirement is
used to keep track of the student's progress and
intervene in case problems appear. If this happens,
we will first try to ensure there is no issue from the mentoring side, 
that help is being promptly
provided to the students by their assigned
mentor or the community. While we clear out any possible
internal issue, we will try to contact the students
through all available means. If all these fail or they
are no longer making any progress, we would be forced to fail
them, and possibly re-evaluate the mentors ability for future years.

   13. What is your plan for dealing with disappearing mentors?

If a mentor disappears, we will first ensure that the backup mentor for the
task has taken over and that this caused no problems. If there is a 
problem still,
one of the admins will act as mentor. Also, the community on IRC and our
mailing lists is generally involved in the summer of code projects
and would help students with anything they need regardless of their mentor's

Second, we will try to find a new backup mentor if the assigned one 
cannot be
contacted or has truly disappeared, to maintain full redundancy for 
these cases.

 From past experience, no mentor has ever disappeared and in no
case had all mentors and backups been unavailable for a task to fall back
on the admins. Most of these are hypothetical measures we have never needed.

   14. What steps will you take to encourage students to interact with 
your project's community before and during the program?

We will try to maintain a friendly environment where the students
can freely participate and find support from the
community. This said, we often rely on personal communication between 
student and
mentor in order to make the student acquainted with the community's culture,
but this is usually handled at early stages of the student/community 

We require students to either be on-line on IRC on a more or less daily
basis or be active on other communication channels like our developer 

While the students complete their required qualification tasks,
they have to submit patches which are reviewed by the community and
amended if needed. This usually goes on for a few iterations. The
process, let us make a quick assessment on the students' proficiency
and where their technical or communication skills are lacking. The
community and their mentors are then expected to help them overcome
these limitations as long as this is possible within the allowed
time frame.

During the program, the students are expected to send questions and
patches to our mailing list. Not just interact privately with their
mentors, even though they might be ones answering most of their
students' inquires. This also ensures that if a mentor is unavailable,
someone else can promptly reply to the student. We want to make sure
they feel we care, because we do.

   15. Are you a new organization who has a Googler or other
       organization to vouch for you? If so, please list their name(s)


   16. Are you an established or larger organization who would like to
       vouch for a new organization applying this year? If so, please
       list their name(s) here.

We are not aware of any at this time.

   17. What will you do to encourage that your accepted students stick
       with the project after Google Summer of Code concludes?

We expect accepted students to be future contributors, hence, we
try to create an environment where they are encouraged to assume
responsibility over their contributions. We try to help them
become members of the community by their own right.

Before the program, we also try to select students who we believe are 
more likely
to become long term contributors. This is obviously a subjective bet,
but is something we try to keep in mind at every stage of the process.

We hope the students will stay around after the program termination on
the grounds that they will feel comfortable with the community
and will have a genuine interest in continuing their involvement with it.

   18. Is there anything else we should know or you'd like to tell us 
that doesn't fit anywhere else on the application?

If you have any questions or something is unclear, do not hesitate to 

Michael Niedermayer
Stefano Sabatini
Reynaldo H. Verdejo Pinochet

The following individuals and organizations have
expressed their support to our application to this

Samsung/Open Source Group

And from Google (as individuals):


Awaiting for your comments then


Reynaldo H. Verdejo Pinochet
Sr. Multimedia Engineer, Open Source Group
Samsung Research America - Silicon Valley

More information about the ffmpeg-devel mailing list