Freigeben über


CPullPin.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 wird aufgerufen, wenn das Objekt ein Medienbeispiel vom Ausgabenadel empfängt. Die abgeleitete Klasse muss diese Methode implementieren.

Syntax

virtual HRESULT Receive(
   IMediaSample *pSample
) = 0;

Parameter

pSample

Zeiger auf die IMediaSample-Schnittstelle des Medienbeispiels.

Rückgabewert

Gibt einen HRESULT-Wert zurück. Wenn Sie einen anderen Wert als S_OK zurückgeben, wird der Datenziehthread beendet.

Bemerkungen

Diese Methode wird aufgerufen, wenn ein neues Beispiel vom Ausgabenadel eingeht. Schreiben Sie diese Methode auf die gleiche Weise wie die IMemInputPin::Receive-Methode .

Die Zeitstempel im Beispiel geben die Byteoffsets relativ zur ursprünglichen Startposition an, die in der CPullPin::Seek-Methode angegeben wurde.

Die Startposition wird auf die nächstgelegene Ausrichtungsgrenze gerundet, und die Stoppposition wird auf die nächste Ausrichtungsgrenze gerundet. Wenn die Stoppposition die Gesamtdauer überschreitet, wird stattdessen die Dauer verwendet.

Alle Zeitstempel werden als Byteoffset multipliziert mit 10.000.000 angegeben, definiert als konstante EINHEITEN. Daher ist eine Sekunde ein Byte. Um die tatsächlichen Byteoffsets zu finden, rufen Sie IMediaSample::GetTime auf, und dividieren Sie die Ergebnisse durch UNITS.

Anforderungen

Anforderung Wert
Header
Pullpin.h
Bibliothek
Strmbase.lib (Einzelhandelsbuilds);
Strmbasd.lib (Debugbuilds)

Siehe auch

CPullPin-Klasse