Microsoft DirectX 8.0 |
This topic contains reference information for the Microsoft® DirectShow® COM interfaces. To provide broad support for various types of hardware, file formats, and stream operations, DirectShow implements a large number of interfaces. Some are used by applications; others are used internally by filters and other DirectShow components.
Any particular application will use only a small subset of these interfaces. Which interfaces you need depends on the nature of the application. The following tables summarize the application-level interfaces according to their purpose:
See also:
Applications use these interfaces to build various types of filter graphs.
Interface | Purpose |
---|---|
ICaptureGraphBuilder2 | Build filter graphs for video capture. |
ICreateDevEnum | Enumerate the available system devices. |
IDvdGraphBuilder | Build filter graphs for DVD navigation and playback. |
IFilterGraph2 | Add, remove, or connect filters. |
IFilterMapper2 | Enumerate the filters registered on the user's system. |
IGraphBuilder | Build filter graphs for file playback or for custom uses. |
IGraphConfig | Dynamically reconfigure a filter graph. |
IGraphVersion | Determine when the graph changes. |
These interfaces provide methods for controlling a filter graph.
Interface | Purpose |
---|---|
IAMGraphStreams | Synchronize live streams in a filter graph. |
IEnumFilters | Enumerate the filters in the graph. |
IFilterChain | Control chains of filters. |
IMediaControl | Run, pause, and stop the filter graph. (Also provides Automation-compatible methods for building graphs.) |
IMediaEventEx | Respond to events in the graph. |
IMediaSeeking | Seek within a file. |
IQueueCommand | Queue commands to run at a later time. |
IVideoFrameStep | Frame-step through a video stream. |
These interfaces support capture and rendering of audio.
Interface | Purpose |
---|---|
IAMAudioInputMixer | Access the analog inputs on the system's sound card and adjust characteristics, such as mono or stereo, mix level, pan level, loudness, treble, and bass. |
IAMDirectSound | On a Microsoft DirectSound®-compatible device, controls whether the application's audio output is audible when other applications have the focus, and which application window is associated with sound. |
IAMResourceControl | Hold an audio device resource before it is needed. |
IBasicAudio | Set audio output volume and balance. |
Interface | Purpose |
---|---|
IDvdCmd | Block the DVD Navigator until a command starts or completes. |
IDvdControl2 | Navigate and play DVD-Video titles, including karaoke titles. |
IDvdGraphBuilder | Build a filter graph for DVD-Video playback from the available software and hardware on the system. |
IDvdInfo2 | Query for various attributes of a DVD disc or the DVD Navigator's state. |
IDvdState | Save the state of the user's session to disk, including playback location, parental level, and region. |
These interfaces support video capture, using Microsoft® Windows® Driver Model (WDM) devices or legacy Microsoft® Video for Windows® (VFW) devices.
Interface | Purpose |
---|---|
IAMAnalogVideoDecoder | Control video digitization on a WDM video capture card. |
IAMAnalogVideoEncoder | Control a hardware video encoder. |
IAMBufferNegotiation | Control how a pin allocates buffers. |
IAMCopyCaptureFileProgress | Callback interface to receive the progress of a file copy operation. |
IAMCrossbar | Create a hardware connection between a WDM audio or video source and a WDM capture device. |
IAMDroppedFrames | Query a capture filter about capture performance. |
IAMStreamControl | Control the start and stop times of individual streams. |
IAMVfwCaptureDialogs | Display the dialog boxes provided by VFW capture drivers. |
IAMVideoControl | Control the picture from a capture device. |
IAMVideoProcAmp | Adjust the qualities of a video signal, such as brightness, contrast, hue, saturation, gamma, and sharpness. |
ICaptureGraphBuilder2 | Build filter graphs for video capture. |
IFileSinkFilter2 | Specify the name and attributes of an output file. |
ISampleGrabber | Retrieve media samples as they move through the filter graph. |
DirectShow Editing Services (DES) provides the following interfaces.
Interface | Purpose |
---|---|
IAMErrorLog | Callback interface for error logging. |
IAMSetErrorLog | Set or retrieve an error log. |
IAMTimeline | Set and retrieve properties on a timeline and create timeline objects. |
IAMTimelineComp | Insert or retrieve virtual tracks on a composition. |
IAMTimelineEffect | Retrieve an effect's priority. |
IAMTimelineEffectable | Add an effect to a timeline object. |
IAMTimelineGroup | Set and retrieve properties on a group. |
IAMTimelineObj | Set and retrieve properties on a timeline object. |
IAMTimelineSplittable | Split a timeline object. |
IAMTimelineSrc | Set and retrieve properties on a source. |
IAMTimelineTrack | Set and retrieve properties on a track. |
IAMTimelineTrans | Set and retrieve properties on a transition. |
IAMTimelineTransable | Add a transition to a timeline object. |
IAMTimelineVirtualTrack | Set and retrieve properties on a virtual track. |
IMediaDet | Retrieve information about a media file. |
IMediaLocator | Validate file names. |
IPropertySetter | Set properties on an effect or transition. |
IRenderEngine | Render a video editing project. |
ISmartRenderEngine | Use smart recompression to render a video editing project. |
IXml2Dex | Save and load video editing projects in Extensible Markup Language (XML). |
Interface | Purpose |
---|---|
IAMMediaContent | Retrieve meta-data from a stream, such as the author and title. |
IAMOpenProgress | Determine the progress of a file-open operation. |
IAMParse | Query and set the parse time for the current position in an MPEG stream. |
IAMStreamSelect | Control which logical streams are played, and retrieve information about them. |
IAMVfwCompressDialogs | Display dialog boxes provided by VFW codecs. |
IAMVideoCompression | Set video compression parameters. |
IConfigAsfWriter | Control how the ASF File Writer filter writes Advanced Streaming Format (ASF) files. |
IConfigAviMux | Control how the AVI Mux filter writes AVI files. |
IConfigInterleaving | Configure interleaving when the AVI Mux filter writes AVI files. |
IDVEnc | Set the encoding resolution on the DV Video Encoder filter. |
IDVSplitter | Downgrade the frame rate on a digital video (DV) stream |
IIPDVDec | Set the decoding resolution on the DV Video Decoder filter. |
IPersistMediaPropertyBag | Set and retrieve INFO and DISP chunks in AVI streams. |
Interface | Purpose |
---|---|
IAMLine21Decoder | Provides access to closed-captioned information and settings. |
IAMOverlayFX | Apply overlay effects to the video surface. |
IAMVideoDecimationProperties | Control how DirectShow scales a video image if the video window is smaller than the native size of the video. |
IBasicVideo2 | Set video properties. |
IDDrawExclModeVideo | Render video in Microsoft® DirectDraw® exclusive full-screen mode. |
IDDrawExclModeVideoCallback | Callback interface to receive notification about changes to the overlay position, size, and visibility. |
IDirectDrawVideo | Disable specified DirectDraw capabilities. |
IDirectDrawMediaSample | Access a DirectDraw surface allocated by the Overlay Mixer filter. |
IFullScreenVideo | Control the Full-Screen Renderer filter. |
IMixerPinConfig2 | Set video color controls on the Overlay Mixer when mixing multiple video streams. |
IQualProp | Query a video renderer for performance information. |
IVideoWindow | Set video window properties. |
Interface | Purpose |
---|---|
IAMTunerNotification | Callback interface to receive event notifications from the TV tuner filter. |
IAMTVTuner | Control a TV tuner device. |
IAMTVAudio | Control the audio from a TV tuner. |
IAMTVAudioNotification | Callback interface to receive event notifications from a TV tuner card. |
IAMAnalogVideoDecoder | Contains methods for selecting the digitization format, indicating the horizontal lock status, and controlling the time constant on the digitizer phase lock loop (PLL). |
IAMAnalogVideoDecoder | Contains methods for selecting the digitization format, indicating the horizontal lock status, and controlling the time constant on the digitizer phase lock loop (PLL). |
Interface | Purpose |
---|---|
IAMCameraControl | Control a camera. |
IAMExtDevice | Control an external device such as a VCR or camcorder. |
IAMExtTransport | Control VCR transport functions, such as play, pause, record, fast-forward, and rewind. |
IAMTimecodeDisplay | Set properties on a device that displays SMPTE timecode. |
IAMTimecodeGenerator | Set properties on a device that generates SMPTE timecode. |
IAMTimecodeReader | Read SMPTE timecode from an external device. |