Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
USBCAMD2 começa a transmitir no canal isócrono solicitando duas transferências de 32 pacotes. Cada pacote tem um tamanho máximo que corresponde ao tamanho máximo na configuração alternativa selecionada.
Nota O streaming no pipe isocrono é independente do streaming do Microsoft DirectShow.
Solicitações de transferência isócronas de duplo buffer são continuamente enviadas para o USBCAMD2 e param somente quando ocorre uma das duas condições seguintes:
Um estado de transmissão stop DirectShow é emitido (KSSTATE_STOP).
O minidriver de câmera solicita ao USBCAMD2 para parar a transmissão isocrona passando o sinalizador USBCAMD_STOP_STREAMING no parâmetro PipeStateFlags em uma chamada para USBCAMD_SetIsoPipeState.
Enquanto o streaming está em andamento, USBCAMD2 e o minidriver da câmera repetem o seguinte processo até que o streaming pare:
USBCAMD2 chama a função de retorno de chamada CamProcessUSBPacketEx do minidriver de câmera sempre que recebe um pacote do driver de barramento USB (em IRQL = DISPATCH_LEVEL). O minidriver da câmera deve definir os sinalizadores de erro apropriados no caso de condições de erro. O minidriver também deve definir um novo sinalizador de quadro de vídeo se o início de um novo quadro de vídeo for detectado usando o parâmetro FrameComplete de CamProcessUSBPacketEx.
Depois que o minidriver da câmera determinar que um quadro de vídeo está concluído, USBCAMD2 chamará a função de retorno de chamada CamProcessRawVideoFrameEx do minidriver da câmera (do contexto de um thread de trabalho) para processar o quadro de vídeo se houver a necessidade de executar uma conversão de espaço de cor ou descompactação. USBCAMD2 retorna um quadro bruto completo para o driver de classe stream.sys para ser processado pelo minidriver de câmera em IRQL = PASSIVE_LEVEL. Se houver dados insuficientes de quadro ou ocorrer um erro durante a descompactação devido a dados incorretos, por exemplo, o parâmetro BytesReturned para CamProcessRawVideoFrameEx deve ser definido como 0.