11#ifndef RECORDING_HANDLER_H
12#define RECORDING_HANDLER_H
14#include "../interfaces/BasicCamera.hpp"
15#include "../vision/aruco/TagDetector.h"
16#include "../vision/cameras/ZEDCam.h"
17#include "../vision/objects/ObjectDetector.h"
20#include <opencv2/opencv.hpp>
43 enum class RecordingMode
47 eObjectDetectionHandler
87 int m_nTotalVideoFeeds;
88 RecordingMode m_eRecordingMode;
89 std::vector<std::shared_ptr<ZEDCamera>> m_vZEDCameras;
90 std::vector<std::shared_ptr<BasicCamera>> m_vBasicCameras;
91 std::vector<std::shared_ptr<TagDetector>> m_vTagDetectors;
92 std::vector<std::shared_ptr<ObjectDetector>> m_vObjectDetectors;
93 std::vector<cv::VideoWriter> m_vCameraWriters;
94 std::vector<bool> m_vRecordingToggles;
95 std::vector<cv::Mat> m_vFrames;
96 std::vector<cv::cuda::GpuMat> m_vGPUFrames;
97 std::vector<std::future<bool>> m_vFrameFutures;
Interface class used to easily multithread a child class.
Definition AutonomyThread.hpp:38
The RecordingHandler class serves to enumerate the cameras available from the CameraHandler and retri...
Definition RecordingHandler.h:36
void SetRecordingFPS(const int nRecordingFPS)
Mutator for the desired FPS for all camera recordings.
Definition RecordingHandler.cpp:687
void ThreadedContinuousCode() override
This code will run continuously in a separate thread. New frames from the cameras that have recording...
Definition RecordingHandler.cpp:113
void UpdateRecordableTagDetectors()
This method is used internally by the class to update the number of TagDetectors that have recording ...
Definition RecordingHandler.cpp:436
void UpdateRecordableObjectDetectors()
This method is used internally by the class to update the number of ObjectDetectors that have recordi...
Definition RecordingHandler.cpp:560
void RequestAndWriteTagDetectorFrames()
This method is used internally by the RecordingHandler to request and write frames to from the TagDet...
Definition RecordingHandler.cpp:510
int GetRecordingFPS() const
Accessor for the desired FPS for all camera recordings.
Definition RecordingHandler.cpp:701
void UpdateRecordableCameras()
This method is used internally by the class to update the number of cameras that have recording enabl...
Definition RecordingHandler.cpp:172
void RequestAndWriteObjectDetectorFrames()
This method is used internally by the RecordingHandler to request and write frames to from the Object...
Definition RecordingHandler.cpp:637
~RecordingHandler()
Destroy the Recording Handler:: Recording Handler object.
Definition RecordingHandler.cpp:90
void RequestAndWriteCameraFrames()
This method is used internally by the RecordingHandler to request and write frames to from the camera...
Definition RecordingHandler.cpp:313
void PooledLinearCode() override
This method holds the code that is ran in the thread pool started by the ThreadedLinearCode() method....
Definition RecordingHandler.cpp:162