Método CSourceStream.DoBufferProcessingLoop
[O recurso associado a esta página, DirectShow, é um recurso herdado. Ele foi substituído por MediaPlayer, IMFMediaEngine e Captura de Áudio/Vídeo na 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 Captura de Áudio/Vídeo no 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 DoBufferProcessingLoop
método gera dados de mídia e os entrega ao pino de entrada downstream.
Sintaxe
virtual HRESULT DoBufferProcessingLoop();
Parâmetros
Esse método não tem parâmetros.
Retornar valor
Retorna um valor HRESULT . Os valores possíveis incluem os mostrados na tabela a seguir.
Código de retorno | Descrição |
---|---|
|
O thread recebeu uma solicitação de parada. |
|
O fluxo terminou ou o filtro downstream não está aceitando exemplos. |
Comentários
Esse método implementa o loop main que processa dados e os fornece downstream. Cada vez por meio do loop, o método recupera um exemplo de mídia vazio do alocador. Ele passa o exemplo para o método CSourceStream::FillBuffer . O método FillBuffer , que a classe derivada deve implementar, gera dados de mídia e os coloca no buffer de exemplo.
O loop termina quando qualquer um dos seguintes ocorre:
- O método IMemInputPin::Receive do pin de entrada rejeita um exemplo.
- O método FillBuffer retorna S_FALSE, indicando o final do fluxo ou retorna um código de erro.
- O thread recebe uma solicitação CSourceStream::Stop .
O DoBufferProcessingLoop
método manipula a notificação de fim do fluxo. Se ocorrer um erro, ele enviará um evento EC_ERRORABORT para o gerenciador de grafo de filtro.
Requisitos
Requisito | Valor |
---|---|
parâmetro |
|
Biblioteca |
|