嵌入式linux相机 摄像头模块

avatar
作者
猴君
阅读量:0

 video_manager.c

/**********************************************************************  * 函数名称: RegisterVideoOpr  * 功能描述: 注册"字体模块", 所谓字体模块就是取出字符位图的方法  * 输入参数: ptVideoOpr - 一个结构体,内含"取出字符位图"的操作函数  * 输出参数: 无  * 返 回 值: 0 - 成功, 其他值 - 失败  * 修改日期        版本号     修改人	      修改内容  * -----------------------------------------------  * 2013/02/08	     V1.0	  韦东山	      创建  ***********************************************************************/  int RegisterVideoOpr(PT_VideoOpr ptVideoOpr) { 	PT_VideoOpr ptTmp;  	if (!g_ptVideoOprHead) 	{ 		g_ptVideoOprHead   = ptVideoOpr; 		ptVideoOpr->ptNext = NULL; 	} 	else 	{ 		ptTmp = g_ptVideoOprHead; 		while (ptTmp->ptNext) 		{ 			ptTmp = ptTmp->ptNext; 		} 		ptTmp->ptNext     = ptVideoOpr; 		ptVideoOpr->ptNext = NULL; 	}  	return 0; }   /**********************************************************************  * 函数名称: ShowVideoOpr  * 功能描述: 显示本程序能支持的"字体模块"  * 输入参数: 无  * 输出参数: 无  * 返 回 值: 无  * 修改日期        版本号     修改人	      修改内容  * -----------------------------------------------  * 2013/02/08	     V1.0	  韦东山	      创建  ***********************************************************************/  void ShowVideoOpr(void) { 	int i = 0; 	PT_VideoOpr ptTmp = g_ptVideoOprHead;  	while (ptTmp) 	{ 		printf("%02d %s\n", i++, ptTmp->name); 		ptTmp = ptTmp->ptNext; 	} }  /**********************************************************************  * 函数名称: GetVideoOpr  * 功能描述: 根据名字取出指定的"字体模块"  * 输入参数: pcName - 名字  * 输出参数: 无  * 返 回 值: NULL   - 失败,没有指定的模块,   *            非NULL - 字体模块的PT_VideoOpr结构体指针  * 修改日期        版本号     修改人	      修改内容  * -----------------------------------------------  * 2013/02/08	     V1.0	  韦东山	      创建  ***********************************************************************/  PT_VideoOpr GetVideoOpr(char *pcName) { 	PT_VideoOpr ptTmp = g_ptVideoOprHead; 	 	while (ptTmp) 	{ 		if (strcmp(ptTmp->name, pcName) == 0) 		{ 			return ptTmp; 		} 		ptTmp = ptTmp->ptNext; 	} 	return NULL; }   /**********************************************************************  * 函数名称: FontsInit  * 功能描述: 调用各个字体模块的初始化函数  * 输入参数: 无  * 输出参数: 无  * 返 回 值: 0 - 成功, 其他值 - 失败  * 修改日期        版本号     修改人	      修改内容  * -----------------------------------------------  * 2013/02/08	     V1.0	  韦东山	      创建  ***********************************************************************/  int VideoInit(void) { 	int iError;      iError = V4l2Init();  	return iError; } 

video_manager.h

#ifndef _VIDEO_MANAGER_H #define _VIDEO_MANAGER_H  #include <config.h> #include <pic_operation.h>  #define NB_BUFFER 4  struct VideoDevice; struct VideoOpr; typedef struct VideoDevice T_VideoDevice, *PT_VideoDevice; typedef struct VideoOpr T_VideoOpr, *PT_VideoOpr;  typedef struct VideoDevice {     int iFd;     int iPixelFormat;     int iWidth;     int iHeight;      int iVideoBufCnt;     int iVideoBufMaxLen;     int iVideoBufCurIndex;     unsigned char *pucVideBuf[NB_BUFFER];      /* ���� */     PT_VideoOpr ptOPr; }T_VideoDevice, *PT_VideoDevice;  typedef struct VideoBuf {     T_PixelDatas tPixelDatas;     int iPixelFormat; }T_VideoBuf, *PT_VideoBuf;  typedef struct VideoOpr {     char *name;     int (*InitDevice)(char *strDevName, PT_VideoDevice ptVideoDevice);     int (*ExitDevice)(PT_VideoDevice ptVideoDevice);     int (*GetFrame)(PT_VideoDevice ptVideoDevice, PT_VideoBuf ptVideoBuf);     int (*PutFrame)(PT_VideoDevice ptVideoDevice, PT_VideoBuf ptVideoBuf);     int (*StartDevice)(PT_VideoDevice ptVideoDevice);     int (*StopDevice)(PT_VideoDevice ptVideoDevice); }T_VideoOpr, *PT_VideoOpr;   int V4l2Init(void);  #endif /* _VIDEO_MANAGER_H */

v4l2.c(链接)

v4l2.c

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!