DVD_OPTION_FLAG Enumeration

 
Microsoft DirectShow 9.0

DVD_OPTION_FLAG Enumeration

The DVD_OPTION_FLAG enumeration type defines flags that control the behavior of the DVD Navigator Filter. To set any of these flags, call IDvdControl2::SetOption.

Syntax

  typedef enum {
    DVD_ResetOnStop               = 1,
    DVD_NotifyParentalLevelChange = 2,
    DVD_HMSF_TimeCodeEvents       = 3,
    DVD_AudioDuringFFwdRew        = 4,
    DVD_EnableNonblockingAPIs     = 5,
    DVD_CacheSizeInMB             = 6,
    DVD_EnablePortableBookmarks   = 7
} DVD_OPTION_FLAG;

Members

DVD_ResetOnStop

Specifies whether the DVD Navigator returns to the start of the disc when the graph stops.

If this flag is TRUE, the DVD Navigator enters the DVD Stop domain when the filter graph stops. When playback resumes, it starts at the beginning of the disc. This is the default behavior.

If this flag is FALSE, the DVD Navigator does not enter the DVD Stop domain when the filter graph stops. When the filter graph starts again, playback resumes from the point where it stopeed.

The default behavior is not always desirable, because the filter graph might be stopped unexpectedly. This can happen, for example, if the screen resolution changes, a screen saver starts, or the computer goes into suspended mode. In these situations, the user probably wants playback to restart from the same point. Typically, the application should set this flag to FALSE immediately before or after calling IMediaControl::Run. It should set the flag to TRUE before calling IMediaControl::Stop in resoponse to an explicit user to command to stop playback.

DVD_NotifyParentalLevelChange

Specifies whether the DVD Navigator notifies the application when the parental level changes on this disc.

If this flag is TRUE, if the DVD Navigator reaches a temporary parental management level command, it sends the application an EC_DVD_PARENTAL_LEVEL_CHANGE event. It blocks playback until it the application responds by calling IDvdControl2::AcceptParentalLevelChange.

If this flag is FALSE, when the DVD Navigator encounters a temporary parental management level command and the current parental level is too low, the Navigator automatically rejects the command and branches to whatever path the disc specifies. The Navigator sends an EC_DVD_PARENTAL_LEVEL_CHANGE event indicating the required level. The application can stop playback, put up a password dialog box, and restart playback so that it can succeed on the next attempt.

The default value for this flag is FALSE.

DVD_HMSF_TimeCodeEvents

Specifies the format for timecode information.

If this flag is TRUE, the DVD Navigator sends all timecode information using the  DVD_HMSF_TIMECODE structure.

If this flag is FALSE, the DVD Navigator sends timecode information using binary coded decimal (BCD) format, which is defined in the DVD_TIMECODE structure. The DVD_HMSF_TIMECODE format is easier to work with, but this flag defaults to FALSE for backward compatibility.

DVD_AudioDuringFFwdRew

Specifies the format for timecode information.

If this flag is TRUE, the DVD Navigator enables audio during fast forward and rewind, as long as the audio rate does not exceed the maximum rate of the audio decoder. If this flag is FALSE, the Navigator disables audio during fast forward and rewind. The default value of this flag is FALSE.

You can also enable audio during fast forward and rewind by creating the following key in the Windows registry:

DWORD HKLM\Software\Microsoft\DVDNavigator\AudioDuringFFwdRev = 1

This has the same effect as setting the DVD_AudioDuringFFwdRew flag to TRUE.

DVD_EnableNonblockingAPIs

Requires Windows XP Service Pack 2 or later.

If this flag is FALSE, certain DVD Navigator functions block until the DVD Navigator can complete the operation. This is the default behavior.

If this flag is TRUE, those functions no longer block. Instead, if the DVD Navigator cannot complete the operation immediately, the function returns VFW_E_DVD_NONBLOCKING. If the application sets this flag to TRUE, it must handle the VFW_E_DVD_NONBLOCKING error code. Usually the correct behavior is to poll the function until the function succeeds or returns some other error code.

This flag affects at least the following methods: IDvdControl2::ActivateAtPosition, IDvdControl2::SelectAtPosition, IDvdInfo2::GetCurrentLocation, IDvdInfo2::GetState. This list may be expanded in the future.

DVD_CacheSizeInMB

Requires Windows Vista or later.

Specifies how much data the DVD Navigator reads in advance, in MB. For this flag, the bEnable parameter of SetOption is interpreted as a DWORD value, rather than a Boolean.

If the application sets this flag to a large value (> 50 MB), the DVD drive may spin down after the initial pre-fetch, depending on the hardware.

You can also set the cache size by creating the following registry key: HKLM\Software\Microsoft\DVDNavigator\CacheSizeInMB. This registry key is intended for diagnostic purposes only. Applications should use the DVD_CacheSizeInMB flag, not the registry key.

DVD_EnablePortableBookmarks

Requires Windows Vista or later.

If this flag is FALSE, DVD bookmarks are useable only on the computer where they were created. This is the default behavior. If this flag is TRUE, a DVD bookmark can be used on another computer. See Saving and Restoring DvdState Objects.

Remarks

The following table lists the default values for the Boolean flags.

Flag Default value
DVD_ResetOnStop TRUE
DVD_NotifyParentalLevelChange FALSE
DVD_HMSF_TimeCodeEvents FALSE
DVD_AudioDuringFFwdRew FALSE
DVD_EnableNonblockingAPIs FALSE
DVD_EnablePortableBookmarks FALSE

Requirements

  Header: Dshow.h

See Also