41#include <ARX/AR/config.h>
43#include <wrl/client.h>
47#include <condition_variable>
61 Platform::String^ pixelFormat = Windows::Media::MediaProperties::MediaEncodingSubtypes::Rgb24,
62 int preferredDeviceIndex = 0,
63 Windows::Devices::Enumeration::Panel preferredLocation = Windows::Devices::Enumeration::Panel::Unknown,
64 void (*errorCallback)(
void *) = NULL,
65 void *errorCallbackUserdata = NULL
90 void _GrabFrameAsync(Media::CaptureFrameGrabber^ frameGrabber);
97 Platform::String^ m_pixelFormat;
98 Platform::Agile<Windows::Devices::Enumeration::DeviceInformationCollection> m_devices;
99 Platform::Agile<Windows::Media::Capture::MediaCapture> m_mediaCapture;
101 Windows::Devices::Enumeration::Panel m_deviceLocation;
102 std::string m_deviceName;
103 ::Media::CaptureFrameGrabber^ m_frameGrabber;
104 bool m_frameGrabberInited;
106 long m_frameCountOut;
110 std::mutex m_bufLock;
111 void (*m_errorCallback)(
void *);
112 void *m_errorCallbackUserdata;
113 bool m_frameGrabberIsDone;
114 std::mutex m_stopLockMutex;
115 std::condition_variable m_stopLockCondVar;