duvc-ctl C++ API Documentation

A guide to using the duvc-ctl C++ library/API for controlling USB Video Class (UVC) cameras on Windows.


Refer the Doxygen docs here!: C++ API (Doxygen)

Contents

Getting Started

Core Concepts

Utility Functions & Helpers

Platform Abstraction

Vendor-Specific Extensions

Internal Implementation

Property Reference

Usage Patterns & Best Practices

Build System Integration

Platform-Specific Information

Device Support & Compatibility

Troubleshooting & Debugging

Examples & Tutorials

Contributing & Extending

FAQ

Appendices

Overview

duvc-ctl is a C++ library for controlling UVC cameras on Windows through the DirectShow API. The library exposes camera properties (pan, tilt, zoom, exposure, focus) and video properties (brightness, contrast, white balance) without requiring vendor-specific drivers or SDKs.

Supported operations:

  • Device enumeration and connection

  • Camera properties: pan, tilt, roll, zoom, exposure, iris, focus, scan mode, privacy, digital zoom, backlight compensation, lamp

  • Video properties: brightness, contrast, hue, saturation, sharpness, gamma, color enable, white balance, backlight compensation, gain

  • Hot-plug detection and device change notifications

  • Vendor-specific extensions (Logitech cameras supported)

Requirements:

  • Windows 7 SP1 or later (Windows 10/11 recommended)

  • C++17 compiler: Visual Studio 2019/2022, or MinGW-w64 with GCC 9+

  • CMake 3.16 or later

  • DirectShow (included with Windows)