当前位置: 首页 > news >正文

嵌入式linux相机 转换模块

convert_manager.c


#include <config.h>
#include <convert_manager.h>
#include <string.h>static PT_VideoConvert g_ptVideoConvertHead = NULL;/*********************************************************************** 函数名称: RegisterVideoConvert* 功能描述: 注册"字体模块", 所谓字体模块就是取出字符位图的方法* 输入参数: ptVideoConvert - 一个结构体,内含"取出字符位图"的操作函数* 输出参数: 无* 返 回 值: 0 - 成功, 其他值 - 失败* 修改日期        版本号     修改人	      修改内容* -----------------------------------------------* 2013/02/08	     V1.0	  韦东山	      创建***********************************************************************///构造结构体,并形成链表
int RegisterVideoConvert(PT_VideoConvert ptVideoConvert)
{PT_VideoConvert ptTmp;if (!g_ptVideoConvertHead){g_ptVideoConvertHead   = ptVideoConvert;ptVideoConvert->ptNext = NULL;}else{ptTmp = g_ptVideoConvertHead;while (ptTmp->ptNext){ptTmp = ptTmp->ptNext;}ptTmp->ptNext     = ptVideoConvert;ptVideoConvert->ptNext = NULL;}return 0;
}/*********************************************************************** 函数名称: ShowVideoConvert* 功能描述: 显示本程序能支持的"字体模块"* 输入参数: 无* 输出参数: 无* 返 回 值: 无* 修改日期        版本号     修改人	      修改内容* -----------------------------------------------* 2013/02/08	     V1.0	  韦东山	      创建***********************************************************************///显示一个结构体的name成员
void ShowVideoConvert(void)
{int i = 0;PT_VideoConvert ptTmp = g_ptVideoConvertHead;while (ptTmp){printf("%02d %s\n", i++, ptTmp->name);ptTmp = ptTmp->ptNext;}
}/*********************************************************************** 函数名称: GetVideoConvert* 功能描述: 根据名字取出指定的"字体模块"* 输入参数: pcName - 名字* 输出参数: 无* 返 回 值: NULL   - 失败,没有指定的模块, *            非NULL - 字体模块的PT_VideoConvert结构体指针* 修改日期        版本号     修改人	      修改内容* -----------------------------------------------* 2013/02/08	     V1.0	  韦东山	      创建***********************************************************************///根据结构的name来得到结构体
PT_VideoConvert GetVideoConvert(char *pcName)
{PT_VideoConvert ptTmp = g_ptVideoConvertHead;while (ptTmp){if (strcmp(ptTmp->name, pcName) == 0){return ptTmp;}ptTmp = ptTmp->ptNext;}return NULL;
}/*********************************************************************** 函数名称: FontsInit* 功能描述: 调用各个字体模块的初始化函数* 输入参数: 无* 输出参数: 无* 返 回 值: 0 - 成功, 其他值 - 失败* 修改日期        版本号     修改人	      修改内容* -----------------------------------------------* 2013/02/08	     V1.0	  韦东山	      创建***********************************************************************///各个转化模块初始化
int VideoConvertInit(void)
{int iError;iError = Yuv2RgbInit();iError |= Mjpeg2RgbInit();iError |= Rgb2RgbInit();return iError;
}

convert_manager.h


#ifndef _CONVERT_MANAGER_H
#define _CONVERT_MANAGER_H#include <config.h>
#include <video_manager.h>typedef struct VideoConvert {int (*isSupport)(int iPixelFormatIn, int iPixelFormatOut); // 看输入像素格式 是否支持 转化成 输出像素格式int (*Convert)(PT_VideoBuf ptVideoBufIn, PT_VideoBuf ptVideoBufOut); //输入像素buf 转换成 输出像素buf int (*ConvertExit)(PT_VideoBuf ptVideoBufOut);//输出像素buf在 convert函数中申请内存,用完要释放掉
}T_VideoConvert, *PT_VideoConvert;#endif /* _CONVERT_MANAGER_H */

http://www.lryc.cn/news/401930.html

相关文章:

  • 【自学安全防御】二、防火墙NAT智能选路综合实验
  • 【Android】传给后端的Url地址被转码问题处理
  • 1.厦门面试
  • 设计模式使用场景实现示例及优缺点(行为型模式——状态模式)
  • 抖音短视频seo矩阵系统源码(搭建技术开发分享)
  • 基于 asp.net家庭财务管理系统设计与实现
  • allure_pytest:AttributeError: ‘str‘ object has no attribute ‘iter_parents‘
  • C语言 反转链表
  • MFC CRectTracker 类用法详解
  • 好玩的调度技术-场景编辑器
  • 提高自动化测试脚本编写效率 5大关键注意事项
  • 护眼落地灯哪个更护眼?2024年度最值得入手的5款护眼大路灯推荐
  • DP讨论——适配器、桥接、代理、装饰器模式通用理解
  • Apache AGE的MATCH子句
  • Netty Websocket
  • 用户注册业务逻辑、接口设计和实现、前端逻辑
  • ubuntu搭建harbor私仓
  • 深层神经网络示例
  • vue中获取剪切板中的内容
  • 十五、【机器学习】【监督学习】- 神经网络回归
  • 知识图谱和 LLM:利用Neo4j驾驭大型语言模型(探索真实用例)
  • 目标检测入门:4.目标检测中的一阶段模型和两阶段模型
  • zookeeper+kafka消息队列群集部署
  • [K8S]一、Flink on K8S
  • 系统架构设计师教程 第3章 信息系统基础知识-3.1 信息系统概述
  • Gemma的简单理解;Vertex AI的简单理解,与chatGpt区别
  • Lua 数组
  • 游戏中的敏感词算法初探
  • 使用Java和Apache Kafka Streams实现实时流处理应用
  • 分享 .NET EF6 查询并返回树形结构数据的 2 个思路和具体实现方法