Freigeben über


CTransformFilter.Receive-Methode

[Das dieser Seite zugeordnete Feature DirectShow ist ein Legacyfeature. Es wurde durch MediaPlayer, IMFMediaEngine und Audio/Video Capture in Media Foundation ersetzt. Diese Features wurden für Windows 10 und Windows 11 optimiert. Microsoft empfiehlt dringend, dass neuer Code nach Möglichkeit MediaPlayer, IMFMediaEngine und Audio/Video Capture in Media Foundation anstelle von DirectShow verwendet. Microsoft schlägt vor, vorhandenen Code, der die Legacy-APIs verwendet, um nach Möglichkeit die neuen APIs zu verwenden.]

Die Receive -Methode empfängt ein Medienbeispiel, verarbeitet es und übermittelt ein Ausgabebeispiel an den nachgeschalteten Filter.

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

Der Eingabenadel des Filters ruft diese Methode auf, wenn er ein Beispiel empfängt. Diese Methode ruft die CTransformFilter::InitializeOutputSample-Methode auf, die ein neues Ausgabebeispiel vorbereitet. Anschließend wird die CTransformFilter::Transform-Methode aufgerufen, die von der abgeleiteten Klasse implementiert werden muss. Die Transform-Methode verarbeitet die Eingabedaten und erzeugt Ausgabedaten.

Wenn die Transform-Methode S_FALSE zurückgibt, löscht die Receive Methode dieses Beispiel. Beim ersten gelöschten Beispiel sendet der Filter ein EC_QUALITY_CHANGE-Ereignis an den Filterdiagramm-Manager. Andernfalls liefert der Filter das Ausgabebeispiel, wenn die Transform-Methode S_OK zurückgibt. Dazu wird die IMemInputPin::Receive-Methode auf dem Downstreameingabenadel aufgerufen.

Anforderungen

Anforderung Wert
Header
Transfrm.h (include Streams.h)
Bibliothek
Strmbase.lib (Einzelhandelsbuilds);
Strmbasd.lib (Debugbuilds)

Siehe auch

CTransformFilter-Klasse