Logo
ApraPipes 1.0
Loading...
Searching...
No Matches
NvArgusCameraHelper.h
1#pragma once
2
3#include <thread>
4#include <map>
5
6#include <Argus/Argus.h>
7#include "CommonDefs.h"
8#include <mutex>
9
11{
12public:
13 typedef std::function<void(frame_sp &)> SendFrame;
14 typedef std::function<frame_sp()> MakeFrame;
15 static std::shared_ptr<NvArgusCameraHelper> create(uint32_t numBuffers, SendFrame sendFrame, MakeFrame makeFrame);
16
19
20 bool start(uint32_t width, uint32_t height, uint32_t fps, int cameraId);
21 bool stop(); // blocking call
22 bool queueFrameToCamera();
23
24 void operator()();
25
26private:
27 void sendFrame(Argus::Buffer *buffer);
28
29private:
32 std::thread mThread;
35
36private:
37 uint32_t numBuffers;
38
39 Argus::UniqueObj<Argus::Buffer> *buffers;
40 std::map<void *, frame_sp> mQueuedFrames;
41
42 Argus::UniqueObj<Argus::CameraProvider> cameraProvider;
43 Argus::UniqueObj<Argus::CaptureSession> captureSession;
44 Argus::UniqueObj<Argus::OutputStream> outputStream;
45};
46
48{
49public:
50 static Argus::ICameraProvider *getNvArgusCameraUtils();
51 virtual ~NvArgusCameraUtils();
52 Argus::ICameraProvider *_getNvArgusCameraUtils();
53
54private:
56 static boost::shared_ptr<NvArgusCameraUtils> instance;
57 Argus::UniqueObj<Argus::CameraProvider> cameraProvider;
58};
Definition NvArgusCameraHelper.h:11
std::thread mThread
Definition NvArgusCameraHelper.h:32
Argus::UniqueObj< Argus::OutputStream > outputStream
Definition NvArgusCameraHelper.h:44
std::function< void(frame_sp &)> SendFrame
Definition NvArgusCameraHelper.h:13
std::map< void *, frame_sp > mQueuedFrames
Definition NvArgusCameraHelper.h:40
Argus::UniqueObj< Argus::Buffer > * buffers
Definition NvArgusCameraHelper.h:39
void sendFrame(Argus::Buffer *buffer)
Definition NvArgusCameraHelper.cpp:32
SendFrame mSendFrame
Definition NvArgusCameraHelper.h:30
MakeFrame mMakeFrame
Definition NvArgusCameraHelper.h:31
Argus::UniqueObj< Argus::CameraProvider > cameraProvider
Definition NvArgusCameraHelper.h:42
~NvArgusCameraHelper()
Definition NvArgusCameraHelper.cpp:16
std::function< frame_sp()> MakeFrame
Definition NvArgusCameraHelper.h:14
std::mutex mQueuedFramesMutex
Definition NvArgusCameraHelper.h:33
bool start(uint32_t width, uint32_t height, uint32_t fps, int cameraId)
Definition NvArgusCameraHelper.cpp:113
Argus::UniqueObj< Argus::CaptureSession > captureSession
Definition NvArgusCameraHelper.h:43
void operator()()
Definition NvArgusCameraHelper.cpp:42
uint32_t numBuffers
Definition NvArgusCameraHelper.h:37
bool stop()
Definition NvArgusCameraHelper.cpp:274
bool queueFrameToCamera()
Definition NvArgusCameraHelper.cpp:61
static std::shared_ptr< NvArgusCameraHelper > create(uint32_t numBuffers, SendFrame sendFrame, MakeFrame makeFrame)
Definition NvArgusCameraHelper.cpp:22
NvArgusCameraHelper()
Definition NvArgusCameraHelper.cpp:11
bool mRunning
Definition NvArgusCameraHelper.h:34
Definition NvArgusCameraHelper.h:48
virtual ~NvArgusCameraUtils()
Definition NvArgusCameraHelper.cpp:94
static boost::shared_ptr< NvArgusCameraUtils > instance
Definition NvArgusCameraHelper.h:56
Argus::UniqueObj< Argus::CameraProvider > cameraProvider
Definition NvArgusCameraHelper.h:57
NvArgusCameraUtils()
Definition NvArgusCameraHelper.cpp:84
Argus::ICameraProvider * _getNvArgusCameraUtils()
Definition NvArgusCameraHelper.cpp:98
static Argus::ICameraProvider * getNvArgusCameraUtils()
Definition NvArgusCameraHelper.cpp:104