// use https://github.com/mpromonet/libv4l2cpp
|
|
#ifndef _PL_V4L2Source_H_
|
#define _PL_V4L2Source_H_
|
|
#include <linux/videodev2.h>
|
#include "PipeLine.h"
|
|
struct PL_V4L2Source_Config
|
{
|
std::string device;
|
int ioType; // V4l2Access::IoType::IOTYPE_READWRITE=0, IOTYPE_MMAP=1
|
int format;
|
uint16_t width;
|
uint16_t height;
|
uint16_t fps;
|
|
PL_V4L2Source_Config() :
|
device("/dev/video0"), ioType(1), format(0), width(1280), height(720), fps(10)//V4L2_PIX_FMT_MJPEG
|
{ }
|
};
|
|
class PL_V4L2Source : public PipeLineElem
|
{
|
public:
|
PL_V4L2Source();
|
virtual ~PL_V4L2Source();
|
|
virtual bool init(void* args);
|
virtual void finit();
|
|
virtual bool pay(const PipeMaterial& pm);
|
virtual bool gain(PipeMaterial& pm);
|
|
private:
|
void* internal;
|
};
|
|
PipeLineElem* create_PL_V4L2Source();
|
|
#endif
|