Méthode ISampleGrabber::SetMediaType

[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.]

Notes

[Déconseillé. Cette API peut être supprimée des versions ultérieures de Windows.]

 

La SetMediaType méthode spécifie le type de média pour la connexion sur la broche d’entrée de l’exemple Grabber.

Syntaxe

HRESULT SetMediaType(
   const AM_MEDIA_TYPE *pType
);

Paramètres

pType

Le pointeur vers une structure AM_MEDIA_TYPE spécifie le type de média requis. Il n’est pas nécessaire de définir tous les membres de la structure ; Pour plus d’informations, consultez Remarques.

Valeur renvoyée

Retourne S_OK.

Notes

Par défaut, l’exemple de capture n’a pas de type de média préféré. Pour vous assurer que l’exemple Grabber se connecte au filtre approprié, appelez cette méthode avant de générer le graphe de filtre.

Cette méthode limite la plage de types de médias que le filtre acceptera. Lorsque le filtre se connecte, il tente de faire correspondre le type de média donné dans pType. Pour ce faire, il compare les GUID de type principal, de sous-type et de format, dans cet ordre. Pour chacun de ces GUID, si pType a la valeur GUID_NULL, l’exemple Grabber accepte le type de média sans vérification supplémentaire. Si pType a une autre valeur, l’exemple De capture le compare au GUID dans le type de connexion. À moins que les deux GUID ne correspondent exactement, l’exemple Grabber rejette la connexion.

Pour les types de médias vidéo, l’exemple De capture ignore le bloc de format. Par conséquent, il accepte n’importe quelle taille et fréquence d’images vidéo. Lorsque vous appelez , définissez SetMediaTypele bloc de format (pbFormat) sur NULL et la taille (cbFormat) sur zéro. Pour les types de supports audio, l’exemple de capture examine la structure WAVEFORMATEX et nécessite l’autre filtre pour se connecter à ce format, sauf si le bloc de format dans pType est NULL, ou si la balise de format est WAVE_FORMAT_PCM et que les autres membres de structure sont zéro.

Exemple 1 :

  • Type principal : MEDIATYPE_Video
  • Sous-type : GUID_NULL
  • Type de format : GUID_NULL

L’exemple Grabber accepte n’importe quel type de vidéo où le type principal est égal à MEDIATYPE_Video. Il ne case activée pas le sous-type.

Exemple 2 :

  • Type principal : MEDIATYPE_Video
  • Sous-type : MEDIASUBTYPE_RGB24
  • Type de format : GUID_NULL

À présent, l’exemple de capture case activée le sous-type et n’accepte que la vidéo RVB 24.

Limitations: Quel que soit le type que vous définissez, l’exemple de filtre de capture rejette tous les types de vidéos avec une orientation descendante ( biHeight négatif) ou avec un type de format de FORMAT_VideoInfo2. Dans ce cas, bien que la SetMediaType méthode réussisse, le filtre ne se connecte pas.

Notes

Le fichier d’en-tête Qedit.h n’est pas compatible avec les en-têtes Direct3D ultérieurs à la version 7.

 

Notes

Pour obtenir Qedit.h, téléchargez la mise à jour Microsoft Windows SDK pour Windows Vista et .NET Framework 3.0. Qedit.h n’est pas disponible dans le Microsoft Windows SDK pour Windows 7 et .NET Framework 3.5 Service Pack 1.

 

Configuration requise

Condition requise Valeur
En-tête
Qedit.h
Bibliothèque
Strmiids.lib

Voir aussi

Utilisation de l’exemple Grabber

ISampleGrabber, interface