Método CRenderedInputPin.EndOfStream
[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 EndOfStream
método notifica al pin que no se espera ningún dato adicional, hasta que se emite un nuevo comando de ejecución al filtro. Este método implementa el método IPin::EndOfStream .
Sintaxis
HRESULT EndOfStream();
Parámetros
Este método no tiene parámetros.
Valor devuelto
Devuelve S_OK si se ejecuta correctamente o un código de error de lo contrario.
Observaciones
Si el filtro se está ejecutando, este método envía un evento de EC_COMPLETE al Administrador de gráficos de filtros. De lo contrario, se establece una marca para que el evento EC_COMPLETE se envíe cuando se ejecute el filtro a continuación. Al vaciar el filtro, se borra la marca.
Debe invalidar este método para contener el bloqueo de streaming del pin:
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();
}
Además, si el filtro procesa las llamadas Receive de forma asincrónica, el pin debe esperar a enviar el evento de EC_COMPLETE hasta que el filtro haya procesado todas las muestras pendientes.
Requisitos
Requisito | Value |
---|---|
Encabezado |
|
Biblioteca |
|