Драйвер для веб-камер

Заказчик: ООО Gigacodes, Германия

Техническое задание: разработка виртуального драйвера для веб-камер, позволяющего физической веб-камере работать одновременно c несколькими программами под управлением Windows. В отличие от большинства драйверов для физических веб-камер, этот драйвер дает возможность использовать одно и то же устройство в таких программах как Skype, Adobe Media Encoder и Adobe Flash Player в одном или нескольких браузерах одновременно. Формат вывода для каждой копии устанавливается индивидуально. Кроме того, осуществляется автоматическая корректировка размера входного и выходного формата. В 2004 году наша команда закончила разработку драйвера для компании Gigacodes. Поскольку в его основу легла старая модель потоков Windows, он не совместим с большинством приложений под управлением Windows 8 и Windows 10.

Решение: регистрируемый в операционной системе драйвер выводит изображение, предварительно сохраненное в оперативной памяти.

Задача реализована через использование нового драйвера AVStream из пакета Windows Driver Kit. Многопоточность и техника lock-free программирования позволили повысить производительность драйвера. Таким образом, нам удалось обойти взаимную блокировку одновременно выполняющихся процессов.

Среда разработки: Microsoft Visual Studio C++, Windows Driver Kit, Git