Conscience Core
FrameSource.h
Go to the documentation of this file.
1 #ifndef MJPG_STREAMER_FrameSource_H
2 #define MJPG_STREAMER_FrameSource_H
3 
4 #include "CscCommon.h"
8 #include <condition_variable>
9 
10 using namespace conscience_core::media_capture;
11 using namespace conscience_core::ai;
12 
14 
15 typedef string FrameSourceId;
16 
19 };
20 
23 };
24 
26 public:
31 
32  map<string, string> additionalParameters;
33 
34  FrameSourceData(int frameSourceType, const map<string, string> &additionalParameters);
35 
36  bool equals(const FrameSourceData &other) const;
37  bool operator== (const FrameSourceData &other) const;
38 };
39 
41 public:
43 
48 
49  system_clock::time_point lastGrabTime = system_clock::now();
50 
55  std::condition_variable frameDataLockCondition;
56  mutex stateMutex;
57 
58  /* global JPG frame, this is more or less the "database" */
59  unsigned char *buf = nullptr;
60  int size = -1;
61 
63 
64  void start();
65  void stop();
66 
67  bool isStopped();
69 
70 protected:
71  virtual optional<cv::Mat> grab() = 0;
72  unique_ptr<CscLogger> logger = CscLogger::getForCategory("MJPGStreamer_FrameSource");
73 
74 private:
75  bool stopped = true;
76 };
77 
78 #define FRAME_SOURCE_PARAM_CAPTURE_ENGINE_ENTITY_SERIAL_NUMBER "entitySerialNumber"
79 #define FRAME_SOURCE_PARAM_CAPTURE_ENGINE_VIDEO_SOURCE_ID "videoSourceId"
80 #define FRAME_SOURCE_PARAM_CAPTURE_ENGINE_AI_PROCESSED_FRAMES "aiProcessedFrames"
81 
83 public:
84  CaptureEngineFrameSource(const FrameSourceData &frameSourceData);
85 protected:
86  const string entitySerialNumber;
87  const bool aiProcessedFrames;
88 
89  virtual optional<Mat> grab() override;
90 
91  ptr<CscEntityReflexion> reflexion = nullptr;
92  CscCaptureEngine *captureEngine = nullptr;
93 };
95 public:
96  virtual ptr<FrameSource> getFrameSource(const string &accessToken) = 0;
97 };
98 
99 
100 }
101 
102 #endif
conscience_core::mjpg_streamer::FrameSourceProvider
Definition: FrameSource.h:94
CSC_DLL_IMPORTEXPORT
#define CSC_DLL_IMPORTEXPORT
Definition: os.h:34
conscience_core::ai
Definition: alerts.cpp:12
conscience_core::mjpg_streamer::FrameSource::frameDataLockCondition
std::condition_variable frameDataLockCondition
Definition: FrameSource.h:55
conscience_core::mjpg_streamer::FrameSource
Definition: FrameSource.h:40
conscience_core::mjpg_streamer::FrameSource::frameDataLock
mutex frameDataLock
Definition: FrameSource.h:54
CscCaptureEngine.h
CscEntityReflexion.h
CscEntityReflexions.h
logger
static std::unique_ptr< CscLogger > logger
Definition: gltfHelpers.cpp:6
conscience_core::mjpg_streamer::FrameSourceData::additionalParameters
map< string, string > additionalParameters
Definition: FrameSource.h:32
conscience_core::mjpg_streamer::FrameSourceData
Definition: FrameSource.h:25
conscience_core::mjpg_streamer::FrameSourceType_CaptureEngine
@ FrameSourceType_CaptureEngine
Definition: FrameSource.h:22
conscience_core::mjpg_streamer::CaptureEngineFrameSource::aiProcessedFrames
const bool aiProcessedFrames
Definition: FrameSource.h:87
conscience_core::mjpg_streamer::FrameSource::frameSourceData
const FrameSourceData frameSourceData
Definition: FrameSource.h:68
conscience_core::mjpg_streamer::CaptureEngineFrameSource
Definition: FrameSource.h:82
conscience_core::mjpg_streamer::High
@ High
Definition: FrameSource.h:18
conscience_core::mjpg_streamer::CaptureEngineFrameSource::entitySerialNumber
const string entitySerialNumber
Definition: FrameSource.h:86
conscience_core::mjpg_streamer::FrameSourceData::frameSourceType
int frameSourceType
Definition: FrameSource.h:30
conscience_core::media_capture::CscCaptureEngine
Definition: CscCaptureEngine.h:128
conscience_core::mjpg_streamer
Definition: CscMJPGStreamer.cpp:32
CscCommon.h
conscience_core::mjpg_streamer::Medium
@ Medium
Definition: FrameSource.h:18
conscience_core::mjpg_streamer::Low
@ Low
Definition: FrameSource.h:18
conscience_core::mjpg_streamer::FrameSourceId
string FrameSourceId
Definition: FrameSource.h:15
conscience_core::media_capture
Definition: CscEntityReflexion.h:53
conscience_core::mjpg_streamer::FrameSource::quality
FrameSourceQuality quality
Definition: FrameSource.h:47
conscience_core::mjpg_streamer::FrameSourceQuality
FrameSourceQuality
Definition: FrameSource.h:17
conscience_core::mjpg_streamer::FrameSource::stateMutex
mutex stateMutex
Definition: FrameSource.h:56
ptr
std::shared_ptr< T > ptr
Definition: CscCommon.h:29
conscience_utils::equals
bool equals(const map< K, V > &map1, const map< K, V > &map2)
Definition: conscience_util.h:527
conscience_core::mjpg_streamer::FrameSource::uid
const FrameSourceId uid
Definition: FrameSource.h:42
conscience_core::mjpg_streamer::FrameSourceType
FrameSourceType
Definition: FrameSource.h:21
conscience_core::axiomes::operator==
bool operator==(const CscPoint2d &a, const CscPoint2d &b)
Definition: Csc2dTypes.cpp:107