Monthly Archives: April 2007

Classical Audio

Trixter, digital P.I. and archaeologist, has been tracking down authors who long ago reverse engineered custom audio formats. He stalked down one Adrienne Cousins, the author of a program called Sputter, a multi-format audio file encoder/decoder… all in 16-bit x86 ASM! The source includes codecs for the Covox ADPCM formats mentioned recently. Thanks to Kostya, though, for independently reverse engineering and documenting the format.

Still, there might be some other gems in the Sputter source code. The author has granted permission to redistribute the source, and it is now in this directory: http://samples.mplayerhq.hu/A-codecs/CreativeADPCM8bit/. Also in that directory is a package called VEDIT.rar which contains an old EGA-based program that is able to encode VOC files to that arcane 2.6-bit ADPCM format that the Sound Blaster could encode and decode in hardware. If reversed engineered, it might describe how the 2.6-bit algorithm works.

GSoC Evaluation Tasks

If a student wanted to make the FFmpeg cut for the 2007 Google Summer of Code, they were required to complete a qualification task. They could select these tasks from a preset list on our GSoC Wiki page, or they could submit their own idea for approval. In completing a task, the student demonstrated that they:

  • were willing to commit some time over the 3-week app review period to prove themselves
  • could code C satisfactorily and with the same general style expected of the FFmpeg codebase
  • could wrap their head around the code base
  • could interact with the FFmpeg development mailing list
  • could accept feedback and revise the code until it was suitable for inclusion in the main code base

We got some good labor out of the qualifying students. Here are some of the things that FFmpeg can now do, thanks to the GSoC qualification tasks:

  • THP playback subsystem
  • Bethsoft VID playback subsystem
  • C93 playback subsystem
  • TIFF encoder, with LZW support
  • support for Theora in Matroska
  • SGI image subsystem ported to latest API
  • Targa encoder (thanks to Ben for the reminder)

SoC Students Announced

Great news of the Google Summer of Code front– FFmpeg put their project allotment of 5 to such good use last year that the overseers entrusted FFmpeg with a total of 8 project slots this year. These are the projects. The — ahem — lucky students include our returning SoC champ from the 2006 season, Kostya. New contenders are David Robert Conrad, Robert Bingham, Bartlomiej Wolowiec, Kamil Nowosad, Marco Gerards, Xiaohui Sun, and Reynaldo H. Verdejo Pinochet.

Exclusive Club

I had to alter the MultimediaWiki permissions to disallow new user registrations. There was a curious case of vandalism that was suspected to be a bot which would register a new 6-character username and use that username once in order to either delete a large swath of text from a random wiki page or delete all the plus (+) symbols from a random wiki page. The latter vandalism could be far more damaging if left unnoticed. There might be better access control mechanisms but I wanted to cut this nuisance off quickly. I finally upgraded to the latest MediaWiki verison in the 1.6 line and am looking into a 1.9 upgrade as well. There are probably better controls in the latest line, though they are likely sparsely documented.

Every time something like this happens I always find myself wondering what the originators of the wiki concept were thinking in the first place. A wide open website where anyone can edit anything. And we’re supposed to just trust everyone to behave. At least there are trade-offs built in to the software that can be adjusted, as I did today. It just stuns me to realize how fragile the model is, how much more damage someone could do if they wanted, and what kind of measures that Wikipedia must have to take to thwart this on a larger scale.