|
|
|
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.)
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.
|
|
|
|
|
Copyright © 2000 - Falcon Networking |
ISSN 1203-5696 |
Feb 2000 |