Exemple de filtre de capture

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

Notes

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

 

Le filtre Sample Grabber permet de récupérer des échantillons à mesure qu’ils passent dans le graphique de filtre. Il s’agit d’un filtre de transformation avec une broche d’entrée et une broche de sortie. Il transmet tous les exemples en aval sans modification, de sorte que vous pouvez les insérer dans un graphique de filtre sans modifier le flux de données. Votre application peut ensuite récupérer des exemples individuels à partir du filtre en appelant des méthodes sur l’interface ISampleGrabber .

Si vous souhaitez récupérer des exemples sans afficher les données, connectez le filtre Sample Grabber au filtre Renderer Null .

Étiquette Valeur
Filtrer les interfaces IBaseFilter, ISampleGrabber
Types de supports de broche d’entrée N’importe quel type de média.
Interfaces de broche d’entrée IMemInputPin, IPin, IQualityControl
Types de supports de broche de sortie N’importe quel type de média. Correspond au type de média d’entrée.
Interfaces de broche de sortie IMediaPosition, IMediaSeeking, IPin, IQualityControl
Filtrer le CLSID CLSID_SampleGrabber
CLSID page de propriétés Aucune page de propriétés.
Exécutable Qedit.dll
Mérite MERIT_DO_NOT_USE
Catégorie de filtre CLSID_LegacyAmFilterCategory

 

Notes

Pour utiliser ce filtre, ajoutez-le au graphique de filtre et appelez ISampleGrabber::SetMediaType avec le type de média souhaité. Cette méthode spécifie le type de média pour les connexions de broche d’entrée et de sortie du filtre. Ensuite, connectez le filtre à d’autres filtres dans le graphique.

Si vous appelez ISampleGrabber::SetBufferSamples avec la valeur TRUE, le filtre met en mémoire tampon chaque échantillon qu’il reçoit avant de le transmettre en aval. Appelez la méthode ISampleGrabber::GetCurrentBuffer pour récupérer le contenu actuel de la mémoire tampon. Vous pouvez également appeler ISampleGrabber::SetCallback pour que le filtre appelle une fonction de rappel chaque fois qu’il reçoit un exemple.

Le filtre présente les limitations suivantes pour les formats vidéo :

  • Il ne prend pas en charge les types de vidéos avec une orientation descendante ( biHeight négatif).
  • Il ne prend pas en charge la structure de format VIDEOINFOHEADER2 (type de format égal à FORMAT_VideoInfo2).
  • Il rejette tout type de vidéo où la foulée de surface ne correspond pas à la largeur de la vidéo.

Par conséquent, l’exemple de capture ne se connecte pas au convertisseur de mixage vidéo (VMR) pour certains types de vidéo.

Configuration requise

Condition requise Valeur
En-tête
Qedit.h

Voir aussi

DirectShow Editing Services Objects

Utilisation de l’exemple de capture