WM ASF Writer Filter
Microsoft DirectShow 9.0 |
WM ASF Writer Filter
The WM ASF Writer is a wrapper filter for the writer object provided with the Windows Media™ Format SDK. The filter accepts a variable number of input streams and creates an Advanced Systems Format (ASF) file. The filter handles all compression and multiplexing (although the compression mechanism can be bypassed). You can use the WM ASF Writer in various scenarios including digital video (DV) capture, audio recompression, and conversion of Audio-Video Interleaved (AVI) or MPEG multimedia files for network streaming. This filter provides the only way to create Microsoft® Windows Media™ Audio and Windows Media Video files in Microsoft DirectShow.
For more information, see Creating ASF Files in DirectShow.
Filter interfaces | IAMFilterMiscFlags, IBaseFilter, IConfigAsfWriter, IConfigAsfWriter2, IFileSinkFilter2, IMediaSeeking, IPersistStream, IServiceProvider, ISpecifyPropertyPages
In addition, the filter exposes the following Windows Media Format SDK interfaces: IWMIndexer2, IWMHeaderInfo, IWMWriterAdvanced2 |
Input pin media types | Depends on the ASF profile. Typically uncompressed audio and video types, although the filter will accept compressed types if they match the ASF profile. |
Input pin interfaces | IAMStreamConfig, IAMWMBufferPass, IMemInputPin, IPin, IServiceProvider
In addition, the pin exposes the following Windows Media Format SDK interface: IWMStreamConfig2 (through IServiceProvider) |
Output pin media types | Not applicable. |
Output pin interfaces | Not applicable. |
Filter CLSID | CLSID_WMAsfWriter |
Property page CLSID | CLSID_AsfWriterProperties |
Executable | Qasf.dll |
Merit | MERIT_DO_NOT_USE |
Filter Category | Not specified |
Remarks
The filter requires the Windows Media Format Software Development Kit (SDK) and its underlying dependencies.
The number of input pins on the filter dependings on the profile or profile identifier of the ASF stream.
The input pins support one method from the IAMStreamConfig interface: IAMStreamConfig::GetFormat. All other methods return E_NOTIMPL. Call the GetFormat method to query the pin's destination compression format, which is defined by the current ASF profile. Use the IConfigAsfWriter interface to set the profile.
You can use the filter's IServiceProvider interface to get a pointer to the IWMWriterAdvanced2 interface, which is defined in the Windows Media Format SDK. You can use the IWMWriterAdvanced2 interface to control video deinterlacing when the source video is interlaced. To set the deinterlacing mode, call IWMWriterAdvanced2::SetInputSetting. For the dwInputNum parameter, use the zero-based index of the video input pin, as enumerated by the IEnumPins interface.
The following example shows how to query for this interface:
// Assume that pAsfWriter is a valid IBaseFilter pointer. IServiceProvider *pProvider = NULL; IWMWriterAdvanced2 *pWMWA2 = NULL; hr = pAsfWriter->QueryInterface( IID_IServiceProvider, (void**)&pProvider ); if (SUCCEEDED(hr)) { hr = pProvider->QueryService( IID_IWMWriterAdvanced2, IID_IWMWriterAdvanced2, (void**)&pWMWA2 ); pProvider->Release(); if (SUCCEEDED(hr)) { // Use pWMWA2. (Not shown.) pWMWA2->Release(); } }
Applications should not use any of the IWMWriterAdvanced methods that the IWMWriterAdvanced2 interface inherits. Calling any these methods could interere with the operation of the filter.
The only file-writing mode supported by this filter is AM_FILE_OVERWRITE. See IFileSinkFilter2::GetMode.
When the Windows Media Format SDK runtime sends WMT_STATUS messages to the WM ASF Writer filter, the filter forwards them as EC_WMT_EVENT events.
See Also