GSoC/GCI Archive
Google Code-in 2010 VideoLAN

x264: Add --device feature

completed by: George Stephanos

mentors: Jason Garrett-Glaser

x264, a project under the Videolan organizational umbrella, is one of the most popular video compression libraries, used worldwide for applications such as web video, television broadcast, and Blu-ray creation. It outclasses practically all commercial implementations both speed and compression-wise.

One proposed feature for x264 is a --device option, which would automatically select settings compatible with a given device (e.g. an iPod, an Xbox 360, etc).  This would be very useful both for application developers using x264 and for ordinary users who don't want to look up the relevant options for their device.

This task involves a small amount of coding along with a bit of research as to what these devices support.  We already have a good bit of information to get you started, along with some basic information on the design of how this feature would work.

A list of some example devices (you don't have to do them all!):

  • iPod
  • iPhone
  • iPhone 3GS
  • Xbox 360
  • Playstation 3
  • Blu-ray
  • AVCHD
  • AVC Intra
  • Playstation Portable
  • Popcorn Hour
  • WDTV
  • iPad

IMPORTANT: if you want to work on an x264 task, it is required that you come to #x264dev on irc://irc.freenode.net.  We will help answer your questions, guide you through whatever issues you have, and do code reviews.  In order to successfully complete an x264 task, the result must be of sufficiently high quality to be committed to the official x264 repository.   To ensure this, we will review your code and give you comments on how to improve it.  A task is only completed when these steps are done.

In short: do not take an x264 task, work on it without telling anyone, and then dump the code on us.  You'll waste your time, our time, and won't get credit for the task.