DaVinci的Buffer_Handle和BufTab Cmem函数调用

DaVinci的dvsdk里面,所有的内存用的都是CMEM而比较上层的一个封装就是BufTab和Buffer_Handle了
每个Tab可以控制好多块内存块。
具体到内存块有两种一种是创建的时候指定他的大小啊,物理地址啥的。另外一种就是仅仅创建出这个

结构的一个实例,而物理地址啊啥的都留空,等到回头用的时候,用指针搞定。
第一类对应的配置里面有一个叫reference的变量,配成false的话,创建的时候就直接创建出来内存块

了,reference这点BufTab和Buffer_Handle的创建配置是一样的。
第二类reference配置成true,这样的话,创建之后,指针没有指向,而需要后面重新指定。指定的时

候,要用Buffer_setUserPtr,同时还要设一下大小,Buffer_setNumBytesUsed,同时用这两个,不然程

序会down掉的。

我试验了,使用CMEM手动分配物理空间,用reference=TRUE的配置,声明一个Buffer_handle的结构,使

用cmem函数直接申请空间,然后再配置Buffer_handle的指针。

CMEM_AllocParams cmem_params;
Int8 *ptr_area_fifo;
cmem_params.type = CMEM_POOL;
cmem_params.flags = CMEM_NONCACHED;
for(loop_num = 0; loop_num < fifo_total; loop_num++) {
ptr_area_fifo = (Int8 *)CMEM_alloc(bufSize, &cmem_params);
//hBufTab is created while its reference=TRUE.
hDstBuf = BufTab_getBuf(hBufTab, loop_num);

Buffer_setNumBytesUsed(hDstBuf, bufSize);

if (Buffer_setUserPtr(hDstBuf, ptr_area_fifo) < 0) {
printf("error while set prt into bufTab, id=%d\n", loop_num);
}
}

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

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

相关文章

Qt使用两组RadioButton,两组之间相互独立

Qt中使用两组共四个RadioButton时&#xff0c;由于RadioButton的特性&#xff0c;所以两组一共四个按钮每次只能选择一个&#xff0c;要使得两组RadioButton相互独立&#xff0c;需要用到QButtonGroup这个功能&#xff0c;把RadioButton加到QButtonGroup里面&#xff0c;实现两…

sleep 和 wait 的区别

为什么80%的码农都做不了架构师&#xff1f;>>> 面试中常问的就是 sleep 和 wait 有什么不同吗&#xff1f;为了面试时候发挥的更好&#xff0c;我在这里总结分享下。 首先对于 sleep() 方法&#xff0c;我们首先要知道该方法是属于 Thread 类中的。而 wait() 方法…

2016年11月13日周工作知识点总结

jQuery :eq() 选择器选取带有指定 index 值的元素。index 值从 0 开始&#xff0c;所有第一个元素的 index 值是 0&#xff08;不是 1&#xff09;。经常与其他元素/选择器一起使用&#xff0c;来选择指定的组中特定序号的元素&#xff08;如下面的例子&#xff09;。$("p…

DM6467之视频采集(Linux)下MMAP

做&#xff44;&#xff53;&#xff50;&#xff16;&#xff14;&#xff16;&#xff17;是在linux下做视频采集&#xff0c;仅ARM端 一共有三种视频采集方式&#xff1a; 1&#xff09;使用read、write方式&#xff1a;直接使用 read 和 write 函数进行读写。这种方式最简…

QPS、TPS计算

QPS (Query per second) &#xff08;每秒查询量&#xff09; TPS(Transaction per second) &#xff08;每秒事务量&#xff0c;如果是InnoDB会显示&#xff0c;没有InnoDB就不会显示&#xff09; 计算方法 QPS Questions SHOW GLOBAL STATUS LIKE Questions; Uptime SHOW G…

QT 中textEdit 和 textBrowser 无法使用斜体及加粗等 解决办法

编辑框的几个种类 QT 中一共四个文本编辑框 分别是 Line Edit 、Text Edit、 Plait Text Edit和textBrowser四种文本编辑框架&#xff01; 一、输入内容不同 1、LineEdit&#xff1a;LineEdit的输入内容为单行文本输入。 2、TextEdit&#xff1a;TextEdit的输入内容为多行文…

【select模块】select IO多路复用和select实现FTP

