Compartir a través de


Método CDynamicOutputPin.StartUsingOutputPin

[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 StartUsingOutputPin método obtiene acceso al pin de una operación de streaming.

Sintaxis

virtual HRESULT StartUsingOutputPin();

Parámetros

Este método no tiene parámetros.

Valor devuelto

Devuelve un valor HRESULT . Entre los valores posibles se incluyen los que se muestran en la tabla siguiente.

Código devuelto Descripción
S_OK
Correcto.
E_UNEXPECTED
error inesperado.
VFW_E_STATE_CHANGED
El filtro se detuvo o la patilla ha comenzado a vaciarse.

Observaciones

Llame a este método antes de llamar a cualquier método que entregue datos al pin de entrada conectado o que cambie el tipo de medio de la conexión. Por ejemplo, esta regla se aplica a los métodos siguientes:

Después, llame al método CDynamicOutputPin::StopUsingOutputPin para liberar el acceso al pin.

Si el pin está bloqueado, StartUsingOutputPin espera a que el pin se desbloquee. Si el filtro se detiene mientras el método está esperando, el método devuelve inmediatamente VFW_E_STATE_CHANGED. El pin mantiene un recuento de cuántas veces StartUsingOutputPin se ha llamado sin una llamada correspondiente a StopUsingOutputPin. Si otro subproceso intenta bloquear la patilla mientras este recuento es distinto de cero, el pin establece su estado de bloqueo en "pendiente". El pin se bloquea una vez completadas todas las operaciones de streaming, en la llamada final a StopUsingOutputPin.

No mantenga la sección CDynamicOutputPin::m_BlockStateLock crítica al llamar a este método. De lo contrario, si el pin está bloqueado, nunca se puede desbloquear, lo que provoca un interbloqueo.

Requisitos

Requisito Value
Encabezado
Amfilter.h (include Streams.h)
Biblioteca
Strmbase.lib (compilaciones comerciales);
Strmbasd.lib (compilaciones de depuración)

Consulte también

CDynamicOutputPin (clase)