IPC网络摄像头媒体视屏流MI_VIF结构体

 一个典型的IPC数据流
下图是一个典型的IPC数据流模型,流动过程如下:
1. 建立Vif->Vpe->Venc的绑定关系;
2. Sensor 将数据送入vif处理;
3. Vif 将处理后的数据写入Output Port申请的内存,送入下一级;
4. Vpe接收数据,分别送入Pass0(ISP/SCL0)、Pass1(LDC)、Pass2(SCL1)进行处理,将处理的数据写入Output Port申请的内存,送入下一级;
5. Venc接收数据,送入编码器进行编码处理,将编码后的数据写入RingPool内存区;
6. 用户调用Venc的接口取流,送入用户业务层App。

------------------------------

视频输入(VIF)实现启用视频输入设备、视频输入通道、绑定视频输入通道等功能。

==================================

视频输入(VIF)模块结构体如下:

MI_VIF_DevAttr_t结构体

MI_VIF_DevAttr_t定义视频输入设备的属性。

MI_VIF_DevAttr_t定义视频输入设备的属性。typedef struct MI_VIF_DevAttr_s
{MI_VIF_IntfMode_e eIntfMode;MI_VIF_WorkMode_e eWorkMode;MI_VIF_HDRType_e eHDRType;MI_VIF_ClkEdge_e eClkEdge;MI_VIF_DataYuvSeq_e eDataSeq;MI_VIF_BitOrder_e eBitOrder;/* adjust bit order layout */MI_VIF_SyncAttr_t stSyncAttr;
} MI_VIF_DevAttr_t;

成员包括:

---------------------------------------------

MI_VIF_ChnPortAttr_t结构体

MI_VIF_ChnPortAttr_t定义 VIF 通道Port属性。

typedef struct MI_VIF_ChnPortAttr_s{MI_SYS_WindowRect_t stCapRect;MI_SYS_WindowRect_t stDestSize;MI_SYS_FieldType_e enCapSel;MI_SYS_FrameScanMode_e nScanMode;MI_SYS_PixelFormat_e ePixFormat;MI_VI_FrameRate_e eFrameRate;MI_U32 u32FrameModeLineCount
} MI_VIF_ChnPortAttr_t;

成员包括:

Port仅仅支持设置stDestSize,enDstFrameRate,其他属性会被忽略

------------------------------------------------

MI_VIF_ChnPortStat_t结构体

MI_VIF_ChnPortStat_t 定义VIF 通道信息结构体。

typedef struct MI_VIF_ChnStat_s
{MI_BOOL bEnable; /* Whether this channel is enabled */MI_U32 u32IntCnt; /* The VIFdeo frame interrupt count */MI_U32 u32FrmRate; /* current frame rate */MI_U32 u32LostInt; /* The interrupt is received but nobody care */MI_U32 u32VbFail; /* video buffer malloc failure */MI_U32 u32PicWidth;/* curren pic width */MI_U32 u32PicHeight;/* current pic height */
} MI_VIF_ChnPortStat_t;

成员包括:

  • 结构体的中断计数,可用于无中断检测。
  • 该结构体的帧率是每 10 秒钟的平均帧率,即 VIF 会每隔十秒统计一次平均帧率, 该值并不精确。
  • 如果查询到该结构体的中断丢失计数一直在增加,说明 VIF 工作出现异常。

-------------------------------------------------

MI_VIF_SNRPad_e结构体

MI_VIF_SNRPad_e定义SensorPad Id。

typedef enum
{E_MI_VIF_SNRPAD_NULL,E_MI_VIF_SNRPADID0,E_MI_VIF_SNRPADID1,E_MI_VIF_SNRPADID2,E_MI_VIF_SNRPADID3,E_MI_VIF_SNRPAD_NUM
}MI_VIF_SNRPad_e;

成员包括:

在默认情况下是VIF Dev0 对应Sensor0, Dev2 对应Sensor1。

参考下图:

------------------------------------------

MI_VIF_Dev2SnrPadMuxCfg_t 结构体

MI_VIF_Dev2SnrPadMuxCfg_t 定义VIF 设备和SensorPad 绑定关系