select是全平台通用的IO多路复用模块。最大连接数&#xff1a;1024。poll和epoll没有最大连接数限制&#xff0c;但只能用在linux平台。selectors是再封装模块&#xff0c;推荐使用。下篇会讨论。select.select(rlist, wlist, xlist[, timeout])This is a straightforward inte…

变量属性

变量属性 C语言的变量属性 C语言中的变量可以有自己的属性在定义变量的时候加上“属性”关键字属性关键字指明变量的特有意义auto关键字 auto即C语言中局部变量的默认属性auto表明将被修饰的变量存储在栈上编译器默认所有的局部变量都是auto的register关键字 register关键字指明…

WPF:How to display a Bitmap on Image control

一个Bitmap文件&#xff0c;叫做screenShotFile, 你可以这样显示到Image控件上。 BitmapImage bi new BitmapImage(); bi.BeginInit(); bi.UriSource new Uri(this.screenShotFile, UriKind.Absolute); bi.EndInit(); this.scre…

QT中$$PWD的意思

$$PWD的意思为当前目录 如pro文件中&#xff1a;INCLUDEPATH $$PWD/lib/x64-win64 $$PWD表示的意思就是pro文件所在的目录。

Dubbo 整合 Pinpoint 做分布式服务请求跟踪

2019独角兽企业重金招聘Python工程师标准>>> 在使用Dubbo进行服务化或者整合应用后&#xff0c;假设某个服务后台日志显示有异常&#xff0c;这个服务又被多个应用调用的情况下&#xff0c;我们通常很难判断是哪个应用调用的&#xff0c;问题的起因是什么&#xff0…

Linux 进程详解

Linux内核的七大区间 1.进程管理&#xff08;进程创建&#xff0c;进程的三种状态&#xff0c;进程间的调度&#xff0c;调度算法...&#xff09; 2.内存管理&#xff08;段式管理&#xff08;Linux所有段都从0开始&#xff09;&#xff0c;页式管理--地址偏移量&#xff09; 3…

C#2.0 委托

委托 委托是一个非常不错的设计&#xff0c;允许我们把方法做为参数传递&#xff0c;实现了开放閉放原则。在方法中我们只要有一个委托占位&#xff0c;调用者就可以传入符合签名的方法来做不同的操作&#xff0c;这也面向对象开发中多态的魅力。 但是在C#1.0的时候&#xff…

qt乱码Could not decode“xxx.cpp“ with “UTF-8“-encoding.Editing not possible问题处理

问题描述&#xff1a;如题&#xff1a; 解决方法&#xff1a; 1、点击Select Encoding按钮 2、选择按照系统编码 3、选中System后点击按编码重新载入 4、问题解决

bootargs中的环境变量说明和一些常用的uboot命令

bootargs中的环境变量说明和一些常用的uboot命令 一些常见的uboot命令&#xff1a; Help [command]在屏幕上打印命令的说明 Boom [addr]启动在内存储器的内核 Tftpboot通过tftp启动内核 Saveenv保存环境变量 setenv name [value] 设置环境变量 bootargs中的环境变量 co…

特斯拉自动驾驶系统秘密,来自特斯拉AI总监爆料

据外媒报道&#xff0c;特斯拉汽车公司人工智能&#xff08;AI&#xff09;总监安德烈卡帕西(Andrej Karpathy)日前参加2018年TRAIN AI大会时&#xff0c;剖析了该公司构建自动驾驶仪&#xff08;Autopilot&#xff09;计算机视觉解决方案的方法。据介绍&#xff0c;Autopilot编…

快捷键汇总

navicat 运行选中代码 ctrshiftr navicat 运行所有代码 ctrr 快速显示桌面 wind 转载于:https://www.cnblogs.com/caer/p/6064571.html

js做倒计时

var dinshiqi setInterval(timerun,1000) function timerun(){ //timegundong var now_time new Date(); var hours now_time.getHours(); //时 var minutes now_time.getMinutes(); //分 var seconds now_time.getSeconds(); //秒 //秒钟 show_seconds 59 - parseInt(s…

QT右键点击添加库不响应的解决办法

问题描述 QT在pro右键点击添加库不响应 解决方案 双击打开pro文件 在pro文件界面里单击鼠标右键&#xff0c;并选择添加库。 解决问题

爬取前尘无忧python职位信息并保存到mongo数据库

&#xff11;&#xff0e;re实现 1 import re,os2 import requests3 from requests.exceptions import RequestException4 5 MAX_PAGE 10 #最大页数6 KEYWORD python7 headers {8 User-Agent:9 Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, lik…