IAMStreamConfig ::SetFormat, 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 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.]
La SetFormat
méthode définit le format de sortie sur la broche.
Syntaxe
HRESULT SetFormat(
[in] AM_MEDIA_TYPE *pmt
);
Paramètres
[in] pmt
Pointeur vers une structure AM_MEDIA_TYPE qui spécifie le nouveau format.
Valeur retournée
Retourne une valeur HRESULT . Les valeurs possibles sont les suivantes.
Code de retour | Description |
---|---|
|
Réussite. |
|
Mémoire insuffisante. |
|
Valeur du pointeur NULL. |
|
Ce type de média n’est pas valide. |
|
La broche d’entrée n’est pas connectée. |
|
Impossible de définir le type ; le filtre n’est pas arrêté. |
|
Impossible de définir le type ; le filtre n’est pas arrêté. |
Remarques
Cette méthode spécifie le format de la broche de sortie. Si la broche n’est pas connectée, elle utilise ce format pour sa prochaine connexion. Si le code pin est déjà connecté, il tente de se reconnecter avec ce format. La méthode peut échouer si l’autre broche rejette le nouveau type.
Si cette méthode réussit, les appels suivants à la méthode IPin ::EnumMediaTypes retournent le nouveau type, et aucun autre.
Sur la plupart des filtres, cette méthode échoue si le filtre est suspendu ou en cours d’exécution. Sur certains filtres de compression, la méthode échoue si la broche d’entrée du filtre n’est pas connectée.
Avec certains filtres, vous pouvez appeler cette méthode avec la valeur NULL pour réinitialiser le format par défaut de l’épingle.
Développeurs de filtres : les remarques suivantes décrivent comment implémenter cette méthode :
Si la broche de sortie n’est pas connectée et que la broche prend en charge le type de média spécifié, retournez S_OK. Stockez le type de média et proposez-le comme numéro de format zéro dans la méthode CBasePin ::GetMediaType . Ne proposez pas d’autres formats et refusez d’autres formats dans la méthode CBasePin ::CheckMediaType .
Si la broche est déjà connectée et que la broche prend en charge le type de média, reconnectez-la avec ce type. Si l’autre broche rejette le nouveau type, retournez VFW_E_INVALIDMEDIATYPE et restaurez la connexion d’origine.
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 |