Método IAMStreamControl::StopAt (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 StopAt método informa al pin cuando se detiene la entrega de datos.

Sintaxis

HRESULT StopAt(
  [in] const REFERENCE_TIME *ptStop,
  [in] BOOL                 bSendExtra,
  [in] DWORD                dwCookie
);

Parámetros

[in] ptStop

Puntero a un valor de REFERENCE_TIME que especifica cuándo la patilla debe dejar de entregar datos. Si el valor es MAXLONGLONG (0x7FFFFFFFFFFFFFFF), el método cancela cualquier solicitud de detención anterior. Si psStop es NULL, el pin se detiene inmediatamente.

En el caso de los patillas de vista previa, solo los valores NULL y MAXLONGLONG son válidos, ya que las patillas de vista previa no marcan la hora de las muestras que entregan.

[in] bSendExtra

Especifica un valor booleano que indica si se va a enviar un ejemplo adicional después de la hora de detención programada. Si es TRUE, la patilla envía una muestra adicional.

[in] dwCookie

Especifica un valor que se va a enviar junto con la notificación de inicio. Vea la sección Comentarios.

Valor devuelto

Si el método se realiza correctamente, el valor devuelto es S_OK. De lo contrario, devuelve un valor HRESULT que indica la causa del error.

Comentarios

Si el parámetro dwCookie es distinto de cero, el pin enviará un evento de EC_STREAM_CONTROL_STOPPED cuando deje de entregar datos. El primer parámetro de evento es un puntero a la interfaz IPin del pin y el segundo es el valor de dwCookie. Si ptStop es NULL o MAXLONGLONG, no se envía ningún evento y se omite el valor de dwCookie .

En la captura de vídeo, normalmente llamaría a este método en el pin de salida del filtro de captura y el pin de entrada del multiplexador. La aplicación debe esperar al evento stop del multiplexador. Esto garantiza que el filtro de captura envíe el número correcto de fotogramas, a la vez que garantiza que todos los fotogramas lleguen al multiplexador. Además, establezca el parámetro bSendExtra en TRUE para el pin de captura, pero FALSE para la patilla del multiplexador. Esto hace que el filtro de captura envíe un fotograma adicional. El multiplexador se basa en las marcas de tiempo del pin de captura, por lo que si no se envía el marco adicional, el multiplexador esperará indefinidamente durante el tiempo de detención. Cuando el multiplexador recibe el marco adicional, lo descartará.

Este método controla las siguientes condiciones de límite:

  • Si el tiempo de detención se encuentra entre las horas de inicio y detención de una muestra, el pin entrega esa muestra.
  • Si la hora de inicio es igual a la hora de detención, la patilla entrega una muestra.
MAXLONGLONG es el valor de REFERENCE_TIME más grande posible. En la biblioteca de clases base, también se define como la constante MAX_TIME.

Requisitos

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

Consulte también

Códigos de error y éxito

IAMStreamControl (interfaz)