Compartilhar via


Método IPinConnection::NotifyEndOfStream (strmif.h)

[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 NotifyEndOfStream método solicita a notificação do pin quando a próxima condição de fim de fluxo ocorre.

Sintaxe

HRESULT NotifyEndOfStream(
  [in] HANDLE hNotifyEvent
);

Parâmetros

[in] hNotifyEvent

Manipule para um objeto de evento que o pino sinalizará.

Retornar valor

Retorna um valor HRESULT . Os possíveis valores incluem os seguintes.

Código de retorno Descrição
S_FALSE
O identificador de evento era NULL, mas não havia nenhum identificador de evento existente para redefinir.
S_OK
O identificador de evento foi definido. (Se o identificador de evento for NULL, a notificação de evento foi cancelada.)

Comentários

Esse método permite que o chamador envie dados por push por uma parte do grafo de filtro que termina com esse pino.

Por exemplo, suponha que o chamador esteja enviando dados de um pino de saída chamado "A" em um filtro para um pin de entrada chamado "B" em outro filtro, possivelmente com filtros intermediários conectando-os. A sequência de eventos a seguir ocorreria.

  1. O chamador bloqueia o fluxo de dados no pino A.
  2. Ele chama NotifyEndOfStream no pino B.
  3. Ele chama IPin::EndOfStream no pino de entrada conectado ao pino A.
  4. À medida que os dados restantes viajam downstream por meio de filtros intermediários, esses filtros propagam a notificação de fim do fluxo.
  5. Quando o pino B recebe a notificação de fim do fluxo, ele sinaliza o evento fornecido no parâmetro hNotifyEvent . Nesse ponto, o chamador pode reconfigurar com segurança o grafo entre o pino A e o pino B.
Como a finalidade desse método é permitir que o chamador recompile o grafo dinamicamente e reinicie a conexão, a notificação de fim do fluxo não representa o final real do fluxo. Portanto, o pino B não propaga a condição de fim do fluxo ou o sinal EC_COMPLETE. Essa é uma exceção às regras usuais para o fluxo de dados no grafo de filtro.

É responsabilidade do chamador cancelar a notificação chamando esse método novamente com um identificador de evento NULL .

O grafo de filtro chama esse método dentro do método IGraphConfig::Reconnect . Se um aplicativo ou filtro fizer qualquer reconfiguração dinâmica especializada para o grafo (usando o método IGraphConfig::Reconfigure ), ele poderá chamar esse método primeiro para enviar dados por push pela parte do grafo que está sendo reconfigurada.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows XP [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2003 [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho strmif.h (inclua Dshow.h)
Biblioteca Strmiids.lib

Confira também

Reconexão dinâmica

Códigos de erro e êxito

IPinConnection Interface