duvc-ctl 2.0.0
USB Video Class Camera Control Library
Loading...
Searching...
No Matches
connection_pool.cpp File Reference

Windows DirectShow connection pooling implementation. More...

#include <duvc-ctl/core/device.h>
#include <duvc-ctl/detail/com_helpers.h>
#include <duvc-ctl/platform/windows/connection_pool.h>
#include <memory>
#include <mutex>
#include <unordered_map>
#include <dshow.h>
#include <strmif.h>
Include dependency graph for connection_pool.cpp:

Go to the source code of this file.

Namespaces

namespace  duvc
 

Macros

#define CameraControl_Pan   0L
 
#define CameraControl_Tilt   1L
 
#define CameraControl_Roll   2L
 
#define CameraControl_Zoom   3L
 
#define CameraControl_Exposure   4L
 
#define CameraControl_Iris   5L
 
#define CameraControl_Focus   6L
 
#define CameraControl_ScanMode   7L
 
#define CameraControl_Privacy   8L
 
#define CameraControl_PanRelative   9L
 
#define CameraControl_TiltRelative   10L
 
#define CameraControl_RollRelative   11L
 
#define CameraControl_ZoomRelative   12L
 
#define CameraControl_ExposureRelative   13L
 
#define CameraControl_IrisRelative   14L
 
#define CameraControl_FocusRelative   15L
 
#define CameraControl_PanTilt   16L
 
#define CameraControl_PanTiltRelative   17L
 
#define CameraControl_FocusSimple   18L
 
#define CameraControl_DigitalZoom   19L
 
#define CameraControl_DigitalZoomRelative   20L
 
#define CameraControl_BacklightCompensation   21L
 
#define CameraControl_Lamp   22L
 
#define CameraControl_Flags_Auto   0x0001
 
#define CameraControl_Flags_Manual   0x0002
 
#define VideoProcAmp_Brightness   0
 
#define VideoProcAmp_Contrast   1
 
#define VideoProcAmp_Hue   2
 
#define VideoProcAmp_Saturation   3
 
#define VideoProcAmp_Sharpness   4
 
#define VideoProcAmp_Gamma   5
 
#define VideoProcAmp_ColorEnable   6
 
#define VideoProcAmp_WhiteBalance   7
 
#define VideoProcAmp_BacklightCompensation   8
 
#define VideoProcAmp_Gain   9
 
#define VideoProcAmp_Flags_Auto   0x0001
 
#define VideoProcAmp_Flags_Manual   0x0002
 

Functions

com_ptr< ICreateDevEnumduvc::create_dev_enum ()
 Create DirectShow device enumerator.
 
com_ptr< IEnumMonikerduvc::enum_video_devices (ICreateDevEnum *dev)
 Enumerate video input devices.
 
std::wstring duvc::read_friendly_name (IMoniker *mon)
 Read friendly name from device moniker.
 
std::wstring duvc::read_device_path (IMoniker *mon)
 Read device path from moniker.
 
bool duvc::is_same_device (const Device &d, const std::wstring &name, const std::wstring &path)
 Check if two device identifiers refer to same device.
 
static com_ptr< IBaseFilterduvc::bind_to_filter (IMoniker *mon)
 
static com_ptr< IAMCameraControlduvc::get_cam_ctrl (IBaseFilter *f)
 
static com_ptr< IAMVideoProcAmpduvc::get_vproc (IBaseFilter *f)
 
com_ptr< IBaseFilterduvc::open_device_filter (const Device &dev)
 Create DirectShow filter from device.
 
static long duvc::camprop_to_dshow (CamProp p)
 
static long duvc::vidprop_to_dshow (VidProp p)
 
static long duvc::to_flag (CamMode m, bool is_camera_control)
 
static CamMode duvc::from_flag (long flag, bool is_camera_control)
 

Detailed Description

Windows DirectShow connection pooling implementation.

Definition in file connection_pool.cpp.

Macro Definition Documentation

◆ CameraControl_BacklightCompensation

#define CameraControl_BacklightCompensation   21L

Definition at line 41 of file connection_pool.cpp.

◆ CameraControl_DigitalZoom

#define CameraControl_DigitalZoom   19L

Definition at line 39 of file connection_pool.cpp.

◆ CameraControl_DigitalZoomRelative

#define CameraControl_DigitalZoomRelative   20L

Definition at line 40 of file connection_pool.cpp.

◆ CameraControl_Exposure

#define CameraControl_Exposure   4L

Definition at line 24 of file connection_pool.cpp.

◆ CameraControl_ExposureRelative

