Condividi tramite


Thread e sezioni critiche

[La funzionalità associata a questa pagina, DirectShow, è una funzionalità legacy. È stata sostituita da MediaPlayer, IMFMediaEnginee Acquisizione audio/video in Media Foundation. Queste funzionalità sono state ottimizzate per Windows 10 e Windows 11. Microsoft consiglia vivamente di usare un nuovo codice MediaPlayer, IMFMediaEngine e Acquisizione audio/video 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.

Questa sezione descrive il threading nei filtri DirectShow e i passaggi da eseguire per evitare arresti anomali o deadlock in un filtro personalizzato.

Gli esempi in questa sezione usano pseudocodice per illustrare il codice che sarà necessario scrivere. Presuppongono che un filtro personalizzato usi classi derivate dalle classi di base DirectShow, come indicato di seguito:

  • CMyInputPin: derivato da CBaseInputPin.
  • CMyOutputPin: derivato da CBaseOutputPin.
  • CMyFilter: derivato da CBaseFilter.
  • CMyInputAllocator: allocatore del pin di input, derivato da CMemAllocator. Non tutti i filtri devono avere un allocatore personalizzato. Per molti filtri, la classe CMemAllocator è sufficiente.

Questa sezione contiene gli argomenti seguenti.

flusso di dati per sviluppatori di filtri

scrittura di filtri DirectShow