Microsoft DirectX 8.0

Interfaces

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:

Building a Filter Graph

Applications use these interfaces to build various types of filter graphs.

InterfacePurpose
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.

Controlling a Filter Graph

These interfaces provide methods for controlling a filter graph.

InterfacePurpose
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.

Audio Capture and Rendering

These interfaces support capture and rendering of audio.

InterfacePurpose
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.

DVD

InterfacePurpose
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.

Video Capture

These interfaces support video capture, using Microsoft® Windows® Driver Model (WDM) devices or legacy Microsoft® Video for Windows® (VFW) devices.

InterfacePurpose
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.

Video Editing

DirectShow Editing Services (DES) provides the following interfaces.

InterfacePurpose
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).

File Encoding and Decoding

InterfacePurpose
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.

Video Rendering, Scaling, and Overlays

InterfacePurpose
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.

TV Tuning

InterfacePurpose
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).

External Device Control

InterfacePurpose
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.