Compartilhar via


Método CBaseRenderer.SendEndOfStream

[O recurso associado a esta página, DirectShow, é um recurso herdado. Foi substituído por MediaPlayer, IMFMediaEngine e Audio/Video Capture in 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 Audio/Video Capture in 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.]

Se o fim do fluxo foi atingido, o SendEndOfStream método agenda um evento de EC_COMPLETE para o gerenciador de grafo de filtro.

Sintaxe

virtual HRESULT SendEndOfStream();

Parâmetros

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

Retornar valor

Retorna um valor HRESULT . Os valores possíveis incluem aqueles na tabela a seguir.

Código de retorno Descrição
S_FALSE
O gerenciador de grafo de filtro não está aceitando notificações de eventos.
S_OK
Êxito.

Comentários

O filtro pode receber uma notificação de fim de fluxo antes da hora de parada do exemplo atual. Nesse caso, o filtro deve aguardar antes de postar uma notificação EC_COMPLETE no gerenciador de grafo de filtro.

Portanto:

  • Se o filtro tiver recebido uma notificação de EOS (fim do fluxo), esse método agendará um evento de temporizador. Quando o evento de temporizador é ativado, o filtro posta o evento EC_COMPLETE.
  • Se o filtro tiver recebido uma notificação do EOS que não foi antecipada, esse método postará o evento EC_COMPLETE imediatamente.
  • Se o filtro não tiver nenhuma notificação pendente do EOS, o método retornará sem fazer nada.

O método de retorno de chamada do temporizador é CBaseRenderer::TimerCallback. Para entregar o evento EC_COMPLETE, o filtro chama o método CBaseRenderer::NotifyEndOfStream .

Requisitos

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

Confira também

Classe CBaseRenderer