华为昇腾310B1平台视频解码失败[ERROR] Send frame to vdec failed, errorno:507018

目录

1 [ERROR] Send frame to vdec failed, errorno:507018

2 bug解决尝试1

3 bug解决尝试2

4 最终解决方法

参考文献:


1 [ERROR] Send frame to vdec failed, errorno:507018

某项目中的代码运行报错 [ERROR] Send frame to vdec failed, errorno:507018

    AclLiteError VdecHelper::Process(shared_ptr<FrameData> frameData, void* userData) {// create input descAclLiteError atlRet = CreateInputStreamDesc(frameData);if (atlRet != ACLLITE_OK) {ACLLITE_LOG_ERROR("Create stream desc failed");return atlRet;}if (!frameData->isFinished) {// create out descatlRet = CreateOutputPicDesc(outputPicSize_.load());if (atlRet != ACLLITE_OK) {ACLLITE_LOG_ERROR("Create pic desc failed");return atlRet;}}else {outputPicDesc_ = acldvppCreatePicDesc();if (outputPicDesc_ == nullptr) {ACLLITE_LOG_ERROR("Create vdec output pic desc failed");return ACLLITE_ERROR_CREATE_PIC_DESC;}}// send data to dvpp vdec to decoderet = aclvdecSendFrame(vdecChannelDesc_, inputStreamDesc_,outputPicDesc_, nullptr, userData);if (ret != ACL_SUCCESS) {ACLLITE_LOG_ERROR("Send frame to vdec failed, errorno:%d", ret);return ACLLITE_ERROR_VDEC_SEND_FRAME;}return ACLLITE_OK;}void VdecHelper::SetOutputPicSize(uint32_t picSize) {if (picSize < outputPicSize_.load()) {outputPicSize_.store(picSize);}}

用vscode调试发现

发现正常和报错时的一些变量也没什么区别,

2 bug解决尝试1

然后网上搜507018的错误码,找到如下链接昇腾社区-官网丨昇腾万里 让智能无所不及

这上面就是说每次都要重新配置描述类型,但是我看了下我的代码里面已经是每次都重新配置描述类型了,该方法行不通。

3 bug解决尝试2

不知道怎么做了,去下载华为官方的sample,然后先跑demo试试,去下载samples: CANN Samples - Gitee.com

https://gitee.com/ascend/samples/tree/master/cplusplus/level2_simple_inference/0_data_process

然后编译运行这个samples-master/cplusplus/level2_simple_inference/0_data_process/vdec

在代码中增加这一行打印

    while (restLen > 0) {//INFO_LOG("------------------------- ");// inBufferDev means the memory for input video data by Device, and inBufferSize means the memory sizeret = acldvppSetStreamDescData(streamInputDesc_, inBufferDev);ret = acldvppSetStreamDescSize(streamInputDesc_, inBufferSize);// Device memory g_picOutBufferDev is used to store output data decoded by VDECret = acldvppMalloc(&g_picOutBufferDev, dataSize);// Create output image description information, set the image description information properties// picOutputDesc_ is acldvppPicDescpicOutputDesc_ = acldvppCreatePicDesc();ret = acldvppSetPicDescData(picOutputDesc_, g_picOutBufferDev);ret = acldvppSetPicDescSize(picOutputDesc_, dataSize);ret = acldvppSetPicDescFormat(picOutputDesc_, static_cast<acldvppPixelFormat>(format_));/* Perform video stream decoding. After decoding each frame of data, the system automaticallycalls callback callback function to write the decoded data to the file, and then timely releaserelevant resources */ret = aclvdecSendFrame(vdecChannelDesc_, streamInputDesc_, picOutputDesc_, nullptr, nullptr);printf("ret  =================%d\n", ret);restLen = restLen - 1;}

运行结果如下

demo报同样的错误,但是我发现如果原视频用华为的std::string filePath =  "../data/vdec_h265_1frame_rabbit_1280x720.h265"就不报错,换成我自己的几个视频就报错。

4 最终解决方法

华为技术支持让试试:samples: CANN Samples - Gitee.com

https://gitee.com/ascend/samples/tree/master/cplusplus/level1_single_api/7_dvpp/vdec_sample

 我试了下这个,发现是可以,没报错,那么需要将我的工程中的解码代码全都替换成这个sample的这些接口,需要把解码代码重写。

另外下图是这个sample对应的解码原理

参考文献:

华为云论坛_云计算论坛_开发者论坛_技术论坛-华为云

samples: CANN Samples - Gitee.com

samples: CANN Samples - Gitee.com

昇腾社区-官网丨昇腾万里 让智能无所不及

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

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

相关文章

Linux系统 -目录结构与配网

目录的特点 Windows中有C盘、D盘等&#xff0c;每个都是一个根系统是个多根系统 Linux中只有一个根是个单根系统 Linux-目录存储的内容 1、/root&#xff1a;管理员的家目录 2、/home&#xff1a;存储普通用户家目录的目录/3、/tmp&#xff1a;临时目录&#xff0c;这个目录存储…

linux系统管理面试题

用户管理&#xff1a; 1. 如何在Linux中创建一个新用户并设置密码&#xff1f; 在Linux中创建一个新用户并设置密码&#xff0c;可以使用以下步骤&#xff1a; 打开终端或命令行界面。使用root权限登录或使用sudo命令获取管理员权限。运行以下命令来创建新用户&#xff08;将…

了解 Robot Framework :接口自动化测试教程!

开源自动化测试利器&#xff1a;Robot Framework Robot Framework 是一个用于实现自动化测试和机器人流程自动化&#xff08;RPA&#xff09;的开放源代码框架。它由一个名为 Robot Framework Foundation 的组织得到推广&#xff0c;得到了多家领军企业在软件开发中的广泛应用。…

运营商三要素核验接口如何对接

运营商三要素核验接口又叫运营商手机号三要素验证接口、运营商手机号实名认证接口、运营商手机号三要素核验接口&#xff0c;指的是输入姓名、身份证号码及手机号&#xff0c;通过运营商数据库实时校验此三项是否匹配。那么运营商三要素核验接口如何对接呢&#xff1f; 首先我…

Java SE入门及基础(51) Queue 接口 比较器接口

目录 Queue 接口 1. 特性描述 Queue 接口常用方法 2. LinkedBlockingQueue 用法示例 3. PriorityQueue 用法示例 思考&#xff1a;如果 PriorityQueue 队列中存储的是对象&#xff0c;会怎么排序&#xff1f; 比较器接口 1. 比较器接口的作用 2. Comparable 接口 示…

【设计模式】JAVA Design Patterns——Abstract Factory(抽象工厂模式)

&#x1f50d;目的 提供一个用于创建相关对象家族的接口&#xff0c;而无需指定其具体类 &#x1f50d;解释 真实世界例子 要创建一个王国&#xff0c;我们需要具有共同主题的对象。精灵王国需要精灵国王、精灵城堡和精灵军队&#xff0c;而兽人王国需要兽人国王、兽人城堡和兽…

项目路由分模块A模块B模块C......模块N使用

路由分模块原因&#xff1a; vue框架中会有router文件&#xff0c;但是路由文件下只有一个路由文件&#xff0c;在实际项目开发中会有多人负责多模块的情况&#xff0c;若都在一个文件内编辑路由名称&#xff0c;就相当于是机房里的数据线&#xff0c;会很乱七八糟&#xff0c;…

1. go语言初识(一)

本篇博客涉及到的内容&#xff1a;变量和常量、iota常量生成器、类型转换 变量&#xff08;Variables&#xff09;和常量&#xff08;Constants&#xff09; 变量&#xff08;Variables&#xff09; 1. 定义变量 在Go中&#xff0c;可以使用’var‘关键字来声明一个变量&…

【十大排序算法】----选择排序(详细图解分析+实现,小白一看就会)

目录 一&#xff1a;选择排序——原理 二&#xff1a;选择排序——分析 三&#xff1a;选择排序——实现 四&#xff1a;选择排序——优化 五&#xff1a;选择排序——效率 一&#xff1a;选择排序——原理 选择排序的原理&#xff1a;通过遍历数组&#xff0c;选出该数组…

使用Docker配置深度学习环境——以diffusers为例

Docker的其他信息可以在我的网站上找到&#xff0c;这里假设安装完成了&#xff0c;直接上手。 git clone 仓库地址打开docker目录&#xff0c;找到目标版本&#xff1a; sudo docker build diffusers-pytorch-cuda如果失败&#xff0c;尝试使用换源&#xff1a; sudo nano …

GPT-4o 炸裂发布!你竟然还没用上?(附详细教程)

今天AI界的爆炸新闻非chatgpt-4o莫属&#xff0c;从早上到现在随处可见的文章推送&#xff0c;视频推送。 大家或多或少都有耳闻了&#xff0c;今天主要讲一讲我们普通人到底怎么用&#xff1f;如果不氪金行不行&#xff1f;我就想体验一下可不可以&#xff1f;带着问题往下看 …

提升写作效率的秘密武器:一个资深编辑的AI写作体验

有句话说:“写作是一项你坐在打字机前流血的工作。”而如今,各类生成式软件的涌现似乎打破了写作这一古老的艺术形式壁垒。过去,作家们独自在书桌前冥思苦想,如今,一款名为“玲珑AI工具”的ai写作助手正悄然改变着文案写作行业的创作生态,成为提升写作效率的秘密武器。 在传统…

【数据结构】图和基本算法

文章目录 1. 图的基本概念1.1 图本身的定义1.2 相关概念 2. 图的存储结构2.1 邻接矩阵2.2 邻接表 3. 图的遍历3.1 广度优先遍历&#xff08;BFS&#xff09;3.2 深度优先遍历&#xff08;DFS&#xff09; 4. 最小生成树4.1 Kruskal算法4.2 Prim算法 5. 最短路径5.1 单源最短路径…

【Linux】基础命令:进程、网络

systemctl命令 控制内置服务 systemctl start | stop | status | enable | disable 服务名 start | stop开启关闭&#xff0c;status状态&#xff0c;enable | disable开启关闭开机自启 date命令 查看系统时间 date [-d] [格式化字符串] date -d “1 day” %Y-%m-%d 修改时区…

表达式运算符位运算

表达式 概念&#xff1a; 由常量、变量、运算符、&#xff08;&#xff09;组成一句代码。代码最终有一个结果。 // 定义&#xff1a; 由常量、变量、运算符、&#xff08;&#xff09;组成。由一个结果// 规律1&#xff1a; 当表达式中所有的变量类型小于等于int( int shor…

Linux0.11 中全局描述符表(GDT)

在Linux内核中&#xff0c;全局描述符表&#xff08;Global Descriptor Table&#xff0c;简称GDT&#xff09;是一个关键的数据结构&#xff0c;主要用于管理处理器的内存段和相关的权限与属性。它属于x86架构中的保护模式特性&#xff0c;允许操作系统对内存访问进行更精细的…

深度学习技术之卷积神经网络

深度学习技术 卷积神经网络1. 导入需要的库2. 加载并显示两张图像2.1 加载图像2.2 创建子图2.3 打印图像形状2.4 打印合并后的图像数组的形状 3. 卷积层3.1 定义变量3.1.1 卷积核的大小&#xff08;u&#xff09;3.1.2 滑动步长&#xff08;s&#xff09;3.1.3 输出特征图的数量…

你了解 pom.xml 吗

你了解pomxml吗 springboot 是 java 利器&#xff0c;几乎每个写 java 的同学都会用&#xff0c;但是你了解 pom.xml 吗&#xff1f; 这篇干货查漏补缺。 首先我们创建个 springboot 项目 都选了默认设置&#xff1a; 我把这篇完整粘贴出来 pom.xml <?xml version&quo…

键盘控制小蛇移动

/*** Description 键盘控制小蛇移动*/ package com.ai.snake;import javax.swing.*;public class StartGame {public static void main(String[] args) {JFrame frame new JFrame();frame.setBounds(10,10,900,720);frame.setResizable(false); //窗口大小不可变frame.setDef…

Termius mac:一站式跨平台终端工具

Termius mac 8.4是一款远程访问和管理工具&#xff0c;旨在帮助用户轻松地远程连接到各种服务器和设备。它适用于多种操作系统&#xff0c;包括Windows、macOS、Linux和移动设备。 该软件提供了一个直观的界面&#xff0c;使用户可以通过SSH、Telnet和Mosh等协议连接到远程设备…