Chapter 8

DVD-ROM AUTHORING

THE FORGOTTEN FORMAT

When this book was published in July 2001, there were less than 200 consumer DVD-ROM titles on the market. The disparity between the numbers of DVD-Video titles available, which exceeds 8,000, and the small number of DVD-ROM titles available is due to several factors. First the DVD-Forum has done an excellent job in promoting brand awareness of the DVD-Video format. In the United States nearly 75 percent of a recent survey of consumers were aware of DVD-Video and associated it with high quality home entertainment. The DVD Forum has done such an excellent job at building brand awareness for DVD-Video that many consumers who own DVD-ROM enabled personal computers think they can only use their DVD-ROM drive to play movies on their PC.

An equally important reason for the lack of DVD-ROM titles is the low level of demand from consumers for these products. Since all DVD-ROM drives can read standard CD-ROM, CD-R, CD-RW, and Audio-CD discs, many consumers are quite happy choosing from the thousands of titles already available in these formats. So even though there is a worldwide installed base of more than 20,000,000 DVD-ROM enabled personal computers, there is not enough consumer demand for DVD-ROM titles to entice title developers to jump into this market.

Also the development of titles has been hampered by some compatibility problems that prevent the universal playback of a DVD-ROM disc on all personal computer systems. DVD-ROM titles can be classified into three different types. Level 0 titles use the DVD disc to store vast amounts of data, but make no attempt to use any of the high quality multimedia data formats used in the DVD-Video specification. In general the only compatibility problems found in a Level 0 DVD-ROM title are related to the support by the operating system for the Micro-UDF file format. Level 1 DVD-ROM titles include high quality multimedia data in the MPEG-1 or MPEG-2 formats, but do not use the Video Object format used in DVD-Video discs. Most compatibility problems with Level 1 DVD-ROM discs are related to support by the operating system and third party drivers for playing back MPEG-1 or MPEG-2 video streams. Last, but not least, a Level 2 DVD-ROM disc uses high quality multimedia data stored in the DVD-Video VOB format, so each Level 2 disc includes both a DVD-Video zone and a DVD-ROM zone. Compatibility problems with Level 2 discs are generally related to the operating system’s support for the DVD-Video format, and the built in DVD-Video navigation decoder software on the system.

In general the recommended method of developing a DVD-ROM title is to use either the Level 0 or Level 2 approaches. Since a Level 0 DVD-ROM is not intended to deliver high quality multimedia data, and it is also not designed to work in a DVD-Video player, the vast majority of compatibility problems can be avoided entirely. I recommend that all Level 0 DVD-ROM discs include a small DVD-Video zone that will display a static screen listing the minimum system requirements for the title. Since most consumers don’t know there is a difference between a DVD-ROM and DVD-Video title, you will find that many try to put a DVD-ROM title into their DVD-Video player. If they get a “disc read error” or nothing happens at all, then they may return the title without ever knowing that it would work just fine had they put it in a DVD-ROM computer.

Using an autorun or autoload program on a DVD-ROM title is also something that I recommend. The vast majority of DVD-ROM personal computers include a DVD-Video navigation program, and many of these systems are configured to automatically launch the DVDVideo playback program as soon as they detect a disc with a DVD-Video zone in the DVDROM drive. If you include a small DVD-Video zone on your DVD-ROM disc, the viewer will see the minimum system requirements screen when the disc is inserted into the drive. If you use an autorun or autoload program on the DVD-ROM disc, this takes precedence over the automatic launching of the DVD-Video navigation program and your custom DVD-ROM application can start up automatically whenever the disc is inserted into the drive.

DVD-ROM for Microsoft Windows Systems

Developing Level 0 titles for Windows is almost identical to developing a CD-ROM title for Windows. You can use any application development tool or programming language and store any type of data you want on the disc. Essentially a Level 0 DVD-ROM is just a bigger CDROM. The only extra step required for publishing a Level 0 DVD-ROM is to format the disc image using the Micro-UDF file format. There are several off-the-shelf tools you can use to format the disc image in the Micro-UDF format, including products from Sonic, Gear, Prassi, Software Architects, and others. DVD replication facilities still require a DLT tape in DDP 2.0 format or a DVD-R in Cutting Master Format to replicate a Level 0 DVD-ROM disc, and most of these tools will also be able to generate the DLT tape or DVD-R you will need to send to the replication facility.

