筛选器线程处理摘要
[与此页面关联的功能 DirectShow 是一项旧功能。 它已被 MediaPlayer、 IMFMediaEngine 和 媒体基金会中的音频/视频捕获取代。 这些功能已针对Windows 10和Windows 11进行了优化。 Microsoft 强烈建议新代码尽可能使用 MediaPlayer、 IMFMediaEngine 和 Media Foundation 中的音频/视频捕获 ,而不是 DirectShow。 如果可能,Microsoft 建议重写使用旧 API 的现有代码以使用新 API。]
在流式处理线程上调用以下方法:
- IMemInputPin::Receive
- IMemInputPin::ReceiveMultiple
- IPin::EndOfStream
- IPin::NewSegment
- IMemAllocator::GetBuffer
在应用程序线程上调用以下方法:
- 状态更改: IBaseFilter::JoinFilterGraph、 IMediaFilter::P ause、 IMediaFilter::Run、 IMediaFilter::Stop、 IQualityControl::SetSink。
- 参考时钟: IMediaFilter::GetSyncSource、 IMediaFilter::SetSyncSource。
- 固定操作: IBaseFilter::FindPin、 IPin::Connect、 IPin::ConnectedTo、 IPin::ConnectionMediaType、 IPin::D isconnect、 IPin::ReceiveConnection。
- 分配器函数: IMemInputPin::GetAllocator、 IMemInputPin::NotifyAllocator。
- 刷新: IPin::BeginFlush、 IPin::EndFlush。
此列表并未囊括所有方式。 实现筛选器时,必须考虑哪些方法会更改筛选器状态,以及哪些方法执行流式处理操作。