IamStreamConfig ::GetStreamCaps, 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 méthode GetStreamCaps récupère un ensemble de fonctionnalités de format.
Syntaxe
HRESULT GetStreamCaps(
[in] int iIndex,
[out] AM_MEDIA_TYPE **ppmt,
[out] BYTE *pSCC
);
Paramètres
[in] iIndex
Spécifie la capacité de format à récupérer, indexée à partir de zéro. Pour déterminer le nombre de fonctionnalités prises en charge par l’épingle, appelez la méthode IAMStreamConfig ::GetNumberOfCapabilities .
[out] ppmt
Adresse d’un pointeur vers une structure AM_MEDIA_TYPE . La méthode alloue la structure et la remplit avec un type de média.
[out] pSCC
Pointeur vers un tableau d’octets alloué par l’appelant. Pour la vidéo, utilisez la structure VIDEO_STREAM_CONFIG_CAPS (voir Remarques). Pour l’audio, utilisez la structure AUDIO_STREAM_CONFIG_CAPS . Pour déterminer la taille requise du tableau, appelez la méthode GetNumberOfCapabilities . La taille est retournée dans le paramètre piSize .
Valeur retournée
Retourne une valeur HRESULT . Les valeurs possibles sont les suivantes.
Code de retour | Description |
---|---|
|
L’index spécifié est trop élevé. |
|
Réussite. |
|
L’index n’est pas valide. |
|
Mémoire insuffisante. |
|
Valeur du pointeur NULL. |
|
La broche d’entrée n’est pas connectée. |
Remarques
Cette méthode retourne deux informations :
- Le paramètre pmt reçoit une structure de AM_MEDIA_TYPE renseignée, qui décrit un format de sortie pris en charge.
- Le paramètre pSCC reçoit une structure qui contient des informations de format supplémentaires. Pour la vidéo, pSCC reçoit une structure VIDEO_STREAM_CONFIG_CAPS . Pour l’audio, il reçoit une structure AUDIO_STREAM_CONFIG_CAPS .
Avant d’appeler SetFormat, vous pouvez modifier la structure AM_MEDIA_TYPE dans pmt, à l’aide des informations contenues dans pSCC. Par exemple, une broche audio peut retourner un type de média par défaut de 44 kHz, stéréo 16 bits dans le paramètre pmt . En fonction des valeurs retournées dans la structure AUDIO_STREAM_CONFIG_CAPS, vous pouvez modifier ce format en mono 8 bits avant d’appeler SetFormat.
La méthode alloue la mémoire pour la structure AM_MEDIA_TYPE retournée dans le paramètre pmt . L’appelant doit libérer la mémoire, y compris le bloc de format. Vous pouvez utiliser la fonction d’assistance DeleteMediaType dans la bibliothèque de classes de base. L’appelant doit allouer la mémoire pour le paramètre pSCC .
Sur certains filtres de compression, cette méthode échoue si la broche d’entrée du filtre n’est pas connectée.
Filtrer les développeurs : pour plus d’informations sur l’implémentation de cette méthode, consultez Exposition des formats de capture et de compression.
Exemples
L’exemple suivant récupère le premier format pris en charge (index zéro) sur une broche de sortie vidéo, puis définit ce format sur l’épingle.
C++ |
---|
int iCount, iSize ; BYTE *pSCC = NULL ; AM_MEDIA_TYPE *pmt ; |
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 |