Metodo CRenderedInputPin.EndOfStream

[La funzionalità associata a questa pagina, DirectShow, è una funzionalità legacy. È stata sostituita da MediaPlayer, IMFMediaEngine e Audio/Video Capture in Media Foundation. Queste funzionalità sono state ottimizzate per Windows 10 e Windows 11. Microsoft consiglia vivamente che il nuovo codice usi MediaPlayer, IMFMediaEngine e Audio/Video Capture in Media Foundation invece di DirectShow, quando possibile. Microsoft suggerisce che il codice esistente che usa le API legacy venga riscritto per usare le nuove API, se possibile.

Il EndOfStream metodo notifica al pin che non è previsto alcun dato aggiuntivo, fino a quando non viene eseguito un nuovo comando run al filtro. Questo metodo implementa il metodo IPin::EndOfStream .

Sintassi

HRESULT EndOfStream();

Parametri

Questo metodo non presenta parametri.

Valore restituito

Restituisce S_OK in caso di esito positivo o un codice di errore in caso contrario.

Commenti

Se il filtro è in esecuzione, questo metodo invia un evento EC_COMPLETE a Filter Graph Manager. In caso contrario, imposta un flag in modo che l'evento EC_COMPLETE venga inviato all'esecuzione successiva del filtro. Lo svuotamento del filtro cancella il flag.

È necessario eseguire l'override di questo metodo per contenere il blocco di streaming del pin:

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();
} 

Inoltre, se il filtro elabora le chiamate Receive in modo asincrono, il pin deve attendere l'invio dell'evento EC_COMPLETE fino a quando il filtro non ha elaborato tutti gli esempi in sospeso.

Requisiti

Requisito Valore
Intestazione
Amextra.h (include Streams.h)
Libreria
Strmbase.lib (build retail);
Strmbasd.lib (build di debug)

Vedi anche

Classe CRenderedInputPin