Share via


Reiniciando o processamento no AVStream

O AVStream interromperá o processamento se qualquer uma das seguintes condições for verdadeira:

  • Em um ambiente centrado em pin, nenhum dado está disponível no momento no pino.

  • Em um ambiente centrado em filtro, pelo menos um pino para o qual o membro Flags da estrutura KSPIN_DESCRIPTOR_EX não define KSPIN_FLAG_FRAMES_NOT_REQUIRED_FOR_PROCESSING, não tem dados aguardando para serem processados. Por padrão, esse sinalizador não está definido.

  • A rotina de retorno de chamada de expedição de processamento do minidriver retorna STATUS_PENDING, independentemente da disponibilidade do quadro. Observe que a expedição de processamento pode ser AVStrMiniFilterProcess ou AVStrMiniPinProcess, dependendo se o minidriver implementa processamento centrado em pin ou processamento centrado em filtro.

O AVStream inicia o processamento quando novos dados chegam a uma fila vazia anteriormente. Portanto, se a expedição de processamento do minidriver retornar STATUS_PENDING quando as filas associadas estiverem cheias, o minidriver nunca será chamado para retomar o processamento. Se o minidriver definir STATUS_PENDING, o minidriver deverá chamar KsPinAttemptProcessing ou KsFilterAttemptProcessing para retomar o processamento.

Não retorne STATUS_SUCCESS da expedição de processamento se o minidriver realmente não processar dados. Isso faz com que o AVStream chame imediatamente o minidriver novamente, resultando em um loop infinito entre a AVStream e a expedição de processamento.