Méthode CBaseAllocator.Alloc

[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 Alloc méthode alloue de la mémoire pour les mémoires tampons.

Syntaxe

virtual HRESULT Alloc();

Paramètres

Cette méthode n’a aucun paramètre.

Valeur retournée

Retourne l’une des valeurs HRESULT suivantes.

Code de retour Description
S_FALSE
La configuration requise pour la mémoire tampon n’a pas changé.
S_OK
La configuration requise pour la mémoire tampon a changé.
VFW_E_SIZENOTSET
Les exigences de mémoire tampon n’ont pas été définies.

Notes

Cette méthode est appelée par la méthode CBaseAllocator::Commit .

Dans la classe de base, cette méthode n’alloue pas de mémoire. Elle retourne une erreur si les exigences de la mémoire tampon n’ont pas été définies, S_FALSE si les exigences n’ont pas changé et S_OK si les exigences ont changé.

Une classe dérivée doit remplacer cette méthode pour effectuer l’allocation de mémoire réelle. En règle générale, la classe dérivée effectue les étapes suivantes :

  1. Appelez l’implémentation de la classe de base pour déterminer si la mémoire a vraiment besoin d’être allouée.
  2. Allouez de la mémoire.
  3. Créez des objets CMediaSample qui contiennent des blocs de mémoire à partir de l’étape 2.
  4. Ajoutez chaque objet CMediaSample à la liste des exemples gratuits (CBaseAllocator::m_lFree).

Pour obtenir un exemple, consultez CMemAllocator::Alloc.

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

CBaseAllocator, classe