Freigeben über


CBaseRenderer.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 das nächste Medienbeispiel im Stream.

Syntax

virtual Receive(
   IMediaSample *pMediaSample
);

Parameter

pMediaSample

Zeiger auf die IMediaSample-Schnittstelle des Beispiels.

Rückgabewert

Gibt bei erfolgreicher Ausführung S_OK oder einen HRESULT-Wert zurück, der die Fehlerursache angibt.

Bemerkungen

Die Eingabenadel ruft diese Methode auf, wenn sie ein Beispiel aus dem Upstream Filter empfängt.

Wenn der Filter ausgeführt wird, führt diese Methode die folgenden Schritte aus:

  1. Plant das Beispiel für das Rendern (CBaseRenderer::P repareReceive).
  2. Wartet auf die geplante Zeit (CBaseRenderer::WaitForRenderTime).
  3. Rendert das Beispiel (CBaseRenderer::Render).
  4. Gibt das Beispiel (CBaseRenderer::ClearPendingSample) frei.

Wenn der Filter angehalten ist, führt die -Methode die folgenden Schritte aus:

  1. Benachrichtigt die abgeleitete Klasse, dass ein Beispiel verfügbar ist (CBaseRenderer::OnReceiveFirstSample).
  2. Wartet auf die geplante Zeit.
  3. Rendert das Beispiel.
  4. Gibt das Beispiel frei.

Während sie angehalten ist, wartet die Methode in Schritt 2, bis der Filter in den Status "Wird ausgeführt" wechselt. An diesem Punkt plant der Filter das Beispiel.

In der Basisklasse führt die OnReceiveFirstSample-Methode nichts aus. Die abgeleitete Klasse kann sie überschreiben. Wenn beispielsweise ein Videorenderer angehalten wird, wird das erste Beispiel als Standbild angezeigt.

Anforderungen

Anforderung Wert
Header
Renbase.h (streams.h einschließen)
Bibliothek
Strmbase.lib (Einzelhandelsbuilds);
Strmbasd.lib (Debugbuilds)

Siehe auch

CBaseRenderer-Klasse