Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
[The feature associated with this page, DirectShow, is a legacy feature. It has been superseded by MediaPlayer, IMFMediaEngine, and Audio/Video Capture in Media Foundation. Those features have been optimized for Windows 10 and Windows 11. Microsoft strongly recommends that new code use MediaPlayer, IMFMediaEngine and Audio/Video Capture in Media Foundation instead of DirectShow, when possible. Microsoft suggests that existing code that uses the legacy APIs be rewritten to use the new APIs if possible.]
The following is an alphabetical list of DirectShow interfaces.
| Interface | Description |
|---|---|
| IAMAnalogVideoDecoder | Sets and retrieves information about the analog-to-digital conversion process in a video capture filter. |
| IAMAudioInputMixer | Controls audio capture properties. |
| IAMAudioRendererStats | Retrieves statistical performance information from an audio renderer filter. |
| IAMBufferNegotiation | Requests the number of buffers for a filter to create and size of each buffer. |
| IAMCameraControl | Controls camera settings such as zoom, pan, aperture adjustment, or shutter speed. |
| IAMCertifiedOutputProtection | Sends Certified Output Protection Protocol (COPP) messages to the graphics driver. |
| IAMChannelInfo | Gets and sets channel information for Windows Media Station (.nsc) files. |
| IAMClockAdjust | Adjusts the reference clock. |
| IAMClockSlave | Controls the tolerance of an audio renderer when it is matching rates with another clock. |
| IAMCopyCaptureFileProgress | Callback interface for the ICaptureGraphBuilder2::CopyCaptureFile method. |
| IAMCrossbar | Routes signals from an analog or digital source to a video capture filter. |
| IAMDecoderCaps | Returns capabilities information from an MPEG decoder filter. |
| IAMDeviceRemoval | Provides a way for the Filter Graph Manager to register for device removal events for a capture device. |
| IAMDirectSound | Specifies which window has focus for controlling DirectSound audio playback. |
| IAMDroppedFrames | Retrieves performance information from a video capture filter. |
| IAMExtDevice | Controls an external device, such as a DV camera or video tape recoder (VTR). |
| IAMExtTransport | Controls the transport on a VTR or camcorder. |
| IAMExtendedSeeking | Seeks to a marker in a Windows Media stream or changes the playback rate for a Windows Media file. |
| IAMFilterGraphCallback | Callback interface for graph building. |
| IAMFilterMiscFlags | Queries whether a filter is a source filter or a renderer. |
| IAMGraphBuilderCallback | Callback interface for graph building. |
| IAMGraphStreams | Controls a filter graph that renders a live source. |
| IAMLatency | Reports the amount of latency that a filter introduces into the graph. |
| IAMLine21Decoder | Sets and retrieves information about closed captions. |
| IAMMediaContent | Retrieves metadata from a stream. |
| IAMNetShowConfig | Configures the legacy Windows Media Player 6.4 source filter. |
| IAMNetShowExProps | Configures the legacy Windows Media Player 6.4 source filter. |
| IAMNetShowPreroll | Sets and retrieves the preroll settings for the legacy Windows Media Player 6.4 source filter. |
| IAMNetworkStatus | Reports the quality of the network connection for the legacy Windows Media Player 6.4 source filter. |
| IAMOpenProgress | Reports the progress of a file-open operation. |
| IAMOverlayFX | Controls how the video overlay appears on the user's screen. |
| IAMParse | Sets and retrieves the parse time for an MPEG-2 stream. |
| IAMPushSource | Synchronizes a filter graph that renders a live source. |
| IAMResourceControl | Opens and holds an audio device resource. |
| IAMStats | Retrieves performance data from the Filter Graph Manager. |
| IAMStreamConfig | Sets the output format on certain capture and compression filters. |
| IAMStreamControl | Controls individual streams on a filter. |
| IAMStreamSelect | selects from the available streams on a parser filter. |
| IAMTimecodeReader | Reads SMPTE or MIDI timecode from an external device. |
| IAMTuner | Controls a TV tuner. |
| IAMTVAudio | Controls audio from a television source. |
| IAMTVTuner | Controls a TV tuner. |
| IAMVfwCaptureDialogs | Displays a dialog box provided by a Video for Windows (VFW) capture driver. |
| IAMVfwCompressDialogs | Displays a dialog box provided by a Video for Windows (VFW) codec. |
| IAMVideoAccelerator | Enables a video decoder filter to access DirectX Video Acceleration (DXVA) 1.0 functionality. |
| IAMVideoAcceleratorNotify | Callback interface for DXVA 1.0. |
| IAMVideoCompression | Sets and retrieves video compression properties. |
| IAMVideoControl | Controls certain video capture operations such as enumerating available frame rates and image orientation. |
| IAMVideoDecimationProperties | Controls how the Overlay Mixer performs video decimation. |
| IAMVideoProcAmp | Adjusts the qualities of an incoming video signal. |
| IAMWMBufferPass | Gets or sets properties on individual samples in an ASF stream. |
| IAMWMBufferPassCallback | Callback interface used with the IAMWMBufferPass interface. |
| IAMWstDecoder | Sets and retrieves information about World Standard Teletext (WST) |
| IAsyncReader | Performs an asynchronous data request on a filter. |
| IBaseFilter | Exposed by filters. This is the primary interface for all DirectShow filters. |
| IBasicAudio | Controls the volume and balance of the audio stream. |
| IBasicVideo | Sets video properties such as the destination and source rectangles. |
| IBasicVideo2 | Extends the IBasicVideo interface. |
| ICameraControl | Controls the camera settings on a capture device. |
| ICaptureGraphBuilder2 | Builds capture graphs and other custom filter graphs. |
| ICodecAPI | Configures an encoder or decoder. |
| IConfigAsfWriter | Configures the WM ASF Writer filter. |
| IConfigAsfWriter2 | Extends the IConfigAsfWriter interface. |
| IConfigAviMux | Configures the AVI Mux filter. |
| IConfigInterleaving | Controls how the AVI Mux interleaves audio and video samples. |
| ICreateDevEnum | Creates an enumerator for a category of filters. |
| IDDrawExclModeVideo | Enables video playback in DirectDraw exclusive full-screen mode. |
| IDDrawExclModeVideoCallback | Callback interface for the IDDrawExclModeVideoCallback interface. |
| IDecimateVideoImage | Specifies decimation on a decoder filter. |
| IDeferredCommand | Cancels or modifies graph-control commands that were queued using the IQueueCommand interface. |
| IDirectDrawVideo | Queries the Video Renderer filter about DirectDraw surfaces and hardware capabilities. |
| IDirectDrawMediaSample | Provides access to DirectDraw surfaces allocated by the Overlay Mixer filter. |
| IDirectDrawMediaSampleAllocator | Allocates samples that contain DirectDraw surfaces. |
| IDistributorNotify | Enables a plug-in distributor to be notified when the filter graph changes. |
| IDMOWrapperFilter | Enables an application to use a DirectX Media Object (DMO) inside a filter graph. |
| IDShowPlugin | Enables the Windows Media Source filter to communicate with the Windows Media Player 6.4 Plug-in for Netscape Navigator. |
| IDvdCmd | Waits for DVD commands to start or end. |
| IDvdControl2 | Navigates and plays DVD-Video titles. |
| IDvdGraphBuilder | Builds a filter graph for DVD-Video playback. |
| IDvdInfo2 | Reports attributes of a DVD disc or the current state of the DVD Navigator filter. |
| IDvdState | Saves the current DVD playback location and state. |
| IDVEnc | Sets and retrieves properties on the DV Video Encoder filter. |
| IDVRGB219 | Controls the dynamic range in the DV Video Encoder and DV Video Decoder filters. |
| IDVSplitter | Downgrades the frame rate on a digital video (DV) stream. |
| IEnumFilters | Enumerates the filters in a filter graph |
| IEnumMediaTypes | Enumerates a pin's preferred media types |
| IEnumPIDMap | Enumerates the mappings of Packet IDs (PID) to output pins on the MPEG-2 Demultiplexer filter. |
| IEnumPins | Enumerates pins on a filter. |
| IEnumStreamIdMap | Enumerates the mappings of stream IDs to output pins on the MPEG-2 Demultiplexer filter. |
| IFileSinkFilter | Exposed by filters that write data to a file. |
| IFileSinkFilter2 | Extends the IFileSinkFilter interface. |
| IFileSourceFilter | Exposed by source filters. |
| IFilterChain | Starting, stops, or removes chains of filters in a filter graph. |
| IFilterGraph | Builds a filter graph. |
| IFilterGraph2 | Extends the IGraphBuilder interface. |
| IFilterGraph3 | Extends the IFilterGraph2 interface. |
| IFilterMapper2 | Registers and unregisters filters, and locates filters in the registry. |
| IFilterMapper3 | Extends the IFilterMapper2 interface. |
| IFullScreenVideoEx | Exposed by the Full Screen Renderer filter. |
| IGetCapabilitiesKey | Retrieves the capabilities of a software or hardware encoder from the registry. |
| IGraphBuilder | Extends the IFilterGraph interface. This is the primary interface of the Filter Graph Manager. |
| IGraphConfig | Reconfigures the filter graph while the graph is running. |
| IGraphConfigCallback | Callback interface for the IGraphConfig interface. |
| IGraphVersion | Retrieves the current version number of the filter graph. |
| IIPDVDec | Configures the DV Video Decoder filter. |
| IKsNodeControl | Exposed by USB Video Class (UVC) extension units. |
| IKsPin | Retrieves the mediums supported by a kernel-mode pin. |
| IKsPropertySet | Sets properties on a kernel-mode filter. |
| IKsTopologyInfo | Enumerates the nodes in a stream class driver. |
| IMediaControl | Controls the flow of data through the filter graph. |
| IMediaEvent | Retrieves event notifications from the filter graph. |
| IMediaEventEx | Extends the IMediaEvent interface. |
| IMediaEventSink | Notifies the Filter Graph Manager of events that occur within the filter graph. |
| IMediaFilter | Controls the streaming state of a filter. |
| IMediaPosition | Controls seeking in the filter graph. |
| IMediaPropertyBag | Sets and retrieves INFO and DISP chunks in Audio-Video Interleaved (AVI) files. |
| IMediaSample | Sets and retrieves properties on media samples. |
| IMediaSample2 | Extends the IMediaSample interface. |
| IMediaSample2Config | Returns a pointer to a Direct3D surface representing a VRAM capture buffer. |
| IMediaSeeking | Controls seeking in the filter graph. |
| IMemAllocator | Allocates media samples. |
| IMemAllocatorCallbackTemp | Enables a filter to receive a callback notification from an allocator. Note: Deprecated. |
| IMemAllocatorNotifyCallbackTemp | Callback interface for the IMemAllocatorCallbackTemp interface. Note: Deprecated. |
| IMemInputPin | Delivers media data to an input pin. |
| IMixerOCX | Exposed by the Overlay Mixer filter. |
| IMixerOCXNotify | Callback interface for the IMixerOCX interface. |
| IMixerPinConfig | Manipulates video streams on the Overlay Mixer filter. |
| IMixerPinConfig2 | Extends the IMixerPinConfig interface. |
| IMpeg2Demultiplexer | Configures the MPEG-2 Demultiplexer filter. |
| IMPEG2PIDMap | Associates an output pin on the MPEG-2 Demultiplexer filter with one or more packet IDs (PIDs). |
| IMPEG2StreamIdMap | Associates an output pin on the MPEG-2 Demultiplexer filter with one or more stream IDs. |
| IMpegAudioDecoder | Configures the MPEG-1 Audio Decoder. |
| IOverlay | Enables a filter to write directly to video memory. |
| IOverlayNotify | Callback interface for the IOverlay interface. |
| IOverlayNotify2 | Callback interface for the IOverlay interface. |
| IPersistMediaPropertyBag | Sets and retrieves INFO and DISP chunks in Audio-Video Interleaved (AVI) streams. |
| IPin | Exposed by all filter pins. |
| IPinConnection | Reconnects an input pin while the filter is still running. |
| IPinFlowControl | Blocks data flow from an active output pin. |
| IQualityControl | Provides support for quality control in the filter graph. |
| IQualProp | Retrieves performance information from video renderers. |
| IQueueCommand | Queues a command on the filter graph for processing at a designated time. |
| IReferenceClock | Provides the reference time for the filter graph. |
| IReferenceClockTimerControl | Changes the timer period used by a reference clock. |
| IRegisterServiceProvider | Registers an object as a service with the Filter Graph Manager. |
| IResourceConsumer | Callback interface for the IResourceManager interface. |
| IResourceManager | Resolves contentions for system resources. |
| ISeekingPassThru | Implements seeking for one-input filters. |
| ISelector | Selects source nodes in a stream class driver. |
| IStreamBuilder | Enables an output pin to build the downstream section of the filter graph. |
| IVideoFrameStep | Steps through a video stream. |
| IVideoProcAmp | Controls the image adjustment (ProcAmp) settings on a capture device. |
| IVideoWindow | Sets properties on the video window. |
| IVMRAspectRatioControl | controls whether the Video Mixing Renderer Filter 7 (VMR-7) preserves the aspect ratio of the source video. |
| IVMRAspectRatioControl9 | Controls whether the Video Mixing Renderer Filter 9 (VMR-9) preserves the aspect ratio of the source video |
| IVMRDeinterlaceControl | Supports hardware-accelerated deinterlacing using the VMR-7. |
| IVMRDeinterlaceControl9 | Supports hardware-accelerated deinterlacing using the VMR-9. |
| IVMRFilterConfig | Configures the VMR-7. |
| IVMRFilterConfig9 | Configures the VMR-9. |
| IVMRImageCompositor | Exposed by VMR-7 compositors. |
| IVMRImageCompositor9 | Exposed by VMR-9 compositors. |
| IVMRImagePresenter | Exposed by VMR-7 allocator-presenters. |
| IVMRImagePresenter9 | Exposed by VMR-9 allocator-presenters. |
| IVMRImagePresenterConfig | Sets the renderering preferences on the image presenter used by the VMR-7. |
| IVMRImagePresenterConfig9 | Sets the renderering preferences on the image presenter used by the VMR-9. |
| IVMRImagePresenterExclModeConfig | Setting and retrieves the renderering preferences on the Exclusive Mode Allocator-Presenter for the VMR-7 |
| IVMRMixerBitmap | Blends a static image onto the video stream, when using the VMR-7. |
| IVMRMixerBitmap9 | Blends a static image onto the video stream, when using the VMR-9. |
| IVMRMixerControl | Manipulates the incoming video streams on the VMR-7. |
| IVMRMixerControl9 | Manipulates the incoming video streams on the VMR-9. |
| IVMRMonitorConfig | Controls monitor usage by the VMR-7. |
| IVMRMonitorConfig9 | Controls monitor usage by the VMR-9. |
| IVMRSurface | Exposed by media samples from the VMR-7. |
| IVMRSurface9 | Exposed by media samples from the VMR-9. |
| IVMRSurfaceAllocator | Allocates the DirectDraw surfaces used by the VMR-7 allocator-presenter. |
| IVMRSurfaceAllocator9 | Allocates the Direct3D surfaces used by the VMR-9 allocator-presenter. |
| IVMRSurfaceAllocatorEx9 | Extends the IVMRSurfaceAllocator9 interface. |
| IVMRSurfaceAllocatorNotify | Enables the allocator-presenter to notify the VMR-7. |
| IVMRSurfaceAllocatorNotify9 | Enables the allocator-presenter to notify the VMR-9. |
| IVMRVideoStreamControl | Controls input pins on the VMR-7. |
| IVMRVideoStreamControl9 | Controls input pins on the VMR-9. |
| IVMRWindowlessControl | Controls how the VMR-7 renders a video stream. |
| IVMRWindowlessControl9 | Controls how the VMR-9 renders a video stream. |
| IVPBaseConfig | Base interface for the IVPConfig interface. |
| IVPBaseNotify | Base interface for the IVPNotify interface. |
| IVPConfig | Enables a video port to communicate with the Overlay Mixer filter. |
| IVPManager | Exposed by the Video Port Manager filter. |
| IVPNotify | Enables the Overlay Mixer to control the properties of a hardware device that uses a video port. |
| IVPNotify2 | Extends the IVPNotify interface. |
| IXMLGraphBuilder | Persists a DirectShow filter graph using an XML file format. Note: Deprecated. |