Today the Internet and its associated communications standards provide the ability to deliver nearly every type of media to any location that has enough bandwidth to service the request. What was once an advanced research project sponsored by the US Military has become over-run by the civilian uses of the medium. Developing both media servers and media clients for the wide range of media types is no small task. Looking at defined, commonly used media types for ordinary consumption, we can divide media into:
- Monaural Audio
- Stereo Audio
- Surround Sound Audio
- Psycho-acoustic Audio
- Directed Audio
- SSD cards
- 2-D Still Video
- 3-D Still Video
- Motion Video, and much more
The common formats for media to be served to a client include: JPG, PNG, TIFF, GIF, pdf, Flash, WMI, MPEG, WAV, LPCM, AIFF, MEG-4, and dozens more. Getting information from a server to a client is a fairly simple matter of directing the data to be sent to a specific IP address. Doing something useful with the data is the job of CODECs designed to deal with the specific data format. CODECs no matter how technically competent may be limited by the physical client hardware.
ADI Engineering, Inc. (1) offers an Intel® ATOM™-based board and a companion daughter card that provides hardware I/O for DVI - Up to 1080p, Component Analog - Up to 1035i, S-Video, Analog Composite, MIC In (RCA jack), Stereo line out (RCA jack), and S/PDIF optical digital. http://www.adiengineering.com/php-bin/ecomm4/productDisplay.php?category_id=25&product_id=91
CODECs can decode data into a real world signal – provided the real world signal can be played on the hardware. So, for the ADI media daughter card audio of many kinds including mono, stereo, and psycho-acoustic audio can be played. But, none of the surround sound technologies can be played because the daughter card lacks provisions to allow the playback.
To make the hardware playback, we require a CODEC for the specific media type being delivered to the client. A web site provides a large number of CODECs aimed at Microsoft’s (1) Windows operating system. While there are versions of Windows that are intended for embedded applications, some engineers prefer to employ Linux or other soft realtime operating systems. dbpoweramp.com offers a different selection of CODECs for a license fee, but they also are targeted for Windows. The Windows environment is a large, natural market which in turn encourages developers to make large collections of CODECs available. Finding the necessary CODEC for a non-Windows environment is no small task. SourceForge alone has over 2000 CODECs on their system.
So, if obtaining a full suite of necessary audio CODECs is a monumental chore, what can we do to simplify the task while maintaining realtime embedded control? One way is to use the TenAsys (2) InTime Operation System (OS) with its support for Microsoft (3) Windows. By using the TenAsys OS we get embedded control and Windows compatibility to bring a full suite of CODECs to our application.
XBMC adds an option to the supported operating systems. XBMC Media Center is a free cross-platform media player software and entertainment system application framework for Montavista’s Linux and Windows. XBMC is capable of playing back and streaming all popular video, audio, and picture formats.
There are several choices of how to make an IP-capable media player. But the application of the media is another story. Most people think of a media player in the context of a personal computer. In a blog on digital signage and kiosks <url>> we explored the use of media in signage and kiosks. Digital Signage is visually about playback of advertisements – sound and images. Those are the capabilities that we normally think of as media. Networking and systems management are the least visible pieces of media players, whether they are digital signs or our personal computer. But the infrastructure bits and pieces are every bit as important as the CODECs.
To make a general usage media player we need the infrastructure. Fortunately the server and client essential infrastructure services are part of Linux, Windows, and most other operating systems. Reliability and functionality are the critical elements of media players. A failure of the communication link is indistinguishable from a failure of the actual CODEC. A realtime failure of inadequate available processing power also looks and sounds like a failure of the CODEC. Neither of these failure mechanisms is identifiable to the observer as due to its real cause.
Media players like telephones must work first time, every time because we have come to expect it. For IP media players that means paying attention to Quality of Service (QoS), realtime control for soft realtime systems, and systematic loading of the media player.
How would you change your development methodology to deal with these performance issues relating to media players?
- ADI Engineering, Inc. is an Associate Member of the Intel Embedded Alliance
- TenAsys is an Affiliate Member of the Intel Embedded Alliance
- Microsoft Corporation is an Associate Member of the Intel Embedded Alliance
Roving Reporter (Intel Contractor)
Intel(r) Embedded Alliance