WM ASF Reader Filter
The WM ASF Reader is a wrapper filter for the reader object provided with the Windows Media Format SDK and is the recommended source filter for file playback of Windows Media-based content and content created with any of the Microsoft MPEG-4 Encoder DMOs.
|Filter interfaces||IBaseFilter, IFileSourceFilter, IAMExtendedSeeking, IServiceProviderIn addition, the filter exposes the following Windows Media Format SDK interfaces: IWMHeaderInfo, IWMReaderAdvanced, IWMReaderAdvanced2, IWMDRMReader (through IServiceProvider)
|Input pin media types||Not applicable.|
|Input pin interfaces||Not applicable.|
|Output pin media types||MEDIATYPE_Video, MEDIATYPE_Audio, MEDIATYPE_ScriptCommand, MEDIATYPE_FileTransfer|
|Output pin interfaces||IMediaSeeking, IAMWMBufferPass, IServiceProviderIn addition, the pins expose the following Windows Media Format SDK interfaces: IWMStreamConfig2 (through IServiceProvider)
|Property Page CLSID||No property page.|
When given the name of an ASF file or a URL, the WM ASF Reader reads the compressed content, parses the compressed streams, and exposes an output pin for each one. This filter connects downstream to audio and/or video codecs filters, which do the decompression. Seeking is supported if the ASF file is seekable. The ASF Reader time stamps the samples before sending them downstream, but it does not modify the time stamps in any way.
Playback at speeds other than 1.0 (as specified in IMediaSeeking::SetRate) is not supported.
When the Windows Media Format SDK runtime sends WMT_STATUS messages to the WM ASF Writer filter, the filter forwards any messages related to DRM license acquisition as EC_WMT_EVENT events. For more information, see Reading DRM-Protected ASF Files in DirectShow.
The WM ASF Reader partially implements the IWMReaderAdvanced and IWMReaderAdvanced2 interfaces in order to give applications access to the informational methods on the reader object. The filter's implementation simply passes the calls through to the interface on the reader object. The streaming methods are not implemented because the filter must have complete control over the streaming process. The following methods are implemented: