[FFmpeg-devel] [RFC] Google Summer of Code 2014 application

Reynaldo H. Verdejo Pinochet r.verdejo at sisa.samsung.com
Thu Feb 13 02:41:15 CET 2014


Here's the current application text for review. Please ignore the new
thread I started by mistake ([FFmpeg-devel] GSoC mentoring application

1. Describe your organization

FFmpeg is the universal multimedia toolkit. A
complete, cross-platform solution 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 applications,
several major web browsers, and provides the
back-end for most on-line 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

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

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 year(s)?


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


7. What is the URL for your Ideas list?


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

ffmpeg-devel at ffmpeg.org

9. What is the main IRC channel for your

#ffmpeg-devel on irc.freenode.net

10. Who will be your backup organization

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

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

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

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 availability.

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

 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 mailing

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) here.


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 ask

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):


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

More information about the ffmpeg-devel mailing list