There are three basic methods to develop a Level 2 DVD-ROM title for Windows. Since the multimedia content stored on the disc is in the DVD-Video VOB format, your DVD-ROM application will need to access data stored in the DVD-Video zone of the disc. This can be done by

1.   using the Windows Media Control Interface (MCI) API,

2.   using the Windows DirectShow API, or

3.   using a third-party tool that uses either the MCI or DirectShow APIs.

MCI

In July of 1997 Intel and the Software Publisher’s Association (SPA) held a DVD-ROM test event in San Jose, CA. Approximately 25 different DVD-ROM hardware and software vendors were invited to bring prototype versions of their systems, and about 40 title developers were asked to bring beta copies of their DVD-ROM titles. Over a two-day period each DVDROM title was tested on each DVD-ROM enabled computer system. The results of the testing effort indicated that there were a number of compatibility problems with DVD-ROM. While subsequent DVD-ROM testing events sponsored by Intel, Microsoft, and others has shown consistent improvement in the quality and functionality of DVD-ROM titles, there are some nagging compatibility issues that can still cause problems, particularly with applications that use the Windows MCI API (application program interface).

In the fall of 1997 the SPA formed a Technical Working Group (TWG) to investigate the DVD-ROM Compatibility problems and to develop recommendations to ensure that any DVD-ROM title would work correctly on all DVD-ROM enabled personal computer systems. The SPA DVD-ROM Interactive Media Format TWG looked at Windows applications, since the vast majority of title developers were targeting their products for standard Windows platforms. Most of the compatibility problems were caused by differences in the way that standard MCI drivers had been implemented by each DVD-ROM vendor. The working group recommended a standard set of MCI calls that should be supported by all DVD-ROM hardware and software vendors. DVD title developers should use these standard calls to ensure that their titles will work on all Windows platforms. Since time was of the essence, it was decided to base the SPA recommendation on a subset of the OM-1 MCI Recommendations for MPEG-1 issued in 1995.

The SPA DVD-ROM working group recommended the following standard MCI calls be supported by all DVD-ROM vendors, and be used in the development of all Windows DVDROM titles. The use of the MCI API is not recommended for Windows 98, 2000, or ME applications, as Microsoft has developed the DirectShow API for these operating systems.

Table 8.1 Recommended MCI Calls for DVD-ROM Titles

image

image

Development of DVD-ROM titles under Windows 95 typically requires making several different MCI calls, particularly if the title includes any multimedia content. Microsoft has made it clear that they do not intend to provide MCI support in future versions of Windows. Figure 8.1 shows the standard playback environment for DVD-ROM titles using the MCI API. As you can see from Figure 8.1, Level 2 DVD-ROM titles will make calls to the DirectX and DirectSound drivers through the MCI API. These calls will allow the DVD-ROM title to open a VOB file, play a VOB file, check status, etc. It should be noted that none of the advanced features of the DVD-Video specification, such as multiple video angles, subpicture streams, or multiple audio tracks can be controlled through the MCI API. Thus Level 2 DVDROM titles that use MCI calls can use only a small subset of the content stored on a DVDVideo disc.

Developing Level 2 DVD-ROM titles using the MCI API usually requires writing custom application software in either Visual Basic or C++. Either language can be used to make the required MCI calls. Since the MCI calls used to access content stored on the DVD-Video portion of the disc are extensions to the standard MCI calls supported by Microsoft, you may find that off-the-shelf development tools such as Macromedia Director, AuthorWare, and others can’t be used for Level 2 DVD-ROM development efforts.

Another potential problem with developing Level 2 DVD-ROM applications is that while many DVD decoder drivers support the extended MCI API, several drivers have bugs. For example, there are several early software decoders that have memory leaks in their DVD drivers. A memory leak occurs when a program fails to release all of the system memory resources that it uses. Over a long period of time a driver with a memory leak will use up all of the available system memory, and the system can lock up as a result. Level 2 DVD-ROM application programs that can run for long periods of time, such as a screen saver, may experience poor performance and system lock ups when using older software DVD decoders that use the MCI API.

DirectShow

