Partager via


IAMStreamControl ::StopAt, 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 StopAt méthode indique à l’épingle quand arrêter la remise des données.

Syntaxe

HRESULT StopAt(
  [in] const REFERENCE_TIME *ptStop,
  [in] BOOL                 bSendExtra,
  [in] DWORD                dwCookie
);

Paramètres

[in] ptStop

Pointeur vers une valeur REFERENCE_TIME qui spécifie le moment où la broche doit cesser de fournir des données. Si la valeur est MAXLONGLONG (0x7FFFFFFFFFFFFFFF), la méthode annule toute demande d’arrêt précédente. Si psStop a lavaleur NULL, la broche s’arrête immédiatement.

Pour les broches d’aperçu, seules les valeurs NULL et MAXLONGLONG sont valides, car les broches d’aperçu n’horodatent pas les exemples qu’elles fournissent.

[in] bSendExtra

Spécifie une valeur booléenne qui indique s’il faut envoyer un exemple supplémentaire après l’heure d’arrêt planifiée. Si la valeur est TRUE, le code pin envoie un exemple supplémentaire.

[in] dwCookie

Spécifie une valeur à envoyer avec la notification de début. Consultez la section Notes.

Valeur de retour

Si la méthode réussit, la valeur de retour est S_OK. Sinon, retourne une valeur HRESULT indiquant la cause de la défaillance.

Remarques

Si le paramètre dwCookie n’est pas égal à zéro, le code pin envoie un événement EC_STREAM_CONTROL_STOPPED lorsqu’il cesse de fournir des données. Le premier paramètre d’événement est un pointeur vers l’interface IPin de la broche, et le second est la valeur de dwCookie. Si ptStop a la valeur NULL ou MAXLONGLONG, aucun événement n’est envoyé et la valeur de dwCookie est ignorée.

Dans la capture vidéo, vous appelez généralement cette méthode sur la broche de sortie du filtre de capture et la broche d’entrée du multiplexeur. L’application doit attendre l’événement stop du multiplexeur. Cela garantit que le filtre de capture envoie le bon nombre d’images, tout en garantissant que toutes les images atteignent le multiplexeur. En outre, définissez le paramètre bSendExtra sur TRUE pour la broche de capture, mais SUR FALSE pour la broche du multiplexeur. Cela entraîne l’envoi d’une trame supplémentaire par le filtre de capture. Le multiplexeur s’appuie sur les horodatages de la broche de capture. Par conséquent, si l’image supplémentaire n’est pas envoyée, le multiplexeur attendra indéfiniment l’heure d’arrêt. Lorsque le multiplexeur reçoit le cadre supplémentaire, il l’ignore.

Cette méthode gère les conditions limites suivantes :

  • Si l’heure d’arrêt se situe entre les heures de début et d’arrêt d’un exemple, l’épingle remet cet exemple.
  • Si l’heure de début est égale à l’heure d’arrêt, l’épingle fournit un exemple.
MAXLONGLONG est la plus grande valeur REFERENCE_TIME possible. Dans la bibliothèque de classes de base, elle est également définie comme constante MAX_TIME.

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

Voir aussi

Codes d’erreur et de réussite

IAMStreamControl Interface