切换版块
×
基础软件平台
PyTorch开发
TensorFlow开发
编解码及SDK开发
BANG语言与计算库
开发工具链
MagicMind开发
软件栈百科
云平台集成
硬件产品专区
大模型专区
寒武纪® AIDC® MLU370®系列加速卡
MLU200系列AI加速产品
经验方案交流区
经验案例与实践分享
开发者服务
开发者活动
公告与版务
高校支持
《智能计算系统》
签到
版块
社区
文档
SDK下载
370系列
200系列
开发平台
官网首页
注册
登录
全部版块
基础软件平台
硬件产品专区
经验方案交流区
开发者服务
高校支持
发布新帖
登录/注册
LV.1
lozenyin
128
积分
12
赞
17
帖子
64
回复
0
收藏
TA的动态
TA的帖子
TA的回复
报错CNRT error, code=632036(Failure on memory copy.)
我的回复:#1xuxd回复您好,根据描述,1. 确认单独运行 cncv sample的代码是否正常;2. 检查 拷贝地址和内存分配是否正确。展开你好,第一点已确定官方demo可运行无报错。本人参照例程demo,官方demo图像输入是Mat转cncvImage结构体。本人是把解码后的图像数据cncodecFrame结构体转成cncvImage结构体。//cncodecFrame to cncvImage //【源数据】 srcImg.width=srcframe.width; srcImg.height=srcframe.height; srcImg.stride[0]=srcframe.stride[0]; srcImg.stride[1]=srcframe.stride[1]; srcImg.planeNum=srcframe.planeNum; srcImg.colorSpace=(cncvColorSpace)(srcframe.colorSpace); srcImg.pixelFmt=(cncvPixelFormat)(srcframe.pixelFmt); srcImg.roi = {0,0,0,0}; srcImg.depth=CNCV_DEPTH_8U; srcImg.plane[0].size=srcframe.height * srcframe.stride[0]; srcImg.plane[1].size=(srcframe.height/2)*srcframe.stride[1]; srcImg.plane[0].addr=malloc(srcImg.plane[0].size); srcImg.plane[1].addr=malloc(srcImg.plane[1].size); cpuAddr_0=malloc(srcImg.plane[0].size); cpuAddr_1=malloc(srcImg.plane[1].size); cncodecMap(&cpuAddr_0,srcframe.plane[0].addr,srcframe.plane[0].size);//映射设备端地址到主机中 cncodecMap(&cpuAddr_1,srcframe.plane[1].addr,srcframe.plane[1].size); CNRT_CHECK(cnrtMemcpy(srcImg.plane[0].addr,cpuAddr_0,srcImg.plane[0].size,CNRT_MEM_TRANS_DIR_HOST2HOST));//将映射到主机的图像拷贝到cncvImage变量中 CNRT_CHECK(cnrtMemcpy(srcImg.plane[1].addr,cpuAddr_1,srcImg.plane[1].size,CNRT_MEM_TRANS_DIR_HOST2HOST)); printf(">>>获取原图像\\n\\r");这样复制是否正确呢?
0
使用CNCV库的数据输入问题
我的回复:找到问题所在了在创建cncvImage结构体变量是需要malloc生成指针给到plane.size,然后在拷贝数据过去才对。而不是直接拷贝。但是这样出来的图像显示错乱了,看来还需要一些纠正才行。
1
cncv例程demo交叉编译
我的回复:解决方法:使用【export LD_LIBRARY_PATH=】引用库路径,就可以运行了
0
cncv例程demo交叉编译
我的回复:#1xuxd回复您好,与运行环境有关,请将编译时的依赖库打包放到设备上,将此路径export到环境变量再试一下。找到解决方法了,使用【export LD_LIBRARY_PATH=】引用库路径就好了,就可以运行了
0
cncv例程demo交叉编译
我的回复:#1xuxd回复您好,与运行环境有关,请将编译时的依赖库打包放到设备上,将此路径export到环境变量再试一下。依赖库打包上传到设备了,添加到环境变量后运行还是会报错
0
使用CNCV库的数据输入问题
我的回复:#5aaayyy回复先跑cncv自带sample把贴出来的代码修改部分放到sample里面,是否正确我一般这样,大概这样,能找到问题。展开在编译官方的sample了,遇到了些问题【https://forum.cambricon.com/index.php?m=content&c=index&a=show&catid=47&id=2040】交叉编译后可执行文件放进mlu220的设备中运行没有连接上库。但是库的路径已经声明的了。请问一下这个要怎么处理才能连接上?要把库文件拷贝到/usr/lib64路径下嘛?
1
使用CNCV库的数据输入问题
我的回复:#1niceshot回复你好,请参考cncv自带sample,目录 /usr/local/neuware/samples/cncv/resize_convert_sample展开我已经参考了,还是没能找到问题所在
1
cncodecFrame的图像数据可视化
我的回复:问题已解决//测试函数,保存cncodecFrame图像数据到文件中 void dumpSurfaceData(FILE *file, cncodecFrame *frame) { unsigned int i; unsigned int j; unsigned int planW; unsigned int planLen; unsigned int planeH; cnrtRet_t rtRet; for (i = 0; i < frame->planeNum; ++i) { planW = calc_plane_width(frame->pixelFmt, frame->width, i); planLen = calc_plane_length(frame->pixelFmt, frame->stride[i], frame->height, i); planeH = calc_plane_height(frame->pixelFmt, frame->height, i); if (frame->stride[i] == planW) { // LOG_INFO("frame->stride[i] %u planw %u\\n", frame->stride[i], planW); void *cpuAddr; rtRet = (cnrtRet_t)cncodecMap(&cpuAddr, frame->plane[i].addr, frame->plane[i].size); if (rtRet != CNRT_RET_SUCCESS) { LOG_ERROR("call cncodecMap faild\\n"); return; } rtRet = (cnrtRet_t)cncodecInvalidateCache(cpuAddr, frame->plane[i].size); if (rtRet != CNRT_RET_SUCCESS) { LOG_ERROR("call cncodecInvalidateCache faild\\n"); return; } fwrite(cpuAddr, sizeof(char), planLen, file); rtRet = (cnrtRet_t)cncodecUnmap(cpuAddr, frame->plane[i].size); if (rtRet != CNRT_RET_SUCCESS) { LOG_ERROR("call cncodecUnmap faild\\n"); return; } } else { void *tmp_buffer1 = malloc(planLen); char *tmp_buffer2 = (char *)malloc(planW * planeH); cnrtMemcpy(tmp_buffer1, (void *)frame->plane[i].addr, planLen, CNRT_MEM_TRANS_DIR_DEV2HOST); for (j = 0; j < planeH; ++j) { memcpy(tmp_buffer2 + j * planW, tmp_buffer1 + j * frame->stride[i], planW); } fwrite(tmp_buffer2, sizeof(char), planW * planeH, file); free(tmp_buffer1); free(tmp_buffer2); } } }
1
cncodecFrame的图像数据可视化
我的回复:#6aaayyy回复[图片]main.zip这有一个参考文件,把回调里面的cncv去掉,需要ffmpeg库支持好的,我参考一下,谢谢~
1
cncodecFrame的图像数据可视化
我的回复:#3niceshot回复你好,可以参考:rtsp相关的解析代码,https://github.com/Cambricon/CNStream/tree/master/modules/source/src/data_handler_rtsp.cpp大体流程,通过 ffmpeg的接口,对rtsp码流解析,将码流数据放到内存缓冲区,循环读取该内存缓冲区的数据feed给codec进行解码,后续就是解码流程。展开我现在就是这样子操作的,但是我该如何将解码出来的图像(cncodecFrame)保存出来给人看呢?我还没有找到可用的办法。
1
上一页
1
2
3
4
5
下一页
Github
开发平台
文档中心
新手必读
官方微信
版权所有 © 2025 寒武纪 Cambricon.com 备案/许可证号:
京ICP备17003415号-1
关闭