嵌入式linux相机 摄像头模块
创始人
2025-01-09 12:35:36
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  #include   #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

相关内容

热门资讯

软件测试面试必杀篇:【2023... 800道软件测试面试真题,高清打印版打包带走,横扫软件测试面试高频问题&...
[C++ STL] vecto... 标题:[C++ STL] vector 详解@水墨不写bug目...
JAVA基础 一、目录一、注释单行 多行文档二、标识符注意​编辑三、类型转换排序注意四、变量变量的作用域常量定义命...
C++图书管理系统        设计一个图书信息管理系统,实现以下功能:系统以菜单方式工作...
Java的MVC架构中,con... 1.controller层        也被称为控制器,它是业务模块流程的控制中心。...
C语言:学生成绩管理系统(含源... 一.功能二.源代码 #include #include #include #define MA...
Python 新手最容易踩的坑 Python新手最容易踩的坑缩进错误忘记引入模块使用未定义的变量不理解变量作用域字符串格式化错误乱用...
周周星分享7.3—基于气象大数... 赛题2024中国高校计算机大赛 — 大数据挑战赛经验分享大家好,我是扫地僧团队的队长&...
Java导出千万级大数据到CS... 在实际应用中,我们经常需要从数据库中导出大量数据到CSV文件。如果数据量很大ÿ...
基于Java + Swing ... 目录开发工具系统结构功能展示登录与注册界面(通用)主界面(...