Méthode IAudioProcessingObject ::IsInputFormatSupported (audioenginebaseapo.h)

Cette méthode négocie avec le moteur audio Windows Vista pour établir un format de données pour le flux de données audio.

Syntaxe

HRESULT IsInputFormatSupported(
  [in, optional]  IAudioMediaType *pOppositeFormat,
  [in, optional]  IAudioMediaType *pRequestedInputFormat,
  [out, optional] IAudioMediaType **ppSupportedInputFormat
);

Paramètres

[in, optional] pOppositeFormat

Pointeur vers une interface IAudioMediaType . Ce paramètre est utilisé pour indiquer le format de sortie des données. La valeur de pOppositeFormat doit être définie sur NULL pour indiquer que le format de sortie peut être n’importe quel type.

[in, optional] pRequestedInputFormat

Pointeur vers une interface IAudioMediaType . Ce paramètre est utilisé pour indiquer le format d’entrée à vérifier.

[out, optional] ppSupportedInputFormat

Ce paramètre indique le format pris en charge le plus proche du format à vérifier.

Valeur retournée

Si l’appel s’est terminé correctement, le paramètre ppSupportedInputFormat renvoie un pointeur pRequestedInputFormat et la méthode IsInputFormatSupported retourne une valeur de S_OK. Sinon, cette méthode retourne l’un des codes d’erreur suivants :

Code de retour Description
S_FALSE
Le format de la paire de format d’entrée/sortie n’est pas pris en charge. ppSupportedInputFormat renvoie un nouveau format suggéré.
APOERR_FORMAT_NOT_SUPPORTED
Le format à vérifier n’est pas pris en charge. La valeur de ppSupportedInputFormat ne change pas.
E_POINTER
Pointeur non valide passé à la méthode . La valeur de ppSupportedInputFormat ne change pas.
Autres valeurs HRESULT
Ces conditions d’erreur supplémentaires sont suivies par le moteur audio.

Remarques

Il existe des différences dans l’implémentation de la IsInputFormatSupported méthode par les différentes API. Par exemple, avec certaines implémentations, la sortie ne peut être de type float que lorsque le format d’entrée est de type entier.

Pour lancer la négociation de format, le service audio définit d’abord la sortie de l’objet SAPO LFX sur le format float32 par défaut. Le service audio appelle ensuite la IAudioProcessingObject::IsInputFormatSupported méthode du sAPO LFX, suggère le format par défaut et surveille la réponse HRESULT de cette méthode. Si l’entrée de l’objet SAPO LFX peut prendre en charge le format suggéré, elle retourne S_OK, ainsi qu’une référence au format pris en charge. Si l’entrée de l’objet SAPO LFX ne peut pas prendre en charge le format suggéré, elle retourne S_FALSE avec une référence à un format qui correspond le plus à celui suggéré. Si l’objet SAPO LFX ne peut pas prendre en charge le format suggéré et n’a pas de correspondance étroite, il retourne APOERR_FORMAT_NOT_SUPPORTED. L’objet SAPO GFX fonctionne avec le format de sortie de l’objet SAPO LFX. Par conséquent, l’objet sAPO GFX n’est pas impliqué dans le processus de négociation de format.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Disponible avec les systèmes d’exploitation Windows Vista et ultérieurs.
Plateforme cible Universal
En-tête audioenginebaseapo.h
Bibliothèque Audioenginebaseapo.idl
IRQL Tous les niveaux