当前位置: 首页 > 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 */

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • opencv—常用函数学习_“干货“_5
  • 解决 Yarn 运行时的 Node.js 版本问题:一个详尽的指南
  • Font Awesome 图表图标
  • vue3前端开发-执行npm run dev提示报错怎么解决
  • 如何防范场外个股期权的交易风险?
  • leetcode力扣_二分查找
  • Flutter 状态管理调研总结
  • 在mybatis-plus中关于@insert注解自定义批处理sql导致其雪花算法失效而无法自动生成id的解决方法
  • How to integrate GPT-4 model hosted on Azure with the gptstudio package
  • Qt日志库QsLog使用教程
  • MySQL(8)事务
  • 网络安全——防御课实验二
  • Chatgpt和GLM api的使用
  • 【iOS】类对象的结构分析
  • 沙尘传输模拟教程(基于wrf-chem)
  • 2019年如何成为全栈工程师?
  • Angular 响应式表单 基础例子
  • ComponentOne 2017 V2版本正式发布
  • Cumulo 的 ClojureScript 模块已经成型
  • github指令
  • golang中接口赋值与方法集
  • Java超时控制的实现
  • Java教程_软件开发基础
  • python3 使用 asyncio 代替线程
  • React中的“虫洞”——Context
  • tweak 支持第三方库
  • Vue学习第二天
  • Webpack 4 学习01(基础配置)
  • webpack入门学习手记(二)
  • 第2章 网络文档
  • 对象管理器(defineProperty)学习笔记
  • 聊聊sentinel的DegradeSlot
  • 猫头鹰的深夜翻译:Java 2D Graphics, 简单的仿射变换
  • 三栏布局总结
  • 线上 python http server profile 实践
  • 写代码的正确姿势
  • 译自由幺半群
  • TPG领衔财团投资轻奢珠宝品牌APM Monaco
  • ​ArcGIS Pro 如何批量删除字段
  • # 达梦数据库知识点
  • #C++ 智能指针 std::unique_ptr 、std::shared_ptr 和 std::weak_ptr
  • #define,static,const,三种常量的区别
  • #QT(QCharts绘制曲线)
  • #前后端分离# 头条发布系统
  • #在 README.md 中生成项目目录结构
  • $.each()与$(selector).each()
  • $.extend({},旧的,新的);合并对象,后面的覆盖前面的
  • (Oracle)SQL优化技巧(一):分页查询
  • (八)Spring源码解析:Spring MVC
  • (非本人原创)史记·柴静列传(r4笔记第65天)
  • (附源码)spring boot儿童教育管理系统 毕业设计 281442
  • (剑指Offer)面试题34:丑数
  • (一)Dubbo快速入门、介绍、使用
  • (转)创业的注意事项
  • *p++,*(p++),*++p,(*p)++区别?