框架
我们将从摄像头读到数据在LCD上显示,首先将摄像头数据读出到一块内存上,然后设置好LCD控制器从这块内存读取数据到LCD显示屏上,对于摄像头数据格式来说有YUV,MJPEG,RGB,而我们的LCD只支持RGB格式的数据格式,所以这里面还要将读取到的摄像头头数据进行一数据格式的转化,除了数据格式的转换外还需要分辨率的转化,如下图所示流程:
我们以面向对象的思路来写这个应用程序,首先抽象出对象的结构体,对于读过程我们可以抽象出如下结构体
用V4L2框架读取摄像头图像
struct VideoDevice {
int iFd;
int iPixelFormat;
int iWidth;
int iHeight;
int iVideoBufCnt;
int iVideoBufMaxLen;
int iVideoBufCurIndex;
unsigned char *pucVideBuf[NB_BUFFER];
/* 函数 */
PT_VideoOpr ptOPr;
};
/*视频数据缓冲区*/
typedef struct VideoBuf {
T_PixelDatas tPixelDatas;//视频数据的参数
int iPixelFormat;//视频数据格式
}T_VideoBuf, *PT_VideoBuf;
struct VideoOpr {
char *name;/*设备名字*/
int (*InitD