Summary of Filter Threading 
The following methods are called on the streaming thread:
The following methods are called on the application thread:
	- State changes: IBaseFilter::JoinFilterGraph, IMediaFilter::Pause, IMediaFilter::Run, IMediaFilter::Stop, IQualityControl::SetSink.
 
	- Reference clock: IMediaFilter::GetSyncSource, IMediaFilter::SetSyncSource.
 
	- Pin operations: IBaseFilter::FindPin, IPin::Connect, IPin::ConnectedTo, IPin::ConnectionMediaType, IPin::Disconnect, IPin::ReceiveConnection.
 
	- Allocator functions: IMemInputPin::GetAllocator, IMemInputPin::NotifyAllocator.
 
	- Flushing: IPin::BeginFlush, IPin::EndFlush.
 
This list is not exhaustive. When you implement a filter, you must consider which methods change the filter state, and which methods perform streaming operations.