Méthode CBaseOutputPin.DecideAllocator

[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 DecideAllocator méthode sélectionne un allocateur de mémoire.

Syntaxe

virtual HRESULT DecideAllocator(
   IMemInputPin  *pPin,
   IMemAllocator **pAlloc
);

Paramètres

pPin

Pointeur vers l’interface IMemInputPin de la broche d’entrée.

pAlloc

Adresse d’une variable qui reçoit un pointeur vers l’interface IMemAllocator de l’allocateur.

Valeur renvoyée

Retourne S_OK en cas de réussite, ou une valeur HRESULT indiquant la cause de l’erreur.

Notes

Cette méthode est appelée à la fin du processus de connexion d’épingle. Il permet d'effectuer les opérations suivantes :

  1. Appelle la méthode IMemInputPin::GetAllocatorRequirements pour récupérer les exigences de mémoire tampon de la broche d’entrée, le cas échéant.
  2. Appelle la méthode IMemInputPin::GetAllocator pour demander un allocateur à partir de la broche d’entrée. Si la broche d’entrée ne fournit pas d’allocateur, la broche de sortie en crée un en appelant la méthode de classe CBaseOutputPin::InitAllocator .
  3. Appelle la méthode de classe CBaseOutputPin::D ecideBufferSize , qui définit les propriétés de l’allocateur. Il s’agit d’une méthode virtuelle pure; la classe dérivée doit l’implémenter.
  4. Appelle la méthode IMemInputPin::NotifyAllocator , qui notifie la broche d’entrée de l’allocateur utilisé.

Configuration requise

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

Voir aussi

CBaseOutputPin, classe