DirectShow is a streaming media architecture for Windows that provides high-quality capture and playback of multimedia streams. It supports a wide variety of formats, including Advanced Streaming Format (ASF), Motion Picture Experts Group (MPEG), Audio-Video Interleaved (AVI), MPEG Audio Layer-3 (MP3), and WAV files. It automatically detects and uses video and audio acceleration hardware when available, but also supports systems without acceleration hardware. DirectShow does not include an embedded MPEG-2 video decoder or Dolby Digital audio decoder, so for DVD applications, third-party MPEG-2 and AC-3 decoders are required for proper operation. DirectShow was developed for Windows 98, is supported on Windows 2000 and Windows ME, and can be installed on Windows 95 systems. DirectShow will not work on Windows NT platforms. Figure 8.2 provides a detailed block diagram of the Microsoft DirectShow environment.

image

Figure 8.1  MCI Interface Block Diagram

image

Tips, Tricks & Techniques

I highly recommend that you develop Level 2 DVD-ROM applications using Microsoft DirectShow. However, you may need to develop your application so that they support the MCI API, as well. During the early days of DVD-ROM consumers bought a large number of hardware DVD decoder boards that did not include support for DirectShow. Even today the Creative Labs Encore DVD board does not include DirectShow drivers for either Windows 95 or Windows 98. If part of your market includes legacy systems, or personal computers with Creative Labs Encore boards, you may need to develop an MCI version of your application software to support these platforms.

image

Figure 8.2  Microsoft DirectShow Environment Block Diagram

Examples of the types of applications you can write with DirectShow include DVD players, video-editing applications, AVI to ASF converters, MP3 players, and digital video capture applications. DirectShow is based on the component object model (COM), so to write a DirectShow application you must understand COM client programming. For most applications, you do not need to implement your own COM objects. DirectShow provides the components you need.

DirectShow is designed to work with a wide variety of multimedia data types. Its main design goal is to simplify the task of creating multimedia applications on the Windows platform by isolating applications from the complexities of data transports, hardware differences, and synchronization issues.

DirectShow uses DirectDraw and DirectSound to render data efficiently to the personal computer’s graphics and sound cards, respectively. Synchronization is achieved by encapsulating the multimedia data in time-stamped media samples. To handle a variety of media sources, formats, and hardware devices, DirectShow uses a modular architecture in which operating system components called filters can be mixed and matched to provide support for many different scenarios.

DirectShow includes a DVD Navigator Filter that supports playback of content stored on a DVD-Video disc. The DVD Navigator filter is the source filter for a DVD-Video playback filter graph. It opens all necessary files in a DVD-Video volume, navigates through the content stored on a DVD-Video disc, and parses the resulting MPEG-2 program stream, splitting the stream into three outputs (video, audio, and subpicture).

The DVD Navigator filter is used to control the IDvdControl2 and IDvdInfo2 interfaces, enabling a DVD playback application to control DVD-Video playback. IDvdControl2 provides the full functionality required by the DVD-Video specification, as well as methods for playback, menu navigation, and parental control. IDvdInfo2, which is a companion to IDvdControl2, groups the DVD Navigator’s get methods and IDvdControl2 groups the set methods. Together they provide DVD navigation and playback functionality beyond the DVD-Video specification.

The DVD Navigator includes all the capabilities found on full-featured stand-alone DVD players, plus additional capabilities specific to playing DVDs on personal computers. Using the DVD Navigator, C++, and scripting, developers can create full-featured DVD applications without referring to the DVD specification. The DVD Navigator, in coordination with the decoder filters, also handles regional management and copyright protection (CSS and Macro-vision), isolating application developers from these details.

The DVD Navigator filter works across an entire DVD-Video “volume,” which consists of the files in the VIDEO_TS directory. Unlike most DirectShow source filters that work with individual streams or files, the DVD Navigator uses the DVD-Video structure of titles, chapters, and time codes. C++ developers control the DVD Navigator directly through COM interfaces it exposes. Developers using a scripting language or Microsoft Visual Basic control the DVD Navigator indirectly through the MSWebDVD ActiveX control.

image

Figure 8.3  DirectShow DVD Filter Graph

When writing a DVD-ROM application for Windows, you develop the code for the user interface, and call the Microsoft DirectShow API to issue all DVD playback and navigation commands. This involves calling the COM CoCreateInstance method on the DVDGraph-Builder object, which does the actual work of creating the DVD filter graph. After the filter graph is created, you can obtain pointers to the IDvdControl2 and IDvdInfo2 interfaces of the DVD Navigator source filter. After you have the interface pointers, you can connect your user interface to the DVD navigation commands. This basic process is quite simple and is similar to the creation of other types of DirectShow applications. Figure 8.3 shows a typical DVD filter graph.

