Compartilhar via


Método CRenderedInputPin.EndOfStream

[O recurso associado a esta página, DirectShow, é um recurso herdado. Ele foi substituído por MediaPlayer, IMFMediaEngine e Captura de Áudio/Vídeo na Media Foundation. Esses recursos foram otimizados para Windows 10 e Windows 11. A Microsoft recomenda fortemente que o novo código use MediaPlayer, IMFMediaEngine e Captura de Áudio/Vídeo no Media Foundation em vez de DirectShow, quando possível. A Microsoft sugere que o código existente que usa as APIs herdadas seja reescrito para usar as novas APIs, se possível.]

O EndOfStream método notifica o pino de que nenhum dado adicional é esperado, até que um novo comando de execução seja emitido para o filtro. Esse método implementa o método IPin::EndOfStream .

Sintaxe

HRESULT EndOfStream();

Parâmetros

Esse método não tem parâmetros.

Retornar valor

Retorna S_OK se tiver êxito ou um código de erro de outra forma.

Comentários

Se o filtro estiver em execução, esse método enviará um evento EC_COMPLETE para o Gerenciador de Grafo de Filtro. Caso contrário, é define um sinalizador para que o evento EC_COMPLETE seja enviado quando o filtro for executado em seguida. Liberar o filtro limpa o sinalizador.

Você deve substituir esse método para manter o bloqueio de streaming do pino:

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

Além disso, se o filtro processar Receber chamadas de forma assíncrona, o pin deverá aguardar para enviar o evento EC_COMPLETE até que o filtro tenha processado todos os exemplos pendentes.

Requisitos

Requisito Valor
parâmetro
Amextra.h (inclua Streams.h)
Biblioteca
Strmbase.lib (builds de varejo);
Strmbasd.lib (builds de depuração)

Confira também

Classe CRenderedInputPin