Classe CBaseOutputPin
[La fonctionnalité associée à cette page, DirectShow, est une fonctionnalité héritée. Il a été remplacé par MediaPlayer, IMFMediaEngine et Audio/Video Capture in 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 Audio/Video Capture dans Media Foundation au lieu de DirectShow, si 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.]
La CBaseOutputPin
classe est une classe de base abstraite qui implémente une broche de sortie.
Cette classe dérive de CBasePin. Il diffère de CBasePin sur les points suivants :
- Il se connecte uniquement aux broches d’entrée qui prennent en charge l’interface IMemInputPin .
- Il prend en charge le transport de la mémoire locale via l’interface IMemAllocator .
- Il rejette les notifications de fin de flux, de vidage et de nouveau segment. (Celles-ci ne doivent pas être envoyées à une broche de sortie.)
- Il fournit des méthodes pour la livraison d’échantillons en aval.
Lorsque la broche se connecte, elle demande un allocateur de mémoire à partir de la broche d’entrée. À défaut, il crée un objet d’allocateur. La broche de sortie est chargée de définir les propriétés de l’allocateur. Il le fait par le biais de la méthode virtuelle pure CBaseOutputPin::D ecideBufferSize. Remplacez cette méthode dans votre classe dérivée. Si la broche d’entrée a des exigences de mémoire tampon, elles sont passées à la méthode DecideBufferSize .
Appelez la méthode CBaseOutputPin::GetDeliveryBuffer pour obtenir un exemple de média vide. Appelez la méthode CBaseOutputPin::D eliver pour remettre des exemples en aval.
Votre classe dérivée doit remplacer la méthode CBasePin::CheckMediaType virtuelle pure pour valider le type de média pendant les connexions d’épingle.
Variables de membre protégé | Description |
---|---|
m_pAllocator | Pointeur vers l’allocateur de mémoire. |
m_pInputPin | Pointeur vers la broche d’entrée connectée à cette broche. |
Méthodes publiques | Description |
CBaseOutputPin | Méthode du constructeur. |
CompleteConnect | Termine une connexion à une broche d’entrée. Virtuel. |
DecideAllocator | Sélectionne un allocateur de mémoire. Virtuel. |
GetDeliveryBuffer | Récupère un exemple de média qui contient une mémoire tampon vide. Virtuel. |
Remettre | Remet un exemple de média à la broche d’entrée connectée. Virtuel. |
InitAllocator | Crée un allocateur de mémoire. Virtuel. |
CheckConnect | Détermine si une connexion d’épingle est appropriée. |
BreakConnect | Libère l’épingle d’une connexion. |
Actif | Avertit l’épingle que le filtre est maintenant actif. |
Inactif | Avertit l’épingle que le filtre n’est plus actif. |
DeliverEndOfStream | Remet une notification de fin de flux à la broche d’entrée connectée. Virtuel. |
DeliverBeginFlush | Demande à la broche d’entrée connectée de commencer une opération de vidage. Virtuel. |
DeliverEndFlush | Demande à la broche d’entrée connectée de mettre fin à une opération de vidage. Virtuel. |
DeliverNewSegment | Remet une notification de nouveau segment à la broche d’entrée connectée. Virtuel. |
Méthodes virtuelles pures | Description |
DecideBufferSize | Définit les exigences de mémoire tampon. |
IPin, méthodes | Description |
BeginFlush | Commence une opération de vidage. |
EndFlush | Met fin à une opération de vidage. |
EndOfStream | Avertit l’épingle qu’aucune donnée supplémentaire n’est attendue. |
Configuration requise
Condition requise | Valeur |
---|---|
En-tête |
|
Bibliothèque |
|