typedef struct MI_VIF_VIFDev2SnrPadMuxConf_s
{MI_VIF_SNRPad_e eSensorPadID; //sensor Pad idMI_U32 u32PlaneID; //For HDR, 1 is short exposure, 0 is long exposure,
} MI_VIF_Dev2SnrPadMuxCfg_t;

成员包括:

在默认情况下是VIF Dev0 对应Sensor0, Dev2 对应Sensor1.默认不调用该接口。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/764852.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CI/CD环境搭建

服务简介 Gitlab 官网:https://about.gitlab.com/ GitLab 是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的Web服务。安装方法是参考GitLab在GitHub上的Wiki页面。Gitlab是被广泛使用的基于git的开源代码管…

设计数据库之内部模式:SQL基本操作

Chapter4:设计数据库之内部模式:SQL基本操作 笔记来源: 1.《漫画数据库》—科学出版社 2.SQL | DDL, DQL, DML, DCL and TCL Commands 设计数据库的步骤: 概念模式 概念模式(conceptual schema)是指将现实世界模型化的阶段进而&…

【网站项目】295商业辅助决策系统

🙊作者简介:拥有多年开发工作经验,分享技术代码帮助学生学习,独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。🌹赠送计算机毕业设计600个选题excel文件,帮助大学选题。赠送开题报告模板&#xff…

opencv 傅里叶变换(低通滤波 + 高通滤波)

文章目录 1、傅里叶变换2、通过numpy实现3、高通滤波器5、通过opencv实现傅里叶变换6、低通滤波器7、C实现傅里叶变换 1、傅里叶变换 时域分析:以时间作为参照物,世间万物都是随着时间变化而变化,并且不会停止 频域分析:认为世间万…

使用PDFBox调整PDF每页格式

目录 一、内容没有图片 二、内容有图片 maven依赖&#xff0c;这里使用的是pdfbox的2.0.30版本 <dependency><groupId>org.apache.pdfbox</groupId><artifactId>pdfbox</artifactId><version>2.0.30</version></dependency>…

【Android】【Bluetooth Stack】蓝牙电话协议分析(超详细)

1. 精讲蓝牙协议栈&#xff08;Bluetooth Stack&#xff09;&#xff1a;SPP/A2DP/AVRCP/HFP/PBAP/IAP2/HID/MAP/OPP/PAN/GATTC/GATTS/HOGP等协议理论 2. 欢迎大家关注和订阅&#xff0c;【蓝牙协议栈】和【Android Bluetooth Stack】专栏会持续更新中.....敬请期待&#xff01…

VS Code 跳板机登录服务器(手打密码+秘钥登录)

目录 0.为什么要用跳班机登陆服务器&#xff1f; 1.VS Code插件安装及ssh安装 2.密码链接方式 1&#xff09;添加ssh设置&#xff0c;设置主机 2)设置跳板机 Tips:可以直接通过窗口连接文件管理 3.密钥连接方式&#xff08;更安全更方便&#xff09; 1&#xff09;mac版…

C# 对App.config、Web.config的appSettings节点数据进行加密

appSettings加密原因&#xff0c;就是因为容易暴露服务器账号和密码&#xff0c;而且客户也不允许 使用ASP.NET提供的命令工具aspnet_regiis来创建加密命令&#xff1b;aspnet_regiis是提供了直接对配置文件加密的功能的&#xff1b;并且使用aspnet_regiis加密的配置节点在读取…

部署Zabbix Agents添加使能监测服务器_Linux平台_Yum源/Archive多模式

Linux平台 一、从yum源脚本安装部署Zabbix-Agent,添加Linux Servers/PC 概述 Zabbix 主要有以下几个组件组成: Zabbix Server:Zabbix 服务端,Zabbix的核心组件,它负责接收监控数据并触发告警,还负责将监控数据持久化到数据库中。 Zabbix Agent:Zabbix客户端,部署在被监…

使用C语言采用概率分析与随机算法求解特征序列长度下界-以抛硬币问题为例

使用C语言采用概率分析与随机算法求解特征序列长度下界 总结 在概率论与随机算法的研究中&#xff0c;我们经常遇到需要求解某类特定事件发生的概率问题。特别是在处理大量独立随机试验时&#xff0c;如何准确评估某类特殊事件&#xff08;如连续正面特征序列&#xff09;出现的…

