Category Archives: Open Source Multimedia

News regarding open source multimedia projects.

FFmpeg Hazing Ritual

The pilot for an American TV show called Greek was a free download on Apple iTunes recently. I’m just as eager as the next open source software developer to brainlessly give a try to free stuff, so I checked it out. The show centers around some participants in the Greek-lettered fraternity and sorority system present on many college campuses. Hazing plays a role.


FFmpeg transliterated to Greek alphabet

This caused me to consider FFmpeg and the Google Summer of Code in the context of fraternities. GSoC is a college activity, like the Greek system. Participation might help your career along, post-school (an alleged rationale for joining a fraternity). And if you want to be initiated into the FFmpeg brotherhood, you are required to submit to a ritual known as the qualification task.

This would be a good time to mention that FFmpeg has been accepted into the GSoC for a third year in a row. Students who have any interest in working on a summer FFmpeg project on Google’s dime need to make their interest known on the ffmpeg-devel list and publicly claim a qualification hazing ritual.

Also, it seems that the x264 project wants in on some of the GSoC action, as indicated by their new adjunct Wiki page. This only creates ever more exciting opportunities. Wouldn’t you like to be a part?

Summer of Code 2008

Google has announced their Summer of Code, 2008 edition. The mentor organization application process begins on Monday, March 3 and I will be right there, ready with our group’s app. My FFmpeg cohorts and myself have been busily assembling a new Wiki page detailing what prospective students might do for the project, should FFmpeg be accepted as a mentoring organization for a third year. Like last year, we will be enforcing the requirement that students must successfully complete a qualification task in order to be considered for a project. I feel like I live in sort of a bubble these days, but I am becoming increasingly aware that straight-up, performance-minded C programming seems to be a dying art and we can’t necessarily count of students knowing the language already when they apply for the project.


Google Code logo

Of course, you are free to add to the list, either in the 2nd tier proposals section or the qualification tasks. But don’t bother adding anything under the 1st tier proposals unless you are willing to mentor the project. Anyone can toss out any idea. But we need project ideas that can be plausibly completed by a talented student over the course of a summer, and we need mentors who will commit. As for qualification tasks, remember that these are bite-sized pieces of work that would ideally take a seasoned FFmpeg developer a few hours at most to complete. If you create a new qualification task, please put some detail into it. Look at it from the perspective of a new student who may not be up to speed on FFmpeg. A qualification task of “fix XYZ thing” is quite bewildering. Expound just a little bit. Remember to link to other pages within the Wiki.

I logged into my SoC mentor dashboard for the first time in a long time. It claimed that I had not completed my final program survey from last year, even though I’m quite certain that I did (I wonder if that’s why I never saw my mentor money?). Anyway, one of the questions:

What advice would you give to future would-be Summer of Code mentoring organizations? (required)

I don’t remember my answer last time, but this is the most honest answer that came to mind this time: “Don’t try to compete with us for prize students. FFmpeg is a sexier project — an alpha project, if you will — and you won’t beat us.”

Catchy Name

I’ve been working hard on the FFmpeg automated build/test server in the last few weeks. I’m planning new test configurations, plotting the specs for hundreds of different automated tests, and stabilizing the general infrastructure. But I’m missing something key– I don’t want to keep having to refer to it as the FFmpeg automated build/test server. I need a catchy name for it.


Baby Names Book Cover

Any ideas? I realize that free software types are not the most creative lot, but it’s worth throwing the question out there anyway.

Finally Building

At long last, I have a reasonable — and much improved — autobuild/test infrastructure running for FFmpeg. Visit it at builds.multimedia.cx. It’s a bit sparse right now as it only covers builds for 2 platforms (x86_32 and PowerPC, both on Linux) and only a handful of tests, which are actually pseudo-tests, only logging the filesizes of the ‘ffmpeg’, ‘ffplay’, and ‘ffserver’ binaries. Also, you will notice that the testbed makes an effort to keep up with recent SVN builds of gcc.

I’m hopeful for this new infrastructure; the sky’s the proverbial limit. In the short term, I will be adding x86_64/Linux builds. Solaris/Sparc and Mac OS X builds might be on the way as well. My other high priority right now is to create an administrative web form that will enable me (and hopefully some co-admins) to add and edit test specifications easily. It’s not ergonomic to do this through the MySQL console. Here are the top test ideas so far:

  • All of those ‘make test’ regression tests– break those up into individual tests
  • Type ‘ffmpeg -formats’– set up tests for each and every one of those individual modules; use the libavformat/framecrcenc module here
  • Fetch collections of conformance vectors for various MPEG standards and run through them

The comments section is open for suggestions. Be ambitious. However, here’s an algorithmic challenge if you’re up to it. Look at the stderr output from this build of gcc 2.95.3/x86_32 that failed. It would be useful to highlight the errors. How do I search the text and find the error so I can highlight them, and also insert HTML anchor links for easy skipping? The best I can think to do is searching for ‘***’ to indicate errors and search back somehow.