Media Foundation Interfaces

In this section

Topic Description
IAdvancedMediaCapture
Enables advanced media capture.
IAdvancedMediaCaptureInitializationSettings
Provides initialization settings for advanced media capture.
IAdvancedMediaCaptureSettings
Provides settings for advanced media capture.
IDirect3DDeviceManager9
Enables two threads to share the same Direct3D 9 device, and provides access to the DirectX Video Acceleration (DXVA) features of the device.
IDirectXVideoAccelerationService
Provides DirectX Video Acceleration (DXVA) services from a Direct3D device.
IDirectXVideoDecoder
Represents a DirectX Video Acceleration (DXVA) video decoder device.
IDirectXVideoDecoderService
Provides access to DirectX Video Acceleration (DXVA) decoder services.
IDirectXVideoMemoryConfiguration
Sets the type of video memory for uncompressed video surfaces.
IDirectXVideoProcessor
Represents a DirectX Video Acceleration (DXVA) video processor device.
IDirectXVideoProcessorService
Provides access to DirectX Video Acceleration (DXVA) video processing services.
IEVRFilterConfig
Sets the number of input pins on the DirectShow Enhanced Video Renderer (EVR) filter.
IEVRFilterConfigEx
Configures the DirectShow Enhanced Video Renderer (EVR) filter.
IEVRTrustedVideoPlugin
Enables a plug-in component for the enhanced video renderer (EVR) to work with protected media.
IEVRVideoStreamControl
This interface is not supported.
IMF2DBuffer
Represents a buffer that contains a two-dimensional surface, such as a video frame.
IMF2DBuffer2
Represents a buffer that contains a two-dimensional surface, such as a video frame.
IMFActivate
Enables the application to defer the creation of an object.
IMFASFContentInfo
Provides methods to work with the header section of files conforming to the Advanced Systems Format (ASF) specification.
IMFASFIndexer
Provides methods to work with indexes in Systems Format (ASF) files.
IMFASFMultiplexer
Provides methods to create Advanced Systems Format (ASF) data packets.
IMFASFMutualExclusion
Configures an Advanced Systems Format (ASF) mutual exclusion object, which manages information about a group of streams in an ASF profile that are mutually exclusive.
IMFASFProfile
Manages an Advanced Systems Format (ASF) profile.
IMFASFSplitter
Provides methods to read data from an Advanced Systems Format (ASF) file.
IMFASFStreamConfig
Configures the settings of a stream in an ASF file.
IMFASFStreamPrioritization
Not implemented.
IMFASFStreamSelector
Selects streams in an Advanced Systems Format (ASF) file, based on the mutual exclusion information in the ASF header.
IMFAsyncCallback
Callback interface to notify the application when an asynchronous method completes.
IMFAsyncCallbackLogging
Provides logging information about the parent object the async callback is associated with.
IMFAsyncResult
Provides information about the result of an asynchronous operation.
IMFAttributes
Provides a generic way to store key/value pairs on an object.
IMFAudioMediaType
IMFAudioMediaType is no longer available for use as of Windows 7.
IMFAudioPolicy
Configures the audio session that is associated with the streaming audio renderer (SAR).
IMFAudioStreamVolume
Controls the volume levels of individual audio channels.
IMFBufferListNotify
Enables IMFSourceBufferList object to notify its clients of important state changes.
IMFByteStream
Represents a byte stream from some data source, which might be a local file, a network file, or some other source.
IMFByteStreamBuffering
Controls how a byte stream buffers data from a network.
IMFByteStreamCacheControl
Controls how a network byte stream transfers data to a local cache.
IMFByteStreamCacheControl2
Controls how a network byte stream transfers data to a local cache.
IMFByteStreamHandler
Creates a media source from a byte stream.
IMFByteStreamProxyClassFactory
Creates a proxy to a byte stream.
IMFByteStreamTimeSeek
Seeks a byte stream by time position.
IMFCaptureEngine
Controls one or more capture devices.
IMFCaptureEngineClassFactory
Creates an instance of the capture engine.
IMFCaptureEngineOnEventCallback
Callback interface for receiving events from the capture engine.
IMFCaptureEngineOnSampleCallback
Callback interface to receive data from the capture engine.
IMFCaptureEngineOnSampleCallback2
Extensions for the IMFCaptureEngineOnSampleCallback callback interface that is used to receive data from the capture engine.
IMFCapturePhotoSink
Controls the photo sink.
IMFCapturePreviewSink
Controls the preview sink.
IMFCaptureRecordSink
Controls the recording sink.
IMFCaptureSink
Controls a capture sink, which is an object that receives one or more streams from a capture device.
IMFCaptureSink2
Extends the IMFCaptureSink interface to provide functionality for dynamically setting the output media type of the record sink or preview sink.
IMFCaptureSource
Controls the capture source object. The capture source manages the audio and video capture devices.
IMFCdmSuspendNotify
Used to enable the client to notify the Content Decryption Module (CDM) when global resources should be brought into a consistent state prior to suspending.
IMFClock
Provides timing information from a clock in Microsoft Media Foundation.
IMFClockConsumer
Implemented by an app in order to get access to the IMFPresentationClock.
IMFClockStateSink
Receives state-change notifications from the presentation clock.
IMFCollection
Represents a generic collection of IUnknown pointers.
IMFContentDecryptorContext
Allows a decryptor to manage hardware keys and decrypt hardware samples.
IMFContentEnabler
Implements one step that must be performed for the user to access media content.
IMFContentProtectionDevice
Allows a decryptor to communicate with the security processor that implements the hardware decryption for a protection system.
IMFContentProtectionManager
Enables playback of protected content by providing the application with a pointer to a content enabler object.
IMFDesiredSample
Enables the presenter for the enhanced video renderer (EVR) to request a specific frame from the video mixer.
IMFDLNASinkInit
Initializes the Digital Living Network Alliance (DLNA) media sink.
IMFDRMNetHelper
Configures Windows Media Digital Rights Management (DRM) for Network Devices on a network sink.
IMFDXGIBuffer
Represents a buffer that contains a Microsoft DirectX Graphics Infrastructure (DXGI) surface.
IMFDXGIDeviceManager
Enables two threads to share the same Microsoft Direct3D 11 device.
IMFDXGIDeviceManagerSource
Provides functionality for getting the IMFDXGIDeviceManager from the Media Foundation video rendering sink.
IMFFieldOfUseMFTUnlock
Enables an application to use a Media Foundation transform (MFT) that has restrictions on its use.
IMFFinalizableMediaSink
Optionally supported by media sinks to perform required tasks before shutdown.
IMFGetService
Queries an object for a specified service interface.
IMFHttpDownloadRequest
Applications implement this interface to override the default implementation of the HTTP and HTTPS protocols used by Microsoft Media Foundation. Applications provide the IMFHttpDownloadRequest interface to Media Foundation through the CreateRequest method on the IMFHttpDownloadSession interface.
IMFHttpDownloadSession
Applications implement this interface to override the default implementation of the HTTP and HTTPS protocols used by Microsoft Media Foundation. Applications provide the IMFHttpDownloadSession interface to Media Foundation through the CreateHttpDownloadSession method on the IMFHttpDownloadSessionProvider interface. Microsoft Media Foundation uses this interface to perform a “streaming”, or “progressive”, download of a resource identified by a HTTP or HTTPS URL. Multiple HTTP requests may be sent to download the resource. The IMFHttpDownloadSession interface is used to create these individual HTTP requests.
IMFHttpDownloadSessionProvider
Applications implement this interface in order to provide custom a custom HTTP or HTTPS download implementation. Use the IMFSourceResolver interface to register the provider. For more information, see Using the Source Resolver. Once registered, the Microsoft Media Foundation will invoke the CreateHttpDownloadSession method of the provider implementation to open HTTP or HTTPS URLs instead of using the default implementation.
IMFImageSharingEngine
Enables image sharing.
IMFImageSharingEngineClassFactory
Creates an instance of the IMFImageSharingEngine.
IMFInputTrustAuthority
Enables other components in the protected media path (PMP) to use the input protection system provided by an input trust authorities (ITA).
IMFLocalMFTRegistration
Registers Media Foundation transforms (MFTs) in the caller's process.
IMFMediaBuffer
Represents a block of memory that contains media data.
IMFMediaEngine
Enables an application to play audio or video files.
IMFMediaEngineClassFactory
Creates an instance of the Media Engine.
IMFMediaEngineClassFactory2
Creates an instance of the IMFMediaKeys object.
IMFMediaEngineClassFactoryEx
Extension for the IMFMediaEngineClassFactory interface.
IMFMediaEngineEME
Implemented by the media engine to add encrypted media extensions methods.
IMFMediaEngineEx
Extends the IMFMediaEngine interface.
IMFMediaEngineExtension
Enables an application to load media resources in the Media Engine.
IMFMediaEngineNeedKeyNotify
Represents a callback to the media engine to notify key request data.
IMFMediaEngineNotify
Callback interface for the IMFMediaEngine interface.
IMFMediaEngineOPMInfo
Provides methods for getting information about the Output Protection Manager (OPM).
IMFMediaEngineProtectedContent
Enables the Media Engine to play protected video content.
IMFMediaEngineSrcElements
Provides the Media Engine with a list of media resources.
IMFMediaEngineSrcElementsEx
Extends the IMFMediaEngineSrcElements interface to provide additional capabilities.
IMFMediaEngineSupportsSourceTransfer
Enables the media source to be transferred between the media engine and the sharing engine for Play To.
IMFMediaEngineWebSupport
Enables playback of web audio.
IMFMediaError
Provides the current error status for the Media Engine.
IMFMediaEvent
Represents an event generated by a Media Foundation object. Use this interface to get information about the event.
IMFMediaEventGenerator
Retrieves events from any Media Foundation object that generates events.
IMFMediaEventQueue
Provides an event queue for applications that need to implement the IMFMediaEventGenerator interface.
IMFMediaKeys
Represents a media keys used for decrypting media data using a Digital Rights Management (DRM) key system.
IMFMediaKeySession
Represents a session with the Digital Rights Management (DRM) key system.
IMFMediaKeySessionNotify
Provides a mechanism for notifying the app about information regarding the media key session.
IMFMediaSession
Provides playback controls for protected and unprotected content.
IMFMediaSharingEngine
Enables media sharing.
IMFMediaSharingEngineClassFactory
Creates an instance of the IMFMediaSharingEngine.
IMFMediaSink
Implemented by media sink objects.
IMFMediaSinkPreroll
Enables a media sink to receive samples before the presentation clock is started.
IMFMediaSource
Implemented by media source objects.
IMFMediaSourceEx
Extends the IMFMediaSource interface to provide additional capabilities for a media source.
IMFMediaSourceExtension
Provides functionality for the Media Source Extension (MSE).
IMFMediaSourceExtensionNotify
Provides functionality for raising events associated with IMFMediaSourceExtension.
IMFMediaSourcePresentationProvider
Provides notifications to the sequencer source.
IMFMediaSourceTopologyProvider
Enables an application to get a topology from the sequencer source.
IMFMediaStream
Represents one stream in a media source.
IMFMediaStreamSourceSampleRequest
Represents a request for a sample from a MediaStreamSource.
IMFMediaTimeRange
Represents a list of time ranges, where each range is defined by a start and end time.
IMFMediaType
Represents a description of a media format.
IMFMediaTypeHandler
Gets and sets media types on an object, such as a media source or media sink.
IMFMetadata
Manages metadata for an object.
IMFMetadataProvider
Gets metadata from a media source or other object.
IMFMuxStreamAttributesManager
Provides access to the IMFAttributes of the substreams of a multiplexed media source.
IMFMuxStreamSampleManager
Provides the ability to retrieve IMFSample objects for individual substreams within the output of a multiplexed media source.
IMFMuxStreamMediaTypeManager
Enables the management of stream configurations for a multiplexed media source. A stream configuration defines a set of substreams that can be included the multiplexed output.
IMFNetCredential
Sets and retrieves user-name and password information for authentication purposes.
IMFNetCredentialCache
Gets credentials from the credential cache.
IMFNetCredentialManager
Implemented by applications to provide user credentials for a network source.
IMFNetCrossOriginSupport
Implemented by clients that want to enforce a cross origin policy for HTML5 media downloads.
IMFNetProxyLocator
Determines the proxy to use when connecting to a server.
IMFNetProxyLocatorFactory
Creates a proxy locator object, which determines the proxy to use.
IMFNetResourceFilter
Notifies the application when a byte stream requests a URL, and enables the application to block URL redirection.
IMFNetSchemeHandlerConfig
Configures a network scheme plug-in.
IMFObjectReferenceStream
Marshals an interface pointer to and from a stream.
Stream objects that support IStream can expose this interface to provide custom marshaling for interface pointers.
IMFOutputPolicy
Encapsulates a usage policy from an input trust authority (ITA).
IMFOutputSchema
Encapsulates information about an output protection system and its corresponding configuration data.
IMFOutputTrustAuthority
Encapsulates the functionality of one or more output protection systems that a trusted output supports.
IMFPluginControl
Controls how media sources and transforms are enumerated in Media Foundation.
IMFPluginControl2
Controls how media sources and transforms are enumerated in Media Foundation.
IMFPMediaItem
Represents a media item. (Deprecated.)
IMFPMediaPlayer
Contains methods to play media files. (Deprecated.)
IMFPMediaPlayerCallback
Callback interface for the IMFPMediaPlayer interface.
IMFPMPClient
Enables a media source to receive a pointer to the IMFPMPHost interface.
IMFPMPClientApp
Provides a mechanism for a media source to implement content protection functionality in a Windows Store apps.
IMFPMPHost
Enables a media source in the application process to create objects in the protected media path (PMP) process.
IMFPMPHostApp
Allows a media source to create a Windows Runtime object in the Protected Media Path (PMP) process.
IMFPMPServer
Enables two instances of the Media Session to share the same protected media path (PMP) process.
IMFPresentationClock
Represents a presentation clock, which is used to schedule when samples are rendered and to synchronize multiple streams.
IMFPresentationDescriptor
Describes the details of a presentation. A presentation is a set of related media streams that share a common presentation time.
IMFPresentationTimeSource
Provides the clock times for the presentation clock.
IMFProtectedEnvironmentAccess
Provides a method that allows content protection systems to perform a handshake with the protected environment. This is needed because the CreateFile and DeviceIoControl APIs are not available to Windows Store apps.
IMFQualityAdvise
Enables the quality manager to adjust the audio or video quality of a component in the pipeline.
IMFQualityAdvise2
Enables a pipeline object to adjust its own audio or video quality, in response to quality messages.
IMFQualityAdviseLimits
Queries an object for the number of quality modes it supports.
IMFQualityManager
Adjusts playback quality. This interface is exposed by the quality manager.
IMFRateControl
Gets or sets the playback rate.
IMFRateSupport
Queries the range of playback rates that are supported, including reverse playback.
IMFReadWriteClassFactory
Creates an instance of either the sink writer or the source reader.
IMFRealTimeClient
Notifies a pipeline object to register itself with the Multimedia Class Scheduler Service (MMCSS).
IMFRealTimeClientEx
Notifies a pipeline object to register itself with the Multimedia Class Scheduler Service (MMCSS).
IMFRemoteAsyncCallback
Used by the Media Foundation proxy/stub DLL to marshal certain asynchronous method calls across process boundaries.
Applications do not use or implement this interface.
IMFRemoteDesktopPlugin
Modifies a topology for use in a Terminal Services environment.
IMFRemoteProxy
Exposed by objects that act as a proxy for a remote object.
IMFSAMIStyle
Sets and retrieves Synchronized Accessible Media Interchange (SAMI) styles on the SAMI Media Source.
IMFSample
Represents a media sample, which is a container object for media data.
IMFSampleGrabberSinkCallback
Callback interface to get media data from the sample-grabber sink.
IMFSampleGrabberSinkCallback2
Extends the IMFSampleGrabberSinkCallback interface.
IMFSampleOutputStream
Writes media samples to a byte stream.
IMFSampleProtection
Provides encryption for media data inside the protected media path (PMP).
IMFSaveJob
Persists media data from a source byte stream to an application-provided byte stream.
IMFSchemeHandler
Creates a media source or a byte stream from a URL.
IMFSecureChannel
Establishes a one-way secure channel between two objects.
IMFSeekInfo
For a particular seek position, gets the two nearest key frames.
IMFSensorActivitiesReport
Provides access to IMFSensorActivityReport objects that describe the current activity of a sensor.
IMFSensorActivitiesReportCallback
Interface implemented by the client to receive callbacks when sensor activity reports are available.
IMFSensorActivityMonitor
Provides methods for controlling a sensor activity monitor.
IMFSensorActivityReport
Represents an activity report for a sensor.
IMFSensorDevice
Represents a sensor device that can belong to a sensor group, which is represented by the IMFSensorGroup interface. The term "device" in this context could refer to a physical device, a custom media source, or a frame provider.
IMFSensorGroup
Represents a group of sensor devices from which an IMFMediaSource can be created. The term "device" in this context could refer to a physical device, a custom media source, or a frame provider. A sensor group may actually contain multiple sensor devices, or it could contain only a single device, but it still behaves as a sensor group.
IMFSensorProcessActivity
Represents the activity of a process associated with a sensor.
IMFSensorProfileCollection
Contains a collection of media foundation sensor profile objects.
IMFSensorProfile
Describes a media foundation sensor profile.
IMFSensorStream
IMFSensorTransformFactory
The interface implemented by sensor transforms to allow the media pipeline to query requirements of the sensor transform and to create a runtime instance of the sensor transform.
IMFSequencerSource
Implemented by the Sequencer Source.
IMFSharingEngineClassFactory
Creates an instance of the media sharing engine.
IMFShutdown
Exposed by some Media Foundation objects that must be explicitly shut down.
IMFSignedLibrary
Provides a method that allows content protection systems to get the procedure address of a function in the signed library. This method provides the same functionality as GetProcAddress which is not available to Windows Store apps.
IMFSimpleAudioVolume
Controls the master volume level of the audio session associated with the streaming audio renderer (SAR) and the audio capture source.
IMFSinkWriter
Implemented by the Media Foundation sink writer object.
IMFSinkWriterCallback
Callback interface for the Media Foundation sink writer.
IMFSinkWriterCallback2
Extends the IMFSinkWriterCallback interface.
IMFSinkWriterEncoderConfig
Provides additional functionality on the sink writer for dynamically changing the media type and encoder configuration.
IMFSinkWriterEx
Extends the IMFSinkWriter interface.
IMFSourceBuffer
Represents a buffer which contains media data for a IMFMediaSourceExtension.
IMFSourceBufferList
Represents a collection of IMFSourceBuffer objects.
IMFSourceBufferNotify
Provides functionality for raising events associated with IMFSourceBuffer.
IMFSourceOpenMonitor
Callback interface to receive notifications from a network source on the progress of an asynchronous open operation.
IMFSourceReader
Implemented by the Media Foundation source reader object.
IMFSourceReaderCallback
Callback interface for the Media Foundation source reader.
IMFSourceReaderCallback2
Extends the IMFSourceReaderCallback interface.
IMFSourceReaderEx
Extends the IMFSourceReader interface.
IMFSourceResolver
Creates a media source from a URL or a byte stream.
IMFSpatialAudioObjectBuffer
Represents a section of audio data with associated positional and rendering metadata. Spatial audio objects are stored in IMFSpatialAudioSample instances, and allow passing of spatial audio information between Media Foundation components.
IMFSpatialAudioSample
Represents a multimedia sample with spatial sound information. Every IMFSpatialAudioSample contains one or more IMFSpatialAudioObjectBuffer objects.
IMFSSLCertificateManager
Implemented by a client and called by Media Foundation to get the client Secure Sockets Layer (SSL) certificate requested by the server.
IMFStreamDescriptor
Gets information about one stream in a media source.
IMFStreamingSinkConfig
Passes configuration information to the media sinks that are used for streaming the content.
IMFStreamSink
Represents a stream on a media sink object.
IMFSystemId
Provides a method that retireves system id data.
IMFTimecodeTranslate
Converts between Society of Motion Picture and Television Engineers (SMPTE) time codes and 100-nanosecond time units.
IMFTimedText
A timed-text object represents a component of timed text.
IMFTimedTextBinary
Represents the data content of a timed-text object.
IMFTimedTextCue
Represents the timed-text-cue object.
IMFTimedTextFormattedText
Represents a block of formatted timed-text.
IMFTimedTextNotify
Interface that defines callbacks for Media Foundation Timed Text notifications.
IMFTimedTextRegion
Represents the display region of a timed-text object.
IMFTimedTextStyle
Represents the style for timed text.
IMFTimedTextTrack
Represents a track of timed text.
IMFTimedTextTrackList
Represents a list of timed-text tracks.
IMFTimer
Provides a timer that invokes a callback at a specified time.
IMFTopoLoader
Converts a partial topology into a full topology.
IMFTopology
Represents a topology. A topology describes a collection of media sources, sinks, and transforms that are connected in a certain order.
IMFTopologyNode
Represents a node in a topology.
IMFTopologyNodeAttributeEditor
Updates the attributes of one or more nodes in the Media Session's current topology.
IMFTopologyServiceLookup
Enables a custom video mixer or video presenter to get interface pointers from the Enhanced Video Renderer (EVR).
IMFTopologyServiceLookupClient
Initializes a video mixer or presenter.
IMFTrackedSample
Tracks the reference counts on a video media sample.
IMFTranscodeProfile
Implemented by the transcode profile object.
IMFTranscodeSinkInfoProvider
Implemented by the transcode sink activation object.
IMFTransform
Implemented by all Media Foundation Transforms (MFTs).
IMFTrustedInput
Implemented by components that provide input trust authorities (ITAs). This interface is used to get the ITA for each of the component's streams.
IMFTrustedOutput
Implemented by components that provide output trust authorities (OTAs).
IMFVideoDeviceID
Returns the device identifier supported by a video renderer component.
IMFVideoDisplayControl
Controls how the Enhanced Video Renderer (EVR) displays video.
IMFVideoMediaType
Represents a description of a video format.
IMFVideoMixerBitmap
Alpha-blends a static bitmap image with the video displayed by the Enhanced Video Renderer (EVR).
IMFVideoMixerControl
Controls how the Enhanced Video Renderer (EVR) mixes video substreams.
IMFVideoMixerControl2
Controls preferences for video deinterlacing.
IMFVideoPositionMapper
Maps a position on an input video stream to the corresponding position on an output video stream.
IMFVideoPresenter
Represents a video presenter. A video presenter is an object that receives video frames, typically from a video mixer, and presents them in some way, typically by rendering them to the display.
IMFVideoProcessor
Controls video processing in the Enhanced Video Renderer (EVR).
IMFVideoProcessorControl
Configures the Video Processor MFT.
IMFVideoProcessorControl2
Configures the Video Processor MFT.
IMFVideoRenderer
Sets a new mixer or presenter for the Enhanced Video Renderer (EVR).
IMFVideoSampleAllocator
Allocates video samples for a video media sink.
IMFVideoSampleAllocatorCallback
Enables an application to track video samples allocated by the enhanced video renderer (EVR).
IMFVideoSampleAllocatorEx
Allocates video samples that contain Direct3D 11 texture surfaces.
IMFVideoSampleAllocatorNotify
The callback for the IMFVideoSampleAllocatorCallback interface.
IMFVideoSampleAllocatorNotifyEx
The callback for the IMFVideoSampleAllocatorCallback interface.
IMFWorkQueueServices
Controls the work queues created by the Media Session.
IMFWorkQueueServicesEx
Extends the IMFWorkQueueServices interface.
IPlayToControl
Enables the PlayToConnection object to connect to a media element.
IPlayToControlWithCapabilities
Provides functionality for the IPlayToSource to determine the capabilities of the content.
IPlayToSourceClassFactory
Creates an instance of the PlayToSource object.
IWMCodecLeakyBucket
Configures the "leaky bucket" parameters on a video encoder.
IWMCodecOutputTimestamp
Gets the time stamp of the next video frame to be decoded.
IWMCodecPrivateData
Gets the private codec data that must be appended to the output media type. This codec data is required for properly decoding Windows Media Video content.
IWMCodecProps
Provides methods that retrieve format-specific codec properties.
IWMCodecStrings
Retrieves names and descriptive strings for codecs and formats.
IWMColorConvProps
Sets properties on the color converter DSP.
IWMResamplerProps
Sets properties on the audio resampler DSP.
IWMResizerProps
Sets properties on the video resizer DSP.
IWMSampleExtensionSupport
Configures codec support for sample extensions.
IWMVideoDecoderHurryup
Controls the speed of the video decoder.
IWMVideoDecoderReconBuffer
Note: This interface is obsolete and should not be used.
Manages reconstructed video frames.
IWMVideoForceKeyFrame
Forces the encoder to encode the current frame as a key frame.

 

Media Foundation Programming Reference