asp.net mvc 重新引导视图路径,改变视图路径

asp.net mvc 重新引导视图路径&#xff0c;改变视图路径 使用指定的控制器上下文和母版视图名称来查找指定的视图 通过本文学习&#xff0c;你可以根据该技法&#xff0c;去实现&#xff0c;站点自定义皮肤&#xff0c;手机站和电脑站&#xff0c;其他设备站点&#xff0c;在不…

Python核心编程 --- 高级数据类型

Python核心编程 — 高级数据类型 字符串 列表 元组 字典 1.序列 序列&#xff1a;一组按顺序排列的数据集合。 在Python中存在三种内置的序列类型&#xff1a;字符串、列表、元组 优点&#xff1a;可支持索引和切片操作 特点&#xff1a;第一个正索引为0&#xff0c;指…

基于python+vue学生作业管理系统flask-django-nodejs-php

快速发展的社会中&#xff0c;人们的生活水平都在提高&#xff0c;生活节奏也在逐渐加快。为了节省时间和提高工作效率&#xff0c;越来越多的人选择利用互联网进行线上打理各种事务&#xff0c;然后线上管理系统也就相继涌现。与此同时&#xff0c;人们开始接受方便的生活方式…

【深度学习】基于机器学习的无机钙钛矿材料形成能预测,预测形成能,神经网络,回归问题

文章目录 任务分析数据处理处理离散数值处理缺失值处理不同范围的数据其他注意事项 我们的数据处理模型训练网页web代码、指导 任务分析 简单来说&#xff0c;就是一行就是一个样本&#xff0c;要用绿色的9个数值&#xff0c;预测出红色的那1个数值。 数据处理 在进行深度数…

浅析ArcGis中的软件——ArcMap、ArcScene、 ArcGlobe、ArcCatalog

为什么要写这么一篇介绍ArcGis的文章呢&#xff1f;因为大部分人也包括ArcGisdada&#xff0c;在使用ArcMap应用程序创建工程时总以为我们就是使用了ArcGis这个软件的所有。其实不然&#xff0c;在后期的接触和使用中慢慢发现原来ArcMap只是ArcGis这个综合平台的一部分&#xf…

现在阿里云云服务器租用多少钱?一张表,报价单

2024年阿里云服务器优惠价格表&#xff0c;一张表整理阿里云服务器最新报价&#xff0c;阿里云服务器网整理云服务器ECS和轻量应用服务器详细CPU内存、公网带宽和系统盘详细配置报价单&#xff0c;大家也可以直接移步到阿里云CLUB中心查看 aliyun.club 当前最新的云服务器优惠券…

<c语言学习>结构体

结构体类型 为什么要有结构体 我们用c语言描述年龄时候&#xff0c;可以定义一个整形类型来实现&#xff1a; int age; age 18; printf("年龄为%d",age); (c语言描述年龄) 由于年龄这一属性比较单一&#xff0c;类似性别、某游戏角色攻击力、血量都可以用c语言内置…

string类详解及重要函数实现

&#x1fa90;&#x1fa90;&#x1fa90;欢迎来到程序员餐厅&#x1f4ab;&#x1f4ab;&#x1f4ab; 今日主菜&#xff1a;string类 主厨&#xff1a;邪王真眼 所属专栏&#xff1a;c专栏 主厨的主页&#xff1a;Chef‘s blog 前言&#xff1a; 咱们之前也是…

第十三届蓝桥杯物联网试题(省赛)

做后感悟&#xff1a; OLED显示函数需要一直显示&#xff0c;所以在主函数中要一直循环&#xff0c;为了确保这个检错功能error只输出一次&#xff0c;最好用中断串口进行接收数据&#xff0c;数据收完后自动进入中断函数中&#xff0c;做一次数据检查就好了&#xff0c;该开灯…

银行数字人民币系统应用架构设计

2019年10月&#xff0c;01区块链联合数字资产研究院发布了《人民币3.0&#xff1a;中国央行数字货币运行框架与技术解析》&#xff0c;从数字货币界定和人民币发展历程出发&#xff0c;区分了央行数字货币与比特币、移动支付等的区别&#xff0c;全面介绍了央行数字货币的发展历…