ZapMedia ZapStation/Harman Kardon DMC 100
Windows Media in an embedded Linux box? Yes, and DVD too. ZapMedia has packaged an extraordinarily (for an embedded system) ordinary PC, with an Intel Celeron CPU, 128MB of RAM, Ethernet, modem and a 30GB hard drive, as a home theater component. The first licensee for the ZapStation platform is Harman Kardon who exhibited their ZapMedia box, the DMC 100 Digital Media Center, at the Consumer Electronics Show in Las Vegas in January.
The DMC 100 offers the user a complete shopping list of current entertainment technology, including a DVD player, CD player with the ability to rip tracks to MP3 or Windows Media Audio on the hard drive, web browser, internet radio and player for MPEG video clips. On the TV side, it doesn't yet have TiVo-like TV-management functionality (though it could be added in software), but where shiny discs are concerned, it'll play just about anything you feed it: audio CDs, MP3 CDs, DVDs and Video CDs.
Michael Hirsch, senior software developer for ZapMedia, explained the choice of Linux on Intel as an integrated decision; they didn't choose OS and hardware separately or let the choice of one affect the choice of the other. ``Cost was certainly a factor--we are a startup, after all--but not the major factor,'' he said.
More important were issues such as stability, multitasking, scriptability and support. Linux is known for its reliability and that's very important in a consumer electronics device. We make lots of use of pipes, background processes, Java, Perl, Python, etc., in our code. We felt that all this was easiest to do with Linux.
Of course, ease of development is not to be sneezed at. The Linux programming model is extremely programmer-friendly. We find that we can implement new codecs in Linux as fast or faster than we can in other operating systems. And I probably don't have to tell you how nice it is to be able to look at, and change the source of, the OS if needed. Usually a simple e-mail to the code's author suffices, however.
The most CPU-intensive application for the ZapStation is encoding audio as MP3 or Windows Media format, and ZapMedia decided that performance on an embedded-class CPU would be unacceptably slow. So they went with the Celeron and Linux.
So how do you get Windows Media and DVD CCA-licensed DVD software on a Linux box? Simple--be an embedded systems vendor. Microsoft claims not to have seen any demand for Windows Media on desktop Linux boxes, but the Windows Media group at Microsoft is only too happy to strike a deal with the embedded Linux market. They package their library for Linux as a self-extracting .EXE file with documentation in Windows Help format, but it works.
And, Hirsch adds that Microsoft's support has been excellent, with the Windows Media group interested in getting their product ``into the living room, as opposed to the computer room''. The sound is good, so far, ``a little richer and fuller, in general'', than MP3.
The DVD-playing software is InterVideo's LinDVD, which is not vaporware, but embedded-vendor-only evaluation-ware (they bill their product as ``First legal Linux software DVD player'', which rankles those of us who know that the Digital Millennium Copyright Act is unconstitutional and that the free software players are just as legal as the proprietary ones, but I digress).
No RealPlayer, though. The vendor was too hard to deal with and wanted too much for licenses, while Microsoft had somebody on the next plane with a contract and a pen. (Memo to Real Networks staff: update your résumés. Real is the kind of proprietary-software innovators gone arrogant that Microsoft eats for breakfast.)
On the hardware side, a key place where the ZapStation is more demanding than an ordinary PC is in audio. Most PC sound chipsets don't sound good enough to drive a home stereo. ``Harman Kardon has helped us a lot in this area,'' Hirsch said. ``They are a hardware partner and have a great deal of expertise in audio quality. They helped us find some really nice chips that have 0.005% THD (Total Hardware Distribution). If you have a nice stereo and speakers, you'll really be able to hear the difference when you play a CD or DVD.''
ZapMedia has been using prerelease 2.4 kernels for months, and the kernel on the ZapStation includes the OSS sound drivers and ReiserFS. No problems with the kernel at all, and ReiserFS has worked out very well, filling the simple but necessary role of making sure that customers don't have to wait for their CD player to fsck. The other advantages of ReiserFS, which mostly have to do with better performance in directories with many small files, don't matter here. ZapMedia also found the 2.4 kernel to be more responsive for playing audio and video than earlier kernels.
The generous hardware means that there's plenty of space for memory hogs to wallow, so the box runs X with a user-interface in Java, running on the IBM Java VM. Everything except very performance-sensitive code such as encoding and decoding is done in Java. ZapMedia estimates that using Java for development has enabled them to get the work done in a third of the time that it would have taken using C++ because Java makes it easier to catch ``dumb bugs'' like trying to write over the end of an array.
The company has also developed a Java-based, in-house user interface design toolset, in which designers can work with graphics of the on-screen ``control panel'' and assign functions to controls. Working from an image file of an entire screen, the designer uses a ``skinbuilder'' tool to designate areas of the screen as controls and assign functions to them. The skinbuilder exports a theme file that can be loaded onto the box, so the graphics department can re-theme the ZapStation without touching a line of Java.
Because most of the software is in Java, the development environment inside ZapMedia is cross-platform with about half of the developers on Microsoft platforms and the rest running Linux. One was even running a Macintosh for a while. ``In general,'' Hirsch points out, ``Java debuggers on Linux are terrible. We have to jump through hoops to use them, and even then they often don't work. So we use lots of debugging prints.''
ZapMedia can do software upgrades over the Internet, and the ZapStation uses the Net for lots of other purposes too. There's a built-in web browser, software to get cover images and track names for the CD player, browser-based access to ZapMedia's on-line store, which is designed for easy navigation with the remote control as pointing device, and software to play Shoutcast and Windows Media ``Internet radio'' stations. VCR users will be happy to learn that the ZapStation sets its own time automatically over the Internet.
Not that this information matters to any of our readers, but all the software in the DMC 100 is on the hard drive, and the case appears to open with four Phillips screws.
Don Marti is the technical editor for Embedded Linux Journal. He can be reached at email@example.com.