Microsoft DirectX 8.1 (C++) |
The RenderDvdVideoVolume method completes building a filter graph according to user specifications for playing a DVD-Video volume.
Syntax
HRESULT RenderDvdVideoVolume(
LPCWSTR lpcwszPathName,
DWORD dwFlags,
AM_DVD_RENDERSTATUS *pStatus
);
Parameters
lpcwszPathName
[in] Pointer to the path for the DVD-Video volume to play. Can be NULL.
dwFlags
[in] Member of the AM_DVD_GRAPH_FLAGS enumeration indicating the type of decoderhardware or software or a mix of hardware and software) to include in the filter graph. Maximum hardware decoding (AM_DVD_HWDEC_PREFER) is the default.
pStatus
[out] Pointer to the retrieved AM_DVD_RENDERSTATUS structure, which returns indication of any failure.
Return Values
Returns an HRESULT value that depends on the implementation of the interface. The DirectShow implementation return values include the following:
Return code | Description |
E_INVALIDARG | The dwFlags parameter specifies conflicting options, or pStatus is a bad pointer. |
S_FALSE | Graph has been built, but not perfectly. The pStatus parameter provides details of the problems. |
S_OK | Success. Playback graph built successfully, all streams rendered, and the DVD-Video volume was specified or found. |
VFW_E_DVD_DECNOTENOUGH | AM_DVD_HWDEC_ONLYor AM_DVD_SWDEC_ONLY was specified and there weren't enough hardware or software decoders to decode all streams. |
VFW_E_DVD_RENDERFAIL | Some basic error occurred in building the graph. Possibilities include the DVD Navigator filter or the video or audio renderer not instantiating, a trivial connection or pin enumeration failing, or none of the streams rendering. |
Remarks
The AM_DVD_RENDERSTATUS structure reflects failure codes for this method. Reasons for this method returning S_FALSE include the following:
This method builds the graph without any knowledge of the DVD-Video file or volume to play. The DVD-Video graph builder builds the graph even if lpcwszPathName is NULL or if the DVD Navigator filter does not find a default DVD-Video volume to play. An application can later specify the volume by using the IDvdControl::SetRoot method.
See Also