https://github.com/defini7/wccapi
WCCAPI - WebCam Capturing API
https://github.com/defini7/wccapi
cpp macos macosx mfapi webcam webcam-capture webcam-viewer winapi windows
Last synced: 2 months ago
JSON representation
WCCAPI - WebCam Capturing API
- Host: GitHub
- URL: https://github.com/defini7/wccapi
- Owner: defini7
- License: gpl-3.0
- Created: 2025-05-13T16:07:21.000Z (about 1 year ago)
- Default Branch: master
- Last Pushed: 2025-09-04T16:20:06.000Z (10 months ago)
- Last Synced: 2025-09-04T18:25:20.948Z (10 months ago)
- Topics: cpp, macos, macosx, mfapi, webcam, webcam-capture, webcam-viewer, winapi, windows
- Language: C++
- Homepage:
- Size: 189 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# WCCAPI - WebCam Capturing API


# Why?
The idea was to bring a trivial API for capturing video from a webcam.
# Features
- Supports multiple video formats: RGB32, RGB24, YUY2 -
that's actually only useful on Windows because of the way how **mfapi** works,
- Capturing video at all available FPSs on your webcam (up to 30),
- Choosing a custom resolution for frames,
- Enumerating all webcams connected to your device.
# Limitations
- On Windows capturing is performed in a sync mode,
- Only one device is supported at once,
- Works only on Windows and macOS.
# Future
- Add Linux support.
# Usage
## Windows
- Create an instance of the **wwcc::Capturer**
- Call **wwcc::Capturer::Init** providing *device id*, *capture width*, *capture height* and *fps*
- Allocate memory for your buffer of **uint32_t** (must be at least `(capture width) * (capture height) * sizeof(uint32_t)`)
- Call **wwcc::Capturer::SetBuffer** providing your buffer
- Call **wwcc::Capturer::DoCapture** to capture one frame (it stops current thread until done)
## macOS
- Create an instance of the **mwcc::CaptureParams**
- Call **mwcc::Init** providing *device id*, *capture width*, *capture height* and *fps*
- Allocate memory for your buffer of **uint32_t** (must be at least `(capture width) * (capture height) * sizeof(uint32_t)`)
- Call **mwcc::SetBuffer** providing your buffer
- Call **mwcc::DoCapture()** to capture one frame (it runs asynchronously)
### Notice
Compile it as an Objective-C++ code
## General
- Each pixel is stored within a **uint32_t** value in the *RGBA* format