海思3516将BT1120改BT656输出大小为720*576

sample_comm_vi.c结构体
VI_DEV_ATTR_S DEV_ATTR_BT656D1_1MUX

VI_DEV_ATTR_S DEV_ATTR_BT656D1_1MUX =
{/* interface mode */VI_MODE_BT656,/* multiplex mode */VI_WORK_MODE_1Multiplex,/* r_mask    g_mask    b_mask*/{0xFF0000,    0x0},//掩码根据自己实际写/* progessive or interleaving */VI_SCAN_INTERLACED,/*AdChnId*/{ -1, -1, -1, -1},/*enDataSeq, only support yuv*/VI_INPUT_DATA_UYVY,/* synchronization information */{/*port_vsync   port_vsync_neg     port_hsync        port_hsync_neg        */VI_VSYNC_FIELD, VI_VSYNC_NEG_HIGH, VI_HSYNC_VALID_SINGNAL, VI_HSYNC_NEG_HIGH, VI_VSYNC_VALID_SINGAL, VI_VSYNC_VALID_NEG_HIGH,/*hsync_hfb    hsync_act    hsync_hhb*/{0,            0,        0,/*vsync0_vhb vsync0_act vsync0_hhb*/0,            0,        0,/*vsync1_vhb vsync1_act vsync1_hhb*/0,            0,            0}},/* ISP bypass */VI_PATH_BYPASS,/* input data type */VI_DATA_TYPE_YUV,/* bReverse */HI_FALSE,/* DEV CROP */{0, 0, 720, 576}
};

修改函数SAMPLE_COMM_VI_StartBT656添加

            case SAMPLE_VI_MODE_1_D1:stCapRect.u32Width  = 720;stCapRect.u32Height = 576;break;

