15 #ifndef _CAM_GST_CONFIG_H_
16 #define _CAM_GST_CONFIG_H_
19 #include <gst/app/gstappsink.h>
31 #include <base/samples/Frame.hpp>
64 CamGst(std::string
const& device);
92 base::samples::frame::frame_mode_t mode = base::samples::frame::MODE_UNDEFINED,
125 bool getBuffer(std::vector<uint8_t>& buffer,
126 bool blocking_read=
false, int32_t timeout=0);
139 std::string
const& file_name);
149 return mPipelineRunning;
158 return mFileDescriptor;
169 void setCameraParameters(uint32_t* width, uint32_t* height, uint32_t* fps);
171 GstElement* createDefaultSource(std::string
const& device);
173 GstElement* createDefaultCap(uint32_t
const width, uint32_t
const height, uint32_t
const fps, uint32_t bpp, base::samples::frame::frame_mode_t mode );
178 GstElement* createDefaultEncoder(int32_t
const jpeg_quality);
180 GstElement* createDefaultSink();
188 bool readFileDescriptor();
190 inline void rmFileDescriptor() {
191 mFileDescriptor = -1;
192 std::cout <<
"FD set back to -1" << std::endl;
196 static void* mainLoop(
void* ptr);
201 static gboolean callbackMessagesStatic(GstBus* bus, GstMessage* msg, gpointer data);
206 gboolean callbackMessages(GstBus* bus, GstMessage* msg, gpointer data);
211 static void callbackNewBufferStatic(GstElement*
object, CamGst* cam_gst_p);
216 void callbackNewBuffer(GstElement*
object, CamGst* cam_gst_p);
221 void printElementFactories();
225 uint32_t mJpegQuality;
227 pthread_t* mMainLoopThread;
228 GstElement* mPipeline;
229 GstBus* mGstPipelineBus;
230 bool mPipelineRunning;
232 pthread_mutex_t mMutexBuffer;
234 uint32_t mBufferSize;
240 base::samples::frame::frame_mode_t mRequestedFrameMode;
static const uint32_t DEFAULT_JPEG_QUALITY
Definition: cam_gst.h:54
static const uint32_t DEFAULT_WIDTH
Definition: cam_gst.h:50
static const uint32_t DEFAULT_HEIGHT
Definition: cam_gst.h:51
bool getBuffer(std::vector< uint8_t > &buffer, bool blocking_read=false, int32_t timeout=0)
Definition: cam_gst.cpp:234
bool skipBuffer()
Definition: cam_gst.cpp:278
bool startPipeline()
Definition: cam_gst.cpp:162
bool storeImageToFile(std::vector< uint8_t > const &buffer, std::string const &file_name)
CamGstException(const std::string &what_arg)
Definition: cam_gst.h:38
static const uint32_t DEFAULT_FPS
Definition: cam_gst.h:52
bool hasNewBuffer()
Definition: cam_gst.h:144
static const uint32_t DEFAULT_PIPELINE_TIMEOUT
Definition: cam_gst.h:55
int getFileDescriptor()
Definition: cam_gst.h:157
void deletePipeline()
Definition: cam_gst.cpp:142
bool isPipelineRunning()
Definition: cam_gst.h:148
static const uint32_t DEFAULT_BPP
Definition: cam_gst.h:53
~CamGst()
Definition: cam_gst.cpp:48
void createDefaultPipeline(bool check_for_valid_params=false, uint32_t width=DEFAULT_WIDTH, uint32_t height=DEFAULT_HEIGHT, uint32_t fps=DEFAULT_FPS, uint32_t bpp=DEFAULT_BPP, base::samples::frame::frame_mode_t mode=base::samples::frame::MODE_UNDEFINED, uint32_t jpeg_quality=DEFAULT_JPEG_QUALITY)
Definition: cam_gst.cpp:82
void stopPipeline()
Definition: cam_gst.cpp:220