Riepilogo del threading filtro
[La funzionalità associata a questa pagina, DirectShow, è una funzionalità legacy. È stata sostituita da MediaPlayer, FMMediaEngine e Audio/Video Capture in Media Foundation. Queste funzionalità sono state ottimizzate per Windows 10 e Windows 11. Microsoft consiglia vivamente che il nuovo codice usi MediaPlayer, FMMediaEngine e Audio/Video Capture in Media Foundation anziché DirectShow, quando possibile. Microsoft suggerisce che il codice esistente che usa le API legacy venga riscritto per usare le nuove API, se possibile.
I metodi seguenti vengono chiamati nel thread di streaming:
- IMemInputPin::Receive
- IMemInputPin::ReceiveMultiple
- IPin::EndOfStream
- IPin::NewSegment
- IMemAllocator::GetBuffer
I metodi seguenti vengono chiamati nel thread dell'applicazione:
- Modifiche allo stato: IBaseFilter::JoinFilterGraph, IMediaFilter::P ause, IMediaFilter::Run, IMediaFilter::Stop, IQualityControl::SetSink.
- Orologio di riferimento: IMediaFilter::GetSyncSource, IMediaFilter::SetSyncSource.
- Operazioni di pin: IBaseFilter::FindPin, IPin::Connect, IPin::ConnectedTo, IPin::ConnectionMediaType, IPin::D isconnect, IPin::ReceiveConnection.
- Funzioni allocator: IMemInputPin::GetAllocator, IMemInputPin::NotifyAllocator.
- Scaricamento: IPin::BeginFlush, IPin::EndFlush.
L'elenco non è completo. Quando si implementa un filtro, è necessario considerare quali metodi modificano lo stato del filtro e quali metodi eseguono operazioni di streaming.