CBaseOutputPin, classe

cbaseoutputpin class hierarchy

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 à l’égard des 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 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 fournir des échantillons en aval.

Lorsque l’épingle se connecte, elle demande un allocateur de mémoire à partir de la broche d’entrée. En cas d’échec, il crée un nouvel objet allocateur. L’épingle de sortie est chargée de définir les propriétés de l’allocateur. Il effectue cette opération via 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 en matière de mémoire tampon, elles sont transmises à 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 fournir des échantillons 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ées 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 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.
Livrer Fournit 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 à partir 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 la configuration requise pour la mémoire tampon.
Méthodes IPin Description
BeginFlush Commence une opération de vidage.
EndFlush Termine une opération de vidage.
EndOfStream Avertit l’épingle qu’aucune donnée supplémentaire n’est attendue.

Spécifications

Condition requise Valeur
En-tête
Amfilter.h (inclure Flux.h)
Bibliothèque
Strmbase.lib (builds de vente au détail) ;
Strmbasd.lib (builds de débogage)