DVD Support Features in DirectShow

 
Microsoft DirectShow 9.0

DVD Support Features in DirectShow

The functionality of the DVD Navigator filter is exposed through two interfaces, IDvdControl2, which provides the "set" methods for the DVD Navigator, and IDvdInfo2, which provides the "get" methods. Scripting support for the DVD Navigator, including most new features, is provided through the MSWebDVD Microsoft® ActiveX® control and through the Video Control on Windows® XP.

The DVD Navigator supports the following features:

  • Karaoke support: You can now write a DVD-karaoke application using the DVD Navigator. (This requires a compatible decoder.)
  • Simplified access to DVD text information strings: The DVD Navigator now parses these strings and enables applications to easily enumerate, identify, and retrieve them.
  • Audio volume control through IBasicAudio
  • Support for customizing the DVD Navigator's behavior when the Stop command is issued: Applications can now instruct the DVD Navigator to either resume from the current location when restarting the filter graph, or start play from the beginning of the disc.
  • Digital Theater Systems (DTS) and Sony Dynamic Digital Sound (SDDS) audio support: Now DTS and SDDS audio streams are recognized by the DVD Navigator and passed to the audio decoder. (A third-party DTS-compatible or SDDS-compatible decoder is required to decode and play the audio.)
  • Improved support for parental level changes: The DVD Navigator now allows an application to accept, reject, or ignore parental level change commands from the disc.
  • Advanced options for managing the state of the DVD Navigator and synchronizing commands
  • Support for frame stepping, frame-accurate seeking, and reverse play: These new features require an updated video decoder that supports them.
  • The ability to save the current location in a title and return to it at any time.
  • Simplified support for time events in non-sequential PGC titles: For non-sequential PGC titles, the DVD Navigator now relays the raw time code information to the application.
  • A new, more convenient data structure for handling time code information: The DVD_HMSF_TIMECODE structure can be used in place of the binary coded decimal (BCD) format. DVD_HMSF_TIMECODE contains easily accessed members for hours, minutes, seconds, and frames, and can be cast to/from a ULONG.
  • The ability to control whether the filter graph flushes after a seek operation: The graph buffers can contain up to a few seconds of video at any given time. You can now instruct the graph to either finish playing the buffered video after a seek, or begin playing immediately at the new location.
  • The ability to set values in general parameter registers: An advanced feature for those familiar with the DVD specification who wish to implement advanced functionality.
  • The ability to generate numeric disc identifiers that are for all practical purposes unique: This is helpful in MSWebDVD applications where a disc needs to be associated with particular Web-based enhancements.

What Background Do I Need to Write a DVD Application?

All application developers should have a basic familiarity with the features provided by DVD technology such as parental management levels, multiple audio and subpicture streams, and angle blocks. DVD Basics briefly describes each of these features; more complete descriptions are available in third-party publications. You don't need to refer to the DVD specification unless you intend to implement advanced features beyond the Annex J command set.

C/C++ developers using the Microsoft® DirectShow® Component Object Model (COM) application programming interface (API) should be familiar with COM client programming techniques such as creating COM objects and obtaining and releasing COM interface pointers. You might also need a general knowledge of filter graph operations, because you might need to access and manipulate the graph directly.