Interface IMemAllocator (strmif.h)

[La fonctionnalité associée à cette page, DirectShow, est une fonctionnalité héritée. Il a été remplacé par MediaPlayer, IMFMediaEngine et Audio/Video Capture dans Media Foundation. Ces fonctionnalités ont été optimisées pour Windows 10 et Windows 11. Microsoft recommande vivement au nouveau code d’utiliser MediaPlayer, IMFMediaEngine et La 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.]

L’interface IMemAllocator alloue des exemples multimédias pour déplacer des données entre des broches.

Cette interface est utilisée par des broches qui partagent des allocateurs, lorsque la broche d’entrée expose l’interface IMemInputPin . Les broches négocient la broche qui fournira l’allocateur. L’allocateur est utilisé pour allouer des mémoires tampons, récupérer des mémoires tampons vides et libérer des mémoires tampons. Tous les filtres ne créent pas leur propre allocateur. Par conséquent, un seul filtre peut être utilisé par plusieurs filtres. Pour plus d’informations, consultez Comment les filtres se connectent.

Les applications n’utilisent généralement pas cette interface.

Pour utiliser un allocateur, effectuez les étapes suivantes :

  1. Appelez la méthode IMemAllocator ::SetProperties pour spécifier les exigences de mémoire tampon, y compris le nombre de mémoires tampons et la taille de chaque mémoire tampon.
  2. Appelez la méthode IMemAllocator ::Commit pour allouer les mémoires tampons.
  3. Appelez la méthode IMemAllocator ::GetBuffer pour récupérer des exemples multimédias. Cette méthode est bloquée jusqu’à ce que l’exemple suivant soit disponible.
  4. Lorsque vous avez terminé avec chaque exemple, appelez la méthode IUnknown ::Release sur l’exemple. L’exemple n’est pas supprimé lorsque son nombre de références atteint zéro. Au lieu de cela, l’exemple retourne à la liste gratuite de l’allocator.
  5. Lorsque vous avez terminé d’utiliser l’allocateur, appelez la méthode IMemAllocator ::D ecommit pour libérer la mémoire pour les mémoires tampons.

Héritage

L’interface IMemAllocator hérite de l’interface IUnknown. IMemAllocator a également les types de membres suivants :

Méthodes

L’interface IMemAllocator a ces méthodes.

 
IMemAllocator ::Commit

La méthode Commit alloue la mémoire tampon.
IMemAllocator ::D ecommit

La méthode Decommit libère la mémoire tampon.
IMemAllocator ::GetBuffer

La méthode GetBuffer récupère un exemple de média qui contient une mémoire tampon vide.
IMemAllocator ::GetProperties

La méthode GetProperties récupère le nombre de mémoires tampons créées par l’allocateur et les propriétés de la mémoire tampon.
IMemAllocator ::ReleaseBuffer

La méthode ReleaseBuffer libère un exemple multimédia.
IMemAllocator ::SetProperties

La méthode SetProperties spécifie le nombre de mémoires tampons à allouer et la taille de chaque mémoire tampon.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 2000 Professionnel [applications de bureau uniquement]
Serveur minimal pris en charge Windows 2000 Server [applications de bureau uniquement]
Plateforme cible Windows
En-tête strmif.h (include Dshow.h)