Método IAMStreamControl::StopAt (strmif.h)
[O recurso associado a esta página, DirectShow, é um recurso herdado. Foi substituído por MediaPlayer, IMFMediaEngine e Audio/Video Capture in 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 Audio/Video Capture in 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 StopAt
método informa ao pino quando parar de fornecer dados.
Sintaxe
HRESULT StopAt(
[in] const REFERENCE_TIME *ptStop,
[in] BOOL bSendExtra,
[in] DWORD dwCookie
);
Parâmetros
[in] ptStop
Ponteiro para um valor de REFERENCE_TIME que especifica quando o pino deve parar de fornecer dados. Se o valor for MAXLONGLONG (0x7FFFFFFFFFFFFFFF), o método cancelará qualquer solicitação de parada anterior. Se psStop for NULL, o pino será interrompido imediatamente.
Para pinos de visualização, somente os valores NULL e MAXLONGLONG são válidos, pois os pinos de visualização não carimbam os exemplos que eles entregam.
[in] bSendExtra
Especifica um valor booliano que indica se um exemplo extra deve ser enviado após a hora de parada agendada. Se TRUE, o pino enviará um exemplo extra.
[in] dwCookie
Especifica um valor a ser enviado junto com a notificação de início. Consulte Observações.
Valor retornado
Se o método for bem-sucedido, o valor retornado será S_OK. Caso contrário, retorna um valor HRESULT que indica a causa da falha.
Comentários
Se o parâmetro dwCookie for diferente de zero, o pino enviará um evento EC_STREAM_CONTROL_STOPPED quando parar de fornecer dados. O primeiro parâmetro de evento é um ponteiro para a interface IPin do pino e o segundo é o valor de dwCookie. Se ptStop for NULL ou MAXLONGLONG, nenhum evento será enviado e o valor de dwCookie será ignorado.
Na captura de vídeo, você normalmente chamaria esse método no pino de saída do filtro de captura e no pino de entrada do multiplexador. O aplicativo deve aguardar o evento de parada do multiplexador. Isso garante que o filtro de captura envie o número certo de quadros, garantindo que todos os quadros atinjam o multiplexador. Além disso, defina o parâmetro bSendExtra como TRUE para o pino de captura, mas FALSE para o pino multiplexer. Isso faz com que o filtro de captura envie um quadro adicional. O multiplexador depende dos carimbos de data/hora do pino de captura, portanto, se o quadro extra não for enviado, o multiplexador aguardará indefinidamente o tempo de parada. Quando o multiplexador receber o quadro extra, ele o descartará.
Esse método manipula as seguintes condições de limite:
- Se o tempo de parada ficar entre os horários de início e parada de um exemplo, o pino entregará essa amostra.
- Se a hora de início for igual à hora de parada, o pino fornecerá uma amostra.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows 2000 Professional [somente aplicativos da área de trabalho] |
Servidor mínimo com suporte | Windows 2000 Server [somente aplicativos da área de trabalho] |
Plataforma de Destino | Windows |
Cabeçalho | strmif.h (inclua Dshow.h) |
Biblioteca | Strmiids.lib |