GSoC/GCI Archive
Google Code-in 2010 VideoLAN

x264: Automated regression test tool

completed by: rfw

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.

x264 has no standard regression test tool.  As a result, most of the developers rely on their own scripts. This task is to write an automated regression test tool.  This tool should be able to do at least the following:

  • Test any two revisions against each other.
  • Test a wide variety of x264 settings combinations. We can help you here by giving you some of the existing scripts.
  • Report the status of a revision: working (basic regression test passes), broken (basic regression test fails), crash, etc.
  • Report the difference between any two revisions (output differs, output is identical, which tests' output differs, etc).

The resulting tool should be a script written in Bash, Perl, Python, or a similar language.  It should be designed to run on Linux-like systems.  As x264 uses the git version control system, it should be designed to work with git.

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.