Partager via


Threads et sections critiques

[La fonctionnalité associée à cette page, DirectShow, est une fonctionnalité héritée. Il a été remplacé par MediaPlayer, IMFMediaEngineet audio/vidéo capture dans Media Foundation. Ces fonctionnalités ont été optimisées pour Windows 10 et Windows 11. Microsoft recommande vivement que le nouveau code utilise MediaPlayer, IMFMediaEngine et capture audio/vidéo dans Media Foundation au lieu de directShow, lorsque cela est possible. Microsoft suggère que le code existant qui utilise les API héritées soit réécrit pour utiliser les nouvelles API si possible.]

Cette section décrit le threading dans les filtres DirectShow et les étapes à suivre pour éviter les blocages ou blocages dans un filtre personnalisé.

Les exemples de cette section utilisent le pseudocode pour illustrer le code que vous devez écrire. Ils supposent qu’un filtre personnalisé utilise des classes dérivées des classes de base DirectShow, comme suit :

  • CMyInputPin : dérivé de CBaseInputPin.
  • CMyOutputPin : dérivé de CBaseOutputPin.
  • CMyFilter : dérivé de CBaseFilter.
  • CMyInputAllocator : l’allocateur de l’épingle d’entrée, dérivé de CMemAllocator. Tous les filtres n’ont pas besoin d’un allocateur personnalisé. Pour de nombreux filtres, la classe CMemAllocator est suffisante.

Cette section contient les rubriques suivantes.

flux de données pour les développeurs de filtres

écriture de filtres DirectShow