The DVD Navigator is the first filter in a DVD playback filter graph; it performs several tasks.

•   Reads the navigation and video data from the disc.

•   Demultiplexes the video, audio, and subpicture data into separate streams.

•   Pumps the streams into the graph for further processing and eventual rendering.

•   Informs your application of DVD-related events.

For the audio stream, the DVD Navigator connects to an audio decoder, which connects to the default audio renderer. On the video and subpicture streams, the downstream filters are the third-party video decoder, the overlay mixer, and the video renderer. Your custom application communicates with and controls the DVD Navigator through the custom interfaces that the DVD Navigator exposes: IDvdControl2 (the set methods) and IDvdInfo2 (the get methods). It also must communicate with the filter graph manager to stop, start, and otherwise control the graph.

image

Tips, Tricks & Techniques

DVD producers and developers who need to create custom application programs for Windows OS platforms should use the DirectShow API rather than the older MCI API. Microsoft no longer supports the MCI API, and it is only included as legacy support in the newer Microsoft operating systems, such as Windows 2000 and Windows ME.

image

Real World Example

StarGaze includes a Level 2 DVD-ROM application in addition to its DVD-Video and WebDVD features. A Windows screen saver program, which supports the Windows 95, 98, 98SE, NT 4, 2000, and ME operating systems, is included on the StarGaze disc. The screen saver software supports both the MCI and DirectShow APIs. MCI support was included so that legacy DVD-ROM systems that do not support DirectShow could still use the StarGaze screen saver program. A custom InstallShield setup program was developed to install the screensaver code and the screen saver images onto the hard drive so that the program can operate even when the StarGaze disc is not in the DVD-ROM drive. You can install the StarGaze screensaver program on your Windows system by running the setup.exe program that is located in the root directory of the StarGaze disc.

Third-Party Development Tools

An alternative to using Visual Basic or C++ with either the MCI or DirectShow APIs is to use a third-party tool, such as Macromedia Director. While Director does not currently support direct access to content stored in DVD-Video VOB files, there are several Director Xtras that can be used for this. The two most popular Director Xtras for DVD are MPEGXtra from Tabulerio Producoes and OnStageDVD from Visible Light. Contact information for both companies is provided in Chapter 10.

The Tabulerio Producoes MPEGXtra extension lets you incorporate videos directly into your Director cast, and adds several new scripting commands that allow precise control of MPEG videos. MPEGXtra is designed for use on Windows 95, NT, and 98 systems.

The Visible Light OnStage DVD Xtra extension includes a number of configurable options, and supports full screen or windowed playback. OnStageDVD is designed for use on Windows NT, 95, and 98 systems, and provides Lingo control of DVD-Video playback content as well as some WebDVD feature support.

DVD-ROM Development for Apple Systems

Developing DVD-ROM titles for Apple Systems is a bit more difficult than developing for Windows systems. It is possible to develop a Level 0 DVD-ROM application for an Apple system, since this does not require access to any content in the DVD-Video zone of the disc. You can use traditional CD-ROM application development tools on the Mac, such as Director or FileMaker, to create the Level 0 application. Once your application is complete you will need to create a DVD-ROM disc image in the Micro-UDF file format. There are several tools you can use to do this, including Roxio Toast Titanium and most Mac-based DVDVideo authoring tools from Sonic Solutions.

Developing a Level 2 DVD-ROM application for the Mac is very difficult. Apple has not released an API that provides access to content stored on a DVD-Video disc through a custom application program. It is possible to use simple scripting commands from a custom application program to launch the Apple DVD-Video navigator program and instruct it to perform some basic playback functions. This scripting method does not allow you to develop an integrated application program in which video or audio content from the DVD-Video zone of the disc are seamlessly combined with content generated by the application program. Using this scripting technique the Apple DVD-Video navigator will launch in its own window and the user will be able to use the navigator controls outside of your custom application program. Apple has not announced a target date for supporting access to DVD-Video content from custom application programs on any of the operating systems. If Apple does decide to provide support for Level 2 DVD-ROM software developers, it will most likely come in a future release of QuickTime.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset