Virtueller WebCam-Treiber mit Microsoft Visual Studio C++

Auftraggeber: Gigacodes GmbH, Seligenstadt, Deutschland

Aufgabe: Entwicklung eines virtuellen Webcam-Treibers, mit dem eine physikalische Kamera in mehreren Windowsprogrammen gleichzeitig genutzt werden kann. Der Treiber erlaubt, anders als die meisten Treiber von echten WebCams, eine mehrfache Benutzung, z.B. Adobe Flash Player in einem oder mehreren Browsern, Skype und Adobe Media Encoder. Ausgabeformate je Instanz individuell. Automatische Größenanpassung zwischen Eingang und Ausgangsformat (Resize). Es handelt sich um eine Neuentwicklung eines Treibers, den unsere Sitex 2004 für Gigacodes entwickelt hatte. Der alteTreiber basiert auf dem alten Stream Class Modell und ist daher mit den meisten Anwendungen unter Windows 8 und Windows 10 nicht kompatibel.

Lösung: Im Betriebssystem wird ein virtueller Treiber registriert, der als Ausgabe ein zuvor im Arbeitsspeicher hinterlegtes Bild zur Verfügung stellt.
Implementierung mittels des neuen AVStream Interface aus dem Windows Driver Kit.
Zur Verbesserung der Treiber-Performance wird Multithreating und Lockfree-Programmierung angewendet, also paralleles Ausführen von Prozessen, die sich gegenseitig nicht blockieren.

Entwicklungsumgebung: Microsoft Visual Studio C++, Windows Driver Kit, Git