Zusammenfassung des Filterthreadings
[Das dieser Seite zugeordnete Feature DirectShow ist ein Legacyfeature. Es wurde von MediaPlayer, IMFMediaEngine und Audio/Video Capture in Media Foundation abgelöst. Diese Features wurden für Windows 10 und Windows 11 optimiert. Microsoft empfiehlt dringend, dass neuer Code mediaPlayer, IMFMediaEngine und Audio/Video Capture in Media Foundation anstelle von DirectShow verwendet, wenn möglich. Microsoft schlägt vor, dass vorhandener Code, der die Legacy-APIs verwendet, so umgeschrieben wird, dass nach Möglichkeit die neuen APIs verwendet werden.]
Die folgenden Methoden werden im Streamingthread aufgerufen:
- IMemInputPin::Receive
- IMemInputPin::ReceiveMultiple
- IPin::EndOfStream
- IPin::NewSegment
- IMemAllocator::GetBuffer
Die folgenden Methoden werden im Anwendungsthread aufgerufen:
- Zustandsänderungen: IBaseFilter::JoinFilterGraph, IMediaFilter::P ause, IMediaFilter::Run, IMediaFilter::Stop, IQualityControl::SetSink.
- Referenzuhr: IMediaFilter::GetSyncSource, IMediaFilter::SetSyncSource.
- Anheftvorgänge: IBaseFilter::FindPin, IPin::Connect, IPin::ConnectedTo, IPin::ConnectionMediaType, IPin::D isconnect, IPin::ReceiveConnection.
- Allocator-Funktionen: IMemInputPin::GetAllocator, IMemInputPin::NotifyAllocator.
- Leerung: IPin::BeginFlush, IPin::EndFlush.
Diese Liste ist nicht vollständig. Wenn Sie einen Filter implementieren, müssen Sie berücksichtigen, welche Methoden den Filterstatus ändern und welche Methoden Streamingvorgänge ausführen.