Реализация класса ВИДЕО USB
Предоставленный Корпорацией Майкрософт драйвер USB Video Class (UVC) (usbvideo.sys) — это мини-драйвер AVStream, ориентированный на пин-код. Она создает фабрику фильтров для каждого экземпляра устройства, совместимого с USB Video Class?, перечисляемого операционной системой. Драйвер также создает фабрику контактов для каждого терминала ввода или вывода на устройстве, при этом элементу DataFlowструктуры KSPIN_DESCRIPTOR присвоено соответствующее значение.
Драйвер видеокласса USB использует внутреннюю топологию устройства, сообщаемую дескрипторами устройств, для создания графа топологии потоковой передачи ядра (KS), состоящего из фильтров, узлов и подключений.
В зависимости от количества и типов элементов управления, поддерживаемых устройством, класс ВИДЕО USB динамически передает наборы свойств фильтра, закрепления и узла через таблицы автоматизации KS в дескрипторах фильтра и закрепления AVStream.
Основываясь на форматах данных, поддерживаемых каждой конечной точкой данных видео или изображения на устройстве, КЛАСС ВИДЕО USB сообщает соответствующий список поддерживаемых диапазонов данных KS и обработчик пересечения данных в соответствующем дескрипторе контактов AVStream. Драйвер видеокласса USB экспортирует сведения через модуль прокси-сервера потоковой передачи ядра .
Драйвер видеокласса USB также поддерживает синхронизацию аудио- и видеопотока; usbvideo.sys может служить в качестве master часов KS и добавлять метки времени в примеры видео. Спецификация класса ВИДЕО USB содержит сведения о том, как оборудование должно предоставлять сведения о времени для драйвера класса.
Для взаимодействия с классом ВИДЕО USB клиенты пользовательского режима вызывают интерфейсы DirectShow или Media Foundation. Эти интерфейсы представляют собой оболочки com-интерфейса, определенные прокси-сервером потоковой передачи ядра в качестве подключаемых модулей. Дополнительные сведения о Media Foundation см. в документации по Microsoft Windows SDK.