IAMBufferNegotiation ::SuggestAllocatorProperties, méthode (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 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 SuggestAllocatorProperties méthode informe l’épingle des propriétés d’allocateur préférées de l’application. Appelez cette méthode avant la connexion de l’épingle.

Syntaxe

HRESULT SuggestAllocatorProperties(
  [in] const ALLOCATOR_PROPERTIES *pprop
);

Paramètres

[in] pprop

Pointeur vers une structure ALLOCATOR_PROPERTIES qui contient les propriétés demandées. Une valeur négative pour tout membre indique que l’épingle doit utiliser son paramètre par défaut pour cette propriété.

Valeur retournée

Retourne une valeur HRESULT . Les valeurs possibles sont les suivantes.

Code de retour Description
S_OK
Réussite.
E_FAIL
Échec.
E_POINTER
Argument pointeur NULL .
VFW_E_ALREADY_CONNECTED
L’épingle est déjà connectée.

Remarques

Si les deux broches de la connexion exposent l’interface IAMBufferNegotiation , appelez cette méthode sur chaque broche pour vous assurer qu’une broche ne remplace pas l’autre.

Pour demander un nombre particulier de mémoires tampons, définissez le membre cBuffers de la structure ALLOCATOR_PROPERTIES . Pour demander une taille de mémoire tampon particulière, définissez le membre cbBuffer . Une application ne doit généralement pas spécifier l’alignement ou le préfixe. Si le nombre de mémoires tampons ou la taille de chaque mémoire tampon est trop faible, le graphique de filtre peut supprimer des échantillons.

Exemples

C++
ALLOCATOR_PROPERTIES AllocProp;
AllocProp.cbAlign = -1;  // -1 means no preference.
AllocProp.cbBuffer = dwBytesPerSec *  dwLatencyInMilliseconds / 1000;
AllocProp.cbPrefix = -1;
AllocProp.cBuffers = -1;
pIAMBufferNegotiation->SuggestAllocatorProperties(&AllocProp);

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)
Bibliothèque Strmiids.lib

Voir aussi

Codes d’erreur et de réussite

IAMBufferNegotiation, interface