CRenderedInputPin.EndOfStream-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 EndOfStream
-Methode benachrichtigt den Pin, dass keine zusätzlichen Daten erwartet werden, bis ein neuer Ausführungsbefehl für den Filter ausgegeben wird. Diese Methode implementiert die IPin::EndOfStream-Methode .
Syntax
HRESULT EndOfStream();
Parameter
Diese Methode hat keine Parameter.
Rückgabewert
Gibt bei erfolgreicher Ausführung S_OK oder andernfalls einen Fehlercode zurück.
Bemerkungen
Wenn der Filter ausgeführt wird, sendet diese Methode ein EC_COMPLETE-Ereignis an den Filter Graph-Manager. Andernfalls wird ein Flag festgelegt, sodass das EC_COMPLETE-Ereignis gesendet wird, wenn der Filter als Nächstes ausgeführt wird. Durch Leeren des Filters wird das Flag gelöscht.
Sie sollten diese Methode überschreiben, um die Streamingsperre des Pins zu halten:
class CMyInputPin : public CRenderedInputPin
{
private:
CCritSec * const m_pReceiveLock; // Streaming lock.
public:
STDMETHODIMP EndOfStream(void);
/* (Remainder of the class declaration not shown.) */
};
STDMETHODIMP CMyInputPin::EndOfStream(void)
{
CAutoLock lock(m_pReceiveLock);
return CRenderedInputPin::EndOfStream();
}
Wenn der Filter Receive-Aufrufe asynchron verarbeitet, sollte der Pin außerdem darauf warten, das EC_COMPLETE-Ereignis zu senden, bis der Filter alle ausstehenden Beispiele verarbeitet hat.
Anforderungen
Anforderung | Wert |
---|---|
Header |
|
Bibliothek |
|