Freigeben über


CVideoTransformFilter.Receive-Methode

[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 Receive -Methode empfängt ein Medienbeispiel, verarbeitet es und übermittelt ein Ausgabebeispiel an den downstream-Filter. 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 Upstream Filter 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 ShouldSkipFrameFALSE zurückgibt (was angibt, dass das Beispiel übermittelt werden sollte), führt die Methode Folgendes 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::GetMediaType aufgerufen wird. Wenn eine Formatänderung vorliegt, legt die -Methode den Verbindungstyp auf dem entsprechenden Pin fest. Bevor der neue Typ festgelegt wird, wird StopStreaming aufgerufen. Nachdem der neue Typ festgelegt wurde, wird StartStreaming aufgerufen. 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.

Anforderungen

Anforderung Wert
Header
Vtrans.h (Einschließen von Streams.h)
Bibliothek
Strmbase.lib (Einzelhandelsbuilds);
Strmbasd.lib (Debugbuilds)

Siehe auch

CVideoTransformFilter-Klasse