Freigeben über


IAMStreamControl::StopAt-Methode (strmif.h)

[Das dieser Seite zugeordnete Feature DirectShow ist ein Legacyfeature. Es wurde von MediaPlayer, IMFMediaEngine und Audio/Video Capture in Media Foundation abgelöst. Diese Features wurden für Windows 10 und Windows 11 optimiert. Microsoft empfiehlt dringend, dass neuer Code mediaPlayer, IMFMediaEngine und Audio/Video Capture in Media Foundation anstelle von DirectShow verwendet, wenn möglich. Microsoft schlägt vor, dass vorhandener Code, der die Legacy-APIs verwendet, so umgeschrieben wird, dass nach Möglichkeit die neuen APIs verwendet werden.]

Die StopAt -Methode informiert den Pin, wann die Übermittlung von Daten beendet werden soll.

Syntax

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

Parameter

[in] ptStop

Zeiger auf einen REFERENCE_TIME Wert, der angibt, wann der Pin keine Daten mehr bereitstellt. Wenn der Wert MAXLONGLONGLONG (0x7FFFFFFFFFFFFFFF) lautet, bricht die Methode jede vorherige Stop-Anforderung ab. Wenn psStopNULL ist, wird der Pin sofort beendet.

Für Vorschau-Pins sind nur die Werte NULL und MAXLONGLONG gültig, da Vorschaupins die gelieferten Beispiele nicht mit Zeitstempel versehen.

[in] bSendExtra

Gibt einen booleschen Wert an, der angibt, ob nach der geplanten Stoppzeit ein zusätzliches Beispiel gesendet werden soll. Wenn TRUE, sendet die Pin ein zusätzliches Beispiel.

[in] dwCookie

Gibt einen Wert an, der zusammen mit der Startbenachrichtigung gesendet werden soll. Siehe Hinweise.

Rückgabewert

Wenn die Methode erfolgreich ist, wird der Rückgabewert S_OK. Andernfalls wird ein HRESULT-Wert zurückgegeben, der die Ursache des Fehlers angibt.

Hinweise

Wenn der dwCookie-Parameter ungleich 0 (null) ist, sendet der Pin ein EC_STREAM_CONTROL_STOPPED-Ereignis , wenn die Übermittlung von Daten beendet wird. Der erste Ereignisparameter ist ein Zeiger auf die IPin-Schnittstelle des Pins, und der zweite ist der Wert von dwCookie. Wenn ptStopNULL oder MAXLONGLONG ist, wird kein Ereignis gesendet, und der Wert von dwCookie wird ignoriert.

Bei der Videoaufnahme würden Sie diese Methode in der Regel für den Ausgabepin des Aufnahmefilters und den Eingabepin des Multiplexers aufrufen. Die Anwendung sollte auf das Stop-Ereignis vom Multiplexer warten. Dadurch wird sichergestellt, dass der Erfassungsfilter die richtige Anzahl von Frames sendet, während sichergestellt wird, dass alle Frames den Multiplexer erreichen. Legen Sie außerdem den bSendExtra-Parameter für den Erfassungspin auf TRUE fest, für den Multiplexerpin auf FALSE . Dies bewirkt, dass der Erfassungsfilter einen zusätzlichen Frame sendet. Der Multiplexer basiert auf den Zeitstempeln des Aufnahmepins. Wenn der zusätzliche Frame also nicht gesendet wird, wartet der Multiplexer unbegrenzt auf die Stoppzeit. Wenn der Multiplexer den zusätzlichen Frame empfängt, verwirft er ihn.

Diese Methode behandelt die folgenden Begrenzungsbedingungen:

  • Wenn die Stoppzeit zwischen den Start- und Stoppzeiten einer Stichprobe liegt, liefert der Pin dieses Beispiel.
  • Wenn die Startzeit der Stoppzeit entspricht, liefert der Pin ein Beispiel.
MAXLONGLONG ist der größtmögliche REFERENCE_TIME Wert. In der Basisklassenbibliothek ist sie auch als konstante MAX_TIME definiert.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 2000 Professional [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows 2000 Server [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile strmif.h (include Dshow.h)
Bibliothek Strmiids.lib

Weitere Informationen

Fehler- und Erfolgscodes

IAMStreamControl-Schnittstelle