10 #include "USBCamera.h"
11 #include "ErrorBase.h"
15 #include "HAL/cpp/priority_mutex.h"
18 #include <condition_variable>
24 static constexpr uint16_t kPort = 1180;
25 static constexpr uint8_t kMagicNumber[] = {0x01, 0x00, 0x00, 0x00};
26 static constexpr uint32_t kSize640x480 = 0;
27 static constexpr uint32_t kSize320x240 = 1;
28 static constexpr uint32_t kSize160x120 = 2;
29 static constexpr int32_t kHardwareCompression = -1;
30 static constexpr uint32_t kMaxImageSize = 200000;
35 std::shared_ptr<USBCamera> m_camera;
36 std::thread m_serverThread;
37 std::thread m_captureThread;
39 std::condition_variable_any m_newImageVariable;
40 std::vector<uint8_t*> m_dataPool;
41 unsigned int m_quality;
42 bool m_autoCaptureStarted;
44 std::tuple<uint8_t*, unsigned int, unsigned int, bool> m_imageData;
48 void SetImageData(uint8_t* data,
unsigned int size,
unsigned int start = 0,
49 bool imaqData =
false);
51 std::tuple<uint8_t*, unsigned int, unsigned int, bool> imageData);
61 void SetImage(Image
const* image);
63 void StartAutomaticCapture(
64 char const* cameraName = USBCamera::kDefaultCameraName);
75 void StartAutomaticCapture(std::shared_ptr<USBCamera> camera);
77 bool IsAutoCaptureStarted();
79 void SetQuality(
unsigned int quality);
80 unsigned int GetQuality();
82 void SetSize(
unsigned int size);
Definition: CameraServer.h:53
Definition: CameraServer.h:22
Definition: priority_mutex.h:22
Base class for most objects.
Definition: ErrorBase.h:66