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 |
|
Biblioteca |
|