CVideoTransformFilter.Receive-Methode

Die Receive -Methode empfängt ein Medienbeispiel, verarbeitet es und übermittelt ein Ausgabebeispiel an den Downstreamfilter. Diese Methode überschreibt die CTransformFilter::Receive-Methode.

Syntax

HRESULT Receive(
   IMediaSample *pSample
);

Parameter

pSample

Zeiger auf die IMediaSample-Schnittstelle im Eingabebeispiel.

Rückgabewert

Gibt einen HRESULT-Wert zurück. Folgende Werte sind möglich:

Rückgabecode Beschreibung
S _ FALSE
Der Upstreamfilter sollte das Senden von Beispielen beenden.
S _ OK
Erfolg.

Bemerkungen

Diese Methode ruft CVideoTransformFilter::ShouldSkipFrame auf, um zu bestimmen, ob dieses Beispiel übermittelt oder einfach verworfen werden soll. Wenn ShouldSkipFrame FALSE zurückgibt (was angibt, dass das Beispiel übermittelt werden soll), führt die Methode folgende Schritte aus:

  1. Ruft CTransformFilter::InitializeOutputSample auf, um das Ausgabebeispiel vorzubereiten.
  2. Ruft CTransformFilter::Transform auf, um das Eingabebeispiel zu verarbeiten. Diese Methode ist rein virtuell und muss in der abgeleiteten Klasse implementiert werden.
  3. Ruft CBaseOutputPin::D eliver auf, um das Ausgabebeispiel zu übermitteln.

Außerdem überprüft diese Methode auf Formatänderungen im Eingabe- oder Ausgabebeispiel, indem IMediaSample::GetMediaTypeaufgerufen wird. Wenn eine Formatänderung erfolgt, legt die -Methode den Verbindungstyp auf dem entsprechenden Pin fest. Bevor der neue Typ festgelegt wird, ruft er StopStreaming auf. Nachdem der neue Typ festgelegt wurde, ruft er StartStreaming auf. Die abgeleitete Klasse kann diese Methoden verwenden, um ihren internen Zustand zu aktualisieren. Die abgeleitete Klasse muss möglicherweise auch in ihrer Transform-Methode nach dem neuen Format suchen.

Requirements (Anforderungen)

Anforderung Wert
Header
Vtrans.h (include Streams.h)
Bibliothek
Strmbase.lib (Verkaufsbuilds);
Strmbasd.lib (Debugbuilds)

Weitere Informationen

CVideoTransformFilter-Klasse