Implementação da classe de vídeo USB

O driver UVC (Classe de Vídeo USB) fornecido pela Microsoft (usbvideo.sys) é um minidriver AVStream centrado em pin. Ele cria uma fábrica de filtros para cada instância de dispositivo compatível com a Classe de Vídeo USB enumerada pelo sistema operacional. O driver também cria uma fábrica de pinos para cada terminal de entrada ou saída no dispositivo, com o membro DataFlow da estrutura KSPIN_DESCRIPTOR definido como o valor relevante.

O driver classe de vídeo USB usa a topologia interna do dispositivo relatada pelos descritores de dispositivo para construir um grafo de topologia de streaming de kernel (KS) composto por filtros, nós e conexões.

Com base no número e nos tipos de controles compatíveis com o dispositivo, a Classe de Vídeo USB relata dinamicamente conjuntos de propriedades de filtro, pino e nó por meio das tabelas de automação KS nos descritores de filtro e pino do AVStream.

Com base nos formatos de dados compatíveis com cada ponto de extremidade de dados de vídeo ou imagem ainda no dispositivo, a Classe de Vídeo USB relata a lista correspondente de intervalos de dados KS com suporte e um manipulador de interseção de dados no respectivo descritor de pino AVStream. O driver da Classe de Vídeo USB exporta as informações por meio do módulo Proxy de Streaming de Kernel .

O driver da Classe de Vídeo USB também dá suporte à sincronização de fluxo de áudio/vídeo; usbvideo.sys pode servir como um relógio master KS e adicionar carimbos de data/hora a exemplos de vídeo. A especificação classe de vídeo USB inclui detalhes sobre como o hardware deve fornecer informações de tempo para o driver de classe.

Para se comunicar com a Classe de Vídeo USB, os clientes de modo de usuário chamam interfaces directShow ou Media Foundation. Essas interfaces são wrappers de interface COM definidos pelo proxy de streaming de kernel como plug-ins. Consulte a documentação do SDK do Microsoft Windows para obter mais informações sobre o Media Foundation.