Three Case Studies in Community-Oriented, Open-Source Software Development
What do a Japanese PDA, a video capture card and a multimedia appliance that connects your television to the network have in common? They are all examples of specialized Linux-based devices with thriving subcultures surrounding them—communities of enthusiasts toiling nights and weekends obsessively coercing their toys into working exactly the way they want them to work. Of course, 15 years ago, Linux itself had a similar beginning.
“Hello everybody out there using minix—I'm doing a (free) operating system (just a hobby, won't be big and professional like gnu) for 386(486) AT clones.” Not satisfied with the manufacturer's choices, Linus Torvalds wanted to use his Intel-based computer on his terms. He started hacking, and then he used these simple words to reach out to the world, announcing his achievement and attracting helpers. Does this spirit live on today?
July 4, 2005. Eerily, once again, the IVTV developers have made a release right as I picked up the project. Maybe I should wait it out a bit until things settle down. Their progress fluctuates—first the audio isn't right, then the video looks bad. The install script sure is easier this time—no more mysterious sequence of modprobes to get things working. The main guy working on this doesn't even have the same model as I do—how does he do it?
So continues one of my typical holiday or weekend ventures into a randomly discovered Linux project. In this article, in addition to profiling a few specific Linux-friendly products and project accomplishments, I also provide a brief survey of some Open Source communities encompassing them, with a focus on one prominent person in each community.
First, I start with a Microsoft Windows product—the prefix and suffix in its model number both describe its target market. The WinTv PVR-150MCE by Hauppauge is a TV tuner and a video capture card. Directly storing broadcast-quality video is impractical with current technology. Even if your hard drive's throughput is sufficient to receive the data, your available storage space will be quickly consumed. MPEG-2 compression, the same as used by the DVD standard, eases the requirements considerably, using less storage space and decreasing the streaming rate to a more manageable 6Mbps. Moderate compromises in quality reduces the storage requirements to 2G or less per hour of video. Compressing video is computationally intensive and taxes the fastest processors, but the PVR-150MCE gets around this by using its MPEG-2 encoder hardware, relieving your system from the time consuming chore of compressing data. So, you can record compressed video in real time using modest hardware. It costs less than $100 US, and if you don't already know why I am describing a Windows Media Center Edition (MCE) product in a magazine about Linux, you will after reading the next paragraph.
IVTV is a project that allows Conexant-based video capture devices to run under Linux. The PVR-150MCE is but one of several in a family of cards based on the Conexant chipset. Hauppauge makes many of these cards, but several other manufacturers produce cards based on Conexant. Around 12 different cards are expected to work now or in a future version of the driver. By the way, the name IVTV is pronounced “Ivy TV”. It is not an acronym, but was inspired by an early Conexant model number, iTVC15. Other manufacturers who make compatible cards include Yuan, Avermedia and Adaptec. Please see the IVTV Web site (see the on-line Resources) for details. Although they have the same core chipset, these cards are by no means identical, and supporting all the subtle permutations is easier said than done. In extreme cases, you might even have to travel across the Atlantic to experience the differences.
In addition to several different models of these cards, both the European PAL and the US NTSC video standards are supported. Testing both of these signals is especially tricky, because a given developer has easy access only to one of these sources of video. This group has coordinated internationally to provide good support for both. Is this just the matter of flipping a bit somewhere in the source? Or are they exploiting the fact that light travels around the globe in microseconds and that a developer in Europe is going to bed around the time his US counterpart is awakening? A Netherlands-based developer's request for an NTSC modulator leads me to believe the latter.
The lead developer for this project, Chris, welcomes donations:
I have been maintaining the IVTV driver since around December 2003, keeping all patches merged and also have reverse engineered the DMA, and redesigned the internal parts of the driver to allow growth and stability. I have devoted many hours to IVTV, often more than 40 hours a week in the past, and hope to continue work like this into the future. I have recently divorced, have a need for income since most is taken now, and would appreciate any donations to help and hopefully my work on the driver helps you too. I have a lot of fun working on the driver and am glad to be able to provide this service to people in getting the MPEG-2 encoding chip working the best it possibly can on these WinTV/etc. pci cards.