#define CameraControl_ExposureRelative   13L

Definition at line 33 of file connection_pool.cpp.

◆ CameraControl_Flags_Auto

#define CameraControl_Flags_Auto   0x0001

Definition at line 43 of file connection_pool.cpp.

◆ CameraControl_Flags_Manual

#define CameraControl_Flags_Manual   0x0002

Definition at line 44 of file connection_pool.cpp.

◆ CameraControl_Focus

#define CameraControl_Focus   6L

Definition at line 26 of file connection_pool.cpp.

◆ CameraControl_FocusRelative

#define CameraControl_FocusRelative   15L

Definition at line 35 of file connection_pool.cpp.

◆ CameraControl_FocusSimple

#define CameraControl_FocusSimple   18L

Definition at line 38 of file connection_pool.cpp.

◆ CameraControl_Iris

#define CameraControl_Iris   5L

Definition at line 25 of file connection_pool.cpp.

◆ CameraControl_IrisRelative

#define CameraControl_IrisRelative   14L

Definition at line 34 of file connection_pool.cpp.

◆ CameraControl_Lamp

#define CameraControl_Lamp   22L

Definition at line 42 of file connection_pool.cpp.

◆ CameraControl_Pan

#define CameraControl_Pan   0L

Definition at line 20 of file connection_pool.cpp.

◆ CameraControl_PanRelative

#define CameraControl_PanRelative   9L

Definition at line 29 of file connection_pool.cpp.

◆ CameraControl_PanTilt

#define CameraControl_PanTilt   16L

Definition at line 36 of file connection_pool.cpp.

◆ CameraControl_PanTiltRelative

#define CameraControl_PanTiltRelative   17L

Definition at line 37 of file connection_pool.cpp.

◆ CameraControl_Privacy

#define CameraControl_Privacy   8L

Definition at line 28 of file connection_pool.cpp.

◆ CameraControl_Roll

#define CameraControl_Roll   2L

Definition at line 22 of file connection_pool.cpp.

◆ CameraControl_RollRelative

#define CameraControl_RollRelative   11L

Definition at line 31 of file connection_pool.cpp.

◆ CameraControl_ScanMode

#define CameraControl_ScanMode   7L

Definition at line 27 of file connection_pool.cpp.

◆ CameraControl_Tilt

#define CameraControl_Tilt   1L

Definition at line 21 of file connection_pool.cpp.

◆ CameraControl_TiltRelative

#define CameraControl_TiltRelative   10L

Definition at line 30 of file connection_pool.cpp.

◆ CameraControl_Zoom

#define CameraControl_Zoom   3L

Definition at line 23 of file connection_pool.cpp.

◆ CameraControl_ZoomRelative

#define CameraControl_ZoomRelative   12L

Definition at line 32 of file connection_pool.cpp.

◆ VideoProcAmp_BacklightCompensation

#define VideoProcAmp_BacklightCompensation   8

Definition at line 56 of file connection_pool.cpp.

◆ VideoProcAmp_Brightness

#define VideoProcAmp_Brightness   0

Definition at line 48 of file connection_pool.cpp.

◆ VideoProcAmp_ColorEnable

#define VideoProcAmp_ColorEnable   6

Definition at line 54 of file connection_pool.cpp.

◆ VideoProcAmp_Contrast

#define VideoProcAmp_Contrast   1

Definition at line 49 of file connection_pool.cpp.

◆ VideoProcAmp_Flags_Auto

#define VideoProcAmp_Flags_Auto   0x0001

Definition at line 58 of file connection_pool.cpp.

◆ VideoProcAmp_Flags_Manual

#define VideoProcAmp_Flags_Manual   0x0002

Definition at line 59 of file connection_pool.cpp.

◆ VideoProcAmp_Gain

#define VideoProcAmp_Gain   9

Definition at line 57 of file connection_pool.cpp.

◆ VideoProcAmp_Gamma

#define VideoProcAmp_Gamma   5

Definition at line 53 of file connection_pool.cpp.

◆ VideoProcAmp_Hue

#define VideoProcAmp_Hue   2

Definition at line 50 of file connection_pool.cpp.

◆ VideoProcAmp_Saturation

#define VideoProcAmp_Saturation   3

Definition at line 51 of file connection_pool.cpp.

◆ VideoProcAmp_Sharpness

#define VideoProcAmp_Sharpness   4

Definition at line 52 of file connection_pool.cpp.

◆ VideoProcAmp_WhiteBalance

#define VideoProcAmp_WhiteBalance   7

Definition at line 55 of file connection_pool.cpp.