Compartir a través de


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

[La característica asociada a esta página, DirectShow, es una característica heredada. Se ha reemplazado por MediaPlayer, IMFMediaEngine y Captura de audio/vídeo en Media Foundation. Esas características se han optimizado para Windows 10 y Windows 11. Microsoft recomienda encarecidamente que el nuevo código use MediaPlayer, IMFMediaEngine y Audio/Video Capture en Media Foundation en lugar de DirectShow, siempre que sea posible. Microsoft sugiere que el código existente que usa las API heredadas se reescriba para usar las nuevas API si es posible.

El NotifyEndOfStream método solicita una notificación desde el pin cuando se produce la siguiente condición de fin de secuencia.

Sintaxis

HRESULT NotifyEndOfStream(
  [in] HANDLE hNotifyEvent
);

Parámetros

[in] hNotifyEvent

Identificador de un objeto de evento que la patilla señalizará.

Valor devuelto

Devuelve un valor HRESULT . Estos son algunos de los valores posibles.

Código devuelto Descripción
S_FALSE
El identificador de eventos era NULL, pero no había ningún identificador de evento existente para restablecerlo.
S_OK
Se estableció el identificador de eventos. (Si el identificador de eventos era NULL, se canceló la notificación de eventos).

Comentarios

Este método permite al autor de la llamada insertar datos a través de una parte del gráfico de filtros que termina con este pin.

Por ejemplo, supongamos que el autor de la llamada está insertando datos desde un pin de salida denominado "A" en un filtro, en un pin de entrada denominado "B" en otro filtro, posiblemente con filtros intermedios que los conectan. Se produciría la siguiente secuencia de eventos.

  1. El autor de la llamada bloquea el flujo de datos en la patilla A.
  2. Llama a NotifyEndOfStream en el pin B.
  3. Llama a IPin::EndOfStream en el pin de entrada conectado al anclaje A.
  4. A medida que los datos restantes viajan de bajada a través de los filtros intermedios, esos filtros propagan la notificación de fin de secuencia.
  5. Cuando el pin B recibe la notificación de fin de secuencia, señala el evento especificado en el parámetro hNotifyEvent . En ese momento, el autor de la llamada puede volver a configurar el gráfico de forma segura entre el pin A y el pin B.
Dado que el propósito de este método es permitir que el autor de la llamada recompile el grafo dinámicamente y, a continuación, reinicie la conexión, la notificación de final de secuencia no representa el final real de la secuencia. Por lo tanto, el pin B no propaga la condición de fin de flujo ni el EC_COMPLETE de señal. Se trata de una excepción a las reglas habituales para el flujo de datos en el gráfico de filtros.

Es responsabilidad del autor de la llamada cancelar la notificación llamando a este método de nuevo con un identificador de eventos NULL .

El gráfico de filtros llama a este método dentro del método IGraphConfig::Reconnect . Si una aplicación o filtro realiza cualquier reconfiguración dinámica especializada en el grafo (mediante el método IGraphConfig::Reconfigure ), podría llamar primero a este método para insertar datos a través de la parte del grafo que se está reconfigurando.

Requisitos

Requisito Value
Cliente mínimo compatible Windows XP [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2003 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado strmif.h (incluya Dshow.h)
Library Strmiids.lib

Consulte también

Reconexión dinámica

Códigos de error y éxito

IPinConnection (interfaz)