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.
- les threads de streaming et d’application
- suspension de
- réception et livraison d’exemples
- remettre la fin du de flux
- vidage des données
- arrêter
- obtenir des mémoires tampons
- threads de diffusion en continu et le gestionnaire de graphiques de filtre
- résumé du de filtrage de threads
Rubriques connexes
-
flux de données pour les développeurs de filtres