5 #include <opencv2/highgui/highgui.hpp>
6 #include <opencv2/imgproc/imgproc.hpp>
8 #include "interface/mmal/mmal.h"
9 #include "interface/mmal/mmal_logging.h"
10 #include "interface/mmal/mmal_buffer.h"
11 #include "interface/mmal/util/mmal_util.h"
12 #include "interface/mmal/util/mmal_util_params.h"
13 #include "interface/mmal/util/mmal_default_components.h"
14 #include "interface/mmal/util/mmal_connection.h"
16 #include <semaphore.h>
23 static const int VIDEO_OUTPUT_BUFFERS_NUM = 3;
24 static const int VIDEO_FRAME_RATE_NUM = 30;
25 static const int VIDEO_FRAME_RATE_DEN = 1;
58 static void video_buffer_callback(MMAL_PORT_T *port, MMAL_BUFFER_HEADER_T *buffer);
60 MMAL_COMPONENT_T* cameraComponent;
62 MMAL_PORT_T* previewPort;
64 MMAL_PORT_T* videoPort;
66 MMAL_PORT_T* stillPort;
68 MMAL_POOL_T* videoPool;
70 VCOS_SEMAPHORE_T frame_semaphore;
cv::Mat frame
Current frame.
Definition: PiCam.hpp:54
std::function< void(cv::Mat)> callback
Callback function that processes each frame.
Definition: PiCam.hpp:56
PiCam(unsigned int width, unsigned int height, std::function< void(cv::Mat)> callback)
Definition: PiCam.cpp:47
void start()
Definition: PiCam.cpp:164
unsigned int height
Requested height for the video stream.
Definition: PiCam.hpp:52
unsigned int width
Requested width for the video stream.
Definition: PiCam.hpp:50
~PiCam()
Definition: PiCam.cpp:194