欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 房产 > 家装 > 嵌入式linux相机 摄像头模块

嵌入式linux相机 摄像头模块

2025/6/29 5:06:39 来源:https://blog.csdn.net/weixin_45711878/article/details/140460387  浏览:    关键词:嵌入式linux相机 摄像头模块

 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 4struct 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

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com