在SAMPLE_COMM_VI_StartDev(ViDev, enViMode)函数中修改判断语句

    if (  (SAMPLE_VI_MODE_BT1120_1080P != enViMode)&& (SAMPLE_VI_MODE_BT1120_1080I != enViMode)&& (SAMPLE_VI_MODE_1_D1 != enViMode)//添加&& (SAMPLE_VI_MODE_BT1120_720P != enViMode))

修改SAMPLE_COMM_VI_StartMIPI_BT1120 (SAMPLE_VI_MODE_E enViMode)函数

    if ((enViMode == SAMPLE_VI_MODE_BT1120_1080I)|| (enViMode == SAMPLE_VI_MODE_BT1120_720P)|| (enViMode == SAMPLE_VI_MODE_BT1120_1080P)){pstcomboDevAttr = &MIPI_BT1120_ATTR;}else{pstcomboDevAttr = &MIPI_BT1120_ATTR; //添加}

在SAMPLE_COMM_VI_StartDev函数添加

            HI_MPI_VI_DisableDev(ViDev);s32Ret = HI_MPI_VI_SetWDRAttr(ViDev, &stWdrAttr);if (s32Ret){SAMPLE_PRT("HI_MPI_VI_SetWDRAttr failed with %#x!\n", s32Ret);return HI_FAILURE;}

修改后,发现vi将采集的数据全部都丢掉,排查发现是由于配置vb(视频缓存池)不匹配
在这里插入图片描述
修改HI_S32 SAMPLE_COMM_SYS_GetPicSize函数

HI_S32 SAMPLE_COMM_SYS_GetPicSize(VIDEO_NORM_E enNorm, PIC_SIZE_E enPicSize, SIZE_S* pstSize)
{switch (enPicSize){case PIC_QCIF:pstSize->u32Width  = 176;pstSize->u32Height = (VIDEO_ENCODING_MODE_PAL == enNorm) ? 144 : 120;break;case PIC_CIF:pstSize->u32Width  = 352;pstSize->u32Height = (VIDEO_ENCODING_MODE_PAL == enNorm) ? 288 : 240;break;case PIC_D1:pstSize->u32Width  = 720;pstSize->u32Height = 576;//(VIDEO_ENCODING_MODE_PAL == enNorm) ? 576 : 480;break;

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

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

相关文章

基于YOLOv8深度学习的野外火焰烟雾检测系统【python源码+Pyqt5界面+数据集+训练代码】深度学习实战、目标检测

《博主简介》 小伙伴们好,我是阿旭。专注于人工智能、AIGC、python、计算机视觉相关分享研究。 ✌更多学习资源,可关注公-仲-hao:【阿旭算法与机器学习】,共同学习交流~ 👍感谢小伙伴们点赞、关注! 《------往期经典推…

如何有效避免团队内耗,提升团队整体效能

团队内耗是一个普遍存在的问题,它可能导致工作效率低下、沟通不畅、成员间的信任缺失,甚至可能导致整个团队的崩溃。 它可能源于成员间的误解、利益冲突,或是个人情绪的波动。 如何避免团队内耗,是每个团队管理者和成员都应该关…

新质生产力

新质生产力是以科技创新为引擎,以新产业为主导,以产业升级为方向,以提升核心竞争力为目标的生产力。它融合人工智能、大数据等数字技术,更强调内在的发展质量,旨在走出一条生产要素投入少、资源配置效率高、资源环境成…

java组合模式揭秘:如何构建可扩展的树形结构

组合模式(Composite Pattern)是一种结构型设计模式,它允许将对象组合成树形结构以表示整体/部分层次结构。组合模式使得客户端可以统一对待单个对象和组合对象,从而使得客户端可以处理更复杂的结构。 组合模式的主要组成部分包括&…

在Linux/Ubuntu/Debian中测试USB驱动器(U盘)的速度

如果你想测试USB驱动器的速度,可以使用各种工具和命令来测量读写速度。 用于此目的的一个常用工具是“dd”。 以下是如何使用“dd”执行简单的速度测试: 测试写入速度: 打开终端。 使用以下命令将测试文件写入 USB 驱动器: dd i…

人工智能|机器学习——BIRCH聚类算法(层次聚类)

这里再来看看另外一种常见的聚类算法BIRCH。BIRCH算法比较适合于数据量大,类别数K也比较多的情况。它运行速度很快,只需要单遍扫描数据集就能进行聚类。 1.什么是流形学习 BIRCH的全称是利用层次方法的平衡迭代规约和聚类(Balanced Iterative…

LeetCode 2789.合并后数组中的最大元素:贪心(倒序)

【LetMeFly】2789.合并后数组中的最大元素:贪心(倒序) 力扣题目链接:https://leetcode.cn/problems/largest-element-in-an-array-after-merge-operations/ 给你一个下标从 0 开始、由正整数组成的数组 nums 。 你可以在数组上…

selenium启用MS Edge浏览器/下载MS Edge WebDriver

Selenium 是一个用于自动化 web 浏览器的工具,可以用于测试 web 应用程序或执行特定 web 任务。要在 Python 中使用 Selenium 来控制 Edge 浏览器,您需要安装相应的 Selenium 包和 Edge 驱动程序,并编写相应的 Python 代码。# 创建 selenium …

Prompt Engineering(提示工程)

Prompt 工程简介 在近年来,大模型(Large Model)如GPT、BERT等在自然语言处理领域取得了巨大的成功。这些模型通过海量数据的训练,具备了强大的语言理解和生成能力。然而,要想充分发挥这些大模型的潜力,仅仅…

【计算机视觉】目标跟踪| 光流算法详细介绍|附代码

0、前言 在上篇文章中https://blog.csdn.net/Yaoyao2024/article/details/136625461?spm1001.2014.3001.5501,我们对目标跟踪任务和目标跟踪算法有了大致的了解。今天我们就来详细介绍一下其中的生成式算法的一种:光流法。 在介绍光流法之前&#xff…

SinoDB V16.8 版本新特性

1、Oracle兼容 兼容 with as 语法 兼容 insert all/first 语法 兼容 () 形式的左外连接和右外连接语法 兼容 ROLLUP/CUBE/GROUPING SETS 语法 兼容 create or replace view/trigger/procedure/function/index 语法 兼容 rename procedure/function 语法 2、新增功能 条…

IMX8MM -- Yocto构建遇见的错误及解决方法:

IMX8MM Yocto构建遇见的错误及解决方法: 1 bison-3.0.4 error2 Opencv BB_NO_NETWORK Error :3 Yocto构建时出现U-boot 问题4 Yocto构建时出现Linux kernel编译问题5 wayland-native6 cross-localedef-native7 wayland-protocols8 mesa 硬件:…

《BERT基础教程:Transformer大模型实战》读书笔记

概念 BERT,Bidirectional Encoder Representations from Transformers,多Transformer的双向编码器表示法。 RNN,recurrent neural network,循环神经网络。 LSTM,long short-term memory,长短期记忆网络。…

python类中的def __next__(self):有什么用

在Python中,__next__ 方法是一个特殊方法,它用于实现迭代器协议。当一个对象定义了 __next__ 方法时,这个对象就变成了一个迭代器。迭代器允许你在一个序列(比如列表、元组或集合)或其他可迭代对象上进行迭代&#xff…

Linux网络配置修改hosts映射文件关闭防火墙

Linux网络配置&系统管理 一、物理机、VMware软件、虚拟机之间的网络关系1.1 总体框架图1.2 为什么物理机、VM软件、客户机之间能够通信?1.3 查看客户机的IP地址ifconfig1.4 小节1.5 修改静态IP地址1.6 测试能不能ping通 二、修改主机名以及hosts映射文件2.1 修改主机名2.1…

机器视觉学习(二)—— 显示图像和视频

一、获取图像 要使用OpenCV获取图像,你需要安装OpenCV库并学习基本的OpenCV函数。下面是一些获取图像的基本步骤: 导入必要的库:import cv2 读取图像:image cv2.imread("image.jpg") 这将从指定路径读取图像&#xf…

什么是事件冒泡?Littlevgl中的事件冒泡是怎么样的?

什么是事件冒泡?Littlevgl中的事件冒泡是怎么样的? 事件冒泡(Event Bubbling)是指当一个元素上的事件被触发时,该事件会从最底层的元素开始逐级向上传播,直到最顶层的元素(通常是文档对象)被触发。 ​ 例如我们点击一个按钮时,…

前后端分离项目环境搭建

1. 使用到的技术和工具 springboot vue项目的搭建 工具 idea,mavennodejs 2. 后端框架搭建 利用maven创建springboot项目 3. 前端项目搭建 1. 安装相关工具 nodejs: 一个开源、跨平台的 JavaScript 运行时环境,可以理解成java当中需要…

fly-gesture-unlock 手势解锁库

最近要实现前端九宫格手势解锁功能,到 github 和 gitee 上没有找到质量比较好的库,自己对这个功能也是蛮感兴趣的,所以做了这个开源库,用于实现手势解锁功能,可以帮助大家快速完成业务逻辑,提供了完整的 DE…

Prompt提示工程上手指南:基础原理及实践(二)-Prompt主流策略

前言 上篇文章将Prompt提示工程大体概念和具体工作流程阐述清楚了,我们知道Prompt工程是指人们向生成性人工智能(AI)服务输入提示以生成文本或图像的过程中,对这些提示进行精炼的过程。生成人工智能是一个根据人类和机器产生的数…