|Microsoft DirectX 9.0|
In previous versions of DirectX, application developers didn't need to be concerned with the details of the DVD filter graph because there was only one video renderer used in all casesthe Overlay Mixer. In Windows XP, the Video Mixing Renderer 7 was introduced, and in DirectX 9.0 the Video Mixing Renderer 9 became available for downlevel support. So there are now three different renderers to choose from. The renderer that your application uses will depend on (1) the operating system, (2) the type of MPEG-2 decoder, and (3) the video hardware present on the user's system.
The following illustration shows a DVD filter graph with a software decoder for applications that run on Microsoft® Windows® 98SE, Windows 2000, or Windows Me.
On Windows XP, the Overlay Mixer and Video Renderer are replaced by the Video Mixing Renderer Filter 7, and the Line 21 Decoder is replaced by the Line 21 Decoder 2 filter, as shown in the following illustration. This graph also has a software decoder.
When a hardware decoder is present, it is typically connected directly to the video card by a video port. This enables the decoded video bits to be sent directly to the frame buffer on the graphics card without passing into host memory. To manage this direct connection on earlier versions of Windows, DirectShow supports DirectDraw Video Port Extensions (VPE) through an interface on the Overlay Mixer Filter. The following diagram shows a filter graph with a hardware decoder for applications running on Windows® 98SE, Windows 2000, or Windows Me.
The next diagram shows a DVD filter graph for applications running on Windows XP.
In all these graphs, the DVD Navigator is the source filter; it performs several tasks:
On the audio stream, the DVD Navigator connects downstream to an audio decoder, which connects to the DirectSound Renderer Filter, the default audio renderer. On the video and subpicture streams, the downstream filters are the third-party video decoder, and the Video Mixing Renderer (or the Overlay Mixer, and the Video Renderer on downlevel applications). If your application will handle line 21 closed-captioned data, you must add the DirectShow Line 21 Decoder 2 filter to the graph. This involves a single method call; the filter will be connected automatically.
Your application communicates with and controls the DVD Navigator through the custom interfaces that the DVD Navigator exposes: IDvdControl2the "set" methodsand IDvdInfo2the "get" methods. It also must communicate with the filter graph manager (through IMediaControl) to stop, start, and otherwise control the graph. You might also need to control other individual filters, such as the Overlay Mixer filter for switching between windowed and full-screen display. For more information, see IMixerPinConfig2. The exact configuration of the graph will vary depending on what type of MPEG-2 decoder you have installed, whether you need to handle line 21 closed-captioned data, and other factors.