[Previous]

The State of DVD on OS/2
- by Robert Basler

[Next]
Robert Basler is the president of Aurora Systems, Inc.

I have been following with great interest the progress of the Linux DVD project for some time now. Their goal is to bring DVD movie playback to Linux. A few weeks back I checked in at www.linuxvideo.org and was surprised to see how far they have progressed.

I was so impressed in fact, that I decided to purchase a DVD drive for my own computer. After reading a number of reviews, I ended up purchasing a Creative Labs 5x IDE DVD drive and dxr-3 MPEG-2 decoder card which consistently was rated as having the best picture quality of available playback solutions. The bundle cost just $229, less than half that of a standalone player and $110 less than Creative Labs' new 6x bundle here in Canada. In Windows this setup allows me to play back DVD movies either on my monitor, or through my big-screen TV and Dolby Pro-Logic surround sound system.

Of DVD and Digital Video

Initially I was very skeptical of DVD video. Digital TV transmission has become very popular on cable networks here in Canada. Many networks are all digital up to the point where the cable goes to your house. The result in many cases is smeary video, color banding, especially in dark areas, out-of-synch audio, jerky frame rates, and worse.

When my brother-in-law purchased a DVD setup, it gave me the opportunity to review the picture and sound quality of DVD movies myself. I came to the conclusion that DVD's range from outstanding (Tomorrow Never Dies) with crisp, clear video, amazing positional audio effects and spectacular bass, to poor (Ronin) with jerky movement, color banding and a strange effect that causes portions of the screen to repeatedly "freeze then move." Overall the sharpness of the video (especially when connected via an S-Video cable as compared to standard RCA connections) and quality of the sound output sold me on DVD Video.

DVD on OS/2 Today

If you purchase a DVD drive yourself, you will find that it acts like a giant CD-ROM drive and OS/2 is quite happy to read unencrypted files from DVD's. As an example, below is a directory listing from the movie "The Fifth Element" (Copyright 1997 Columbia Pictures Industries, Inc.)




The volume label in drive H is DVD_VIDEO. The Volume Serial Number is 9906:001A. Directory of H:\VIDEO_TS

10-28-97 9:27a <DIR> 0 .
10-28-97 9:27a <DIR> 0 ..
10-28-97 9:27a 8192 0 VIDEO_TS.BUP
10-28-97 9:27a 8192 0 VIDEO_TS.IFO
10-28-97 9:27a 86016 0 VTS_01_0.BUP
10-28-97 9:27a 86016 0 VTS_01_0.IFO
10-28-97 9:27a 4345856 0 VTS_01_0.VOB
10-28-97 9:27a 1073739776 0 VTS_01_1.VOB
10-28-97 9:27a 1073739776 0 VTS_01_2.VOB
10-28-97 9:27a 1073739776 0 VTS_01_3.VOB
10-28-97 9:27a 1073739776 0 VTS_01_4.VOB
10-28-97 9:27a 74405888 0 VTS_01_5.VOB
12 file(s) 4373899 K bytes used
0 bytes free






IBM recently caused quite a stir in the user community when it released the UDF file system for OS/2 Warp Server for e-Business. UDF is the file system used on DVD's. This new file system brings to OS/2 support for standard DVD-ROM's plus the new DVD writable and rewritable technologies that are appearing.

From what I have been able to gather, UDF is a superset of the ISO9660 file system used on CD-ROM's. The big difference being that UDF allows individual files larger than 2G. Quite a few people were upset that there was no UDF support for Warp 4 (you need the Server subscription to Software Choice to get the UDF file system) but since Warp 4 does not include support for files larger than 2G (other than through direct disk access which bypasses the file system anyway) there isn't really much point to having UDF in Warp 4. One of the main new features in OS/2 WSeB was the JFS file system which introduced support for files greater than 2G through the new DosOpenL calls which take 64-bit long long integers as file positioning operands rather than the 32-bit integers used in the standard DosOpen calls in previous versions of OS/2.

Since most DVD disks today seem to limit individual file sizes to around 1G, UDF support isn't a priority if you want to play DVD movies on OS/2.

Unfortunately, there are serious licensing obstacles to be overcome before anyone will be able to release a DVD movie player for OS/2. From what I have read, it seems that much of DVD's intellectual property is managed by the DVD consortium. If you want to make and release a DVD player, you first have to apply for a license. The application fee is $10,000 and doesn't guarantee you a license. You then need to purchase a copy of the DVD specification for a further $5,000 so you can start development. You also need to license CSS, I didn't check into the fee for that. You probably then need to license the MPEG-2 video playback at $4 per copy sold and give some money to the people at Dolby Labs for AC-3 sound. I have heard that a typical DVD player developer pays about $50,000 in upfront fees. That is a lot more than the small OS/2 DVD market could support for any company that doesn't have deep pockets.

DVD Copy Protection and Legal Wrangling with the MPAA

If you have been reading Slashdot lately, the Linux Journal or even a newspaper, you will have heard of the Motion Picture Association of America's lawsuit with hundreds of websites in the United States. Their concern is over a program called DeCSS which allows its users to copy copy-protected movie files to their hard disk.

DVD movies include three forms of copy protection designed to protect movies on DVD from unauthorized duplication and distribution. First there is a drive-locking mechanism which requires that any device or software program authenticate itself to the drive before the drive will pass encrypted sectors on the disk to the device or software program for playback. The second form of protection is that some or all of the sectors on the DVD can be encrypted using a proprietary scheme called the Content Scrambling System (CSS.) This encryption system is designed with 400 keys, one of which is given to each DVD playback product developer, so that if any single key is compromised, future movie DVD's can be made to not work with devices using the compromised key. The last form of protection is the region lock required on all DVD hardware which prevents DVD drives from playing back DVD's with the wrong region code. The region codes are included to prevent the use for example of U.S. DVD disks in Europe and other regions where movies are usually released later and with much higher price tags and to prevent movies released in regions with lower price tags from making their way back into the U.S. market. With these three forms of protection, the system was reportedly promoted to movie studios as unbreakable.

Unfortunately for them, a group of programmers was able to figure out the scheme used in the first two methods by watching the data pass through a hardware device unencrypted. And by doing so they were able to get one of those 400 keys needed to authenticate with the drive and decrypt the contents of DVD movies. Once they had one key, due to what is described as a poor design in the CSS algorithm, they were able to guess 190 others before they got bored. A 16-year-old in Norway who helped with this project then wrote the DeCSS program.

This led to his and his father's arrest as well as a lawsuit in the United States where the MPAA took any website in the U.S. containing the CSS decryption code to court in order to get them to remove it. Unfortunately, the lawyers for the MPAA didn't request that the court records be sealed, and soon after, the source code they were attempting to suppress became available through the public online court records system.

By this time the cat was really out of the bag. You could get the DeCSS program and source code easily. It was posted on slashdot a number of times with captions like "is this what all the fuss is about?" and on websites around the world. One creative site even hid the source code in a GIF file that displayed the text "This GIF is illegal." You could view the source by opening the GIF file with a text editor.

While the MPAA is claiming piracy, the Linux community is claiming that all this effort is to allow interoperability for DVD's on Linux and will ultimately result in at least as many additional sales to Linux users as might be lost to home piracy. Today if you want to play DVD's on a computer, your only choices are Windows and Macintosh. The very nature of Linux and its open-source philosophy makes it very difficult for anyone to develop and release a product like a DVD player for linux since the DVD technology is subject to patent protection, copyright and non-disclosure agreements.

While DeCSS may allow you to retrieve encrypted video files from DVD disks, contrary to the MPAA's claims, it is not a practical tool for pirating DVD movies today. The decision that most home pirates make is a simple economic one. An audio CD costs $10-20. A blank CD-R costs under $2. That is economic incentive. A DVD movie costs roughly $20 less than a blank DVD-R or DVD-RW disk today, so where is the economic incentive to pirate? If anything, the biggest effect of DeCSS may be to keep the price of blank DVD media artificially inflated or kill the technology entirely, just as the music industry did to DAT tape.

It certainly isn't practical to store DVD movies on your computer's hard disk. A typical DVD movie is between 4 and 8G. I have roughly 100 purchased videos and DVD's. If I had some reason to move these movies to my computer, they would take 600G or so of disk space. With a single IDE hard disk's capacity topping out at 32G, I don't see such monstrous storage capacity coming to a home computer near you any time soon.

Another stated concern is that people will start transmitting movies in real-time over the internet. Quite frankly, I don't see the phone companies offering your average home user the 10Mb/s peak data rate internet service you would need to do this any time soon. With most current ADSL and Cable Modem services having traffic caps in the 1GB/month range, it would take four to eight months to transmit a single movie.

Professional pirates are a completely different story. One analogy I heard is that it is sort of like the difference between having a really good photocopier and having a secret decoder ring. CSS is the secret decoder ring, if you have it you can use it to copy the secrets from a DVD disk. But professional pirates have really good photocopiers (actually expensive DVD disk duplicators,) so they don't need a secret decoder ring as long as their photocopier is capable of making a perfect reproduction of the source DVD disk. So the only practical use for DeCSS is to copy single DVD titles to your hard disk for playback.

The Elements of the Linux DVD Player

Despite legal considerations, DVD player development on Linux is continuing rapidly. You can follow the ongoing development and discussion via the Livid-Dev mailing list which will deliver an interesting digest of DVD information to your mailbox each day. They have reverse engineered or obtained from public specifications all the key elements of the DVD movie standard. Using the elements below, it is possible to play encrypted VOB files with full video and sound on a fast Linux machine today. The pieces they have developed are available in source code form at http://www.linuxvideo.org and include:

An MPEG-2 codec capable of playing back most MPEG-2 video at full resolution using software only (provided you have a fast computer.)

A Dolby AC-3 decoder to play the soundtrack from the video files.

A basic IFO file parser. IFO files contain menus and control the playback of the DVD video which doesn't have to be in any sort of order in the Video object (VOB) files which contain the MPEG-2 video streams.

Code to read the directory structure and retrieve files from UDF formatted disks - sort of a poor man's UDF file system.

Subpicture decoding which displays subtitles and other special marks such as the "red pill" on "The Matrix." Interestingly enough, this portion of the DVD file format was reverse engineered in France by a couple of people over the course of a single week. Fortunately for them, reverse engineering is legal in certain situations in France.

Beginning hardware drivers for the Creative Labs dxr-2 MPEG-2 decoder card.

Initial support for YUV-RGB color conversion and image scaling for the Matrox G200 and G400. YUV to RGB color conversion is a very CPU intensive step in MPEG-2 video decoding, so hardware support for this greatly improves frame rates during playback.

The CSS-Authorization code which allows one to unlock and decrypt files on protected DVD's.

The beginnings of a overall playback program that brings all the disparate elements above together into one easy-to-use application.

The Possibility of Porting the Linux player to OS/2

If someone was looking to port the Linux DVD player code to OS/2, I would strongly recommend first consulting a lawyer. If it is legally all right to do such development, then they would want to look at modifying OS2CDROM.DMD. This driver manages CD-ROM drives in OS/2. What it lacks is support for a number of new IOCtl calls that support the three new data packets and several new structures used by ATAPI and SCSI DVD drives.

Fortunately, all the documentation you need to implement these IOCtl calls is available in public documents. You can see the Linux implementation in http://www.kernelnotes.org/pub/linuxhq/raw/kernel.org/2.3.x/drivers/cdrom/cdrom.c and http://www.kernelnotes.org/pub/linuxhq/raw/kernel.org/2.3.x/include/linux/cdrom.h. The packets cdrom.c generates are described in the voluminous "Mt. Fuji Commands for Multimedia Devices" specification at ftp://ftp.avc-pioneer.com/Mtfuji4/Spec/.

You can also get the source for the OS2CDROM.DMD driver on the OS/2 DDK site at http://service.boulder.ibm.com/ddk/.

An alternative to modifying OS2CDROM.DMD is to implement the IOCtl's through OS/2's ASPI interface as CDRecord/2 does to access CD-R burners which are otherwise unsupported in OS/2. For this you'll need the ASPI router driver which connects user applications to the system level ASPI interface. You would also be well-advised to obtain the source for CDRecord/2 to see how the thin interface layer it uses to OS/2's ASPI interface works.

Owners of ATAPI (IDE) DVD drives would also need a little piece of software that Daniela Engert (the maker of the DANIS506 IDE driver) is working on (she says it should be out soon.) Although originally designed to allow CDRecord/2 to work with ATAPI CD-R drives, it has the bonus feature of making ATAPI devices such as DVD drives look as if they are SCSI devices so they can be accessed through the ASPI interface as well.

Porting the actual DVD player software should be fairly straightforward, requiring a minimal amount of DIVE and DART programming, although the Linux Video folks figure it will be 9 months to a year before they have a finished player that supports important features like automatic synchronization between video and audio.

Wrap Up

There is a lot of interesting code available in the Linux world and a lot of very capable OS/2 programmers out there. It would be nice to see more of them get together. OS/2 has already benefitted greatly from Linux's success through projects like the GIMP, the new 3Dfx Glide drivers for OS/2 and the Odin Win32 project. I hope that some day after the legal concerns are worked out that there will be a quality DVD player for OS/2 so that I don't have to reboot to watch movies any more.

Any comments on this article? Post them in our feedback forum.

[Previous]
 [Index]
 [Feedback]
 [Next]
Copyright © 2000 - Falcon Networking
ISSN 1203-5696
Feb 2000