华为昇腾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 desc
        AclLiteError atlRet = CreateInputStreamDesc(frameData);
        if (atlRet != ACLLITE_OK) {
            ACLLITE_LOG_ERROR("Create stream desc failed");
            return atlRet;
        }

        if (!frameData->isFinished) {
            // create out desc
            atlRet = 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 decode
        ret = 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 size
        ret = acldvppSetStreamDescData(streamInputDesc_, inBufferDev);
        ret = acldvppSetStreamDescSize(streamInputDesc_, inBufferSize);

        // Device memory g_picOutBufferDev is used to store output data decoded by VDEC
        ret = acldvppMalloc(&g_picOutBufferDev, dataSize);

        // Create output image description information, set the image description information properties
        // picOutputDesc_ is acldvppPicDesc
        picOutputDesc_ = 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 automatically
         calls callback callback function to write the decoded data to the file, and then timely release
         relevant 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

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Python专题:十四、文件操作(1)

现代计算机中&#xff0c;我们使用文件系统来保存数据&#xff0c;使用目录结构组织文件数据的系统 相对路径 guess_number.py 文件扩展名&#xff1a;Window系统中&#xff0c;通过扩展名来识别文件 readlines()函数&#xff0c;读取整个文件并返回一个列表 Python程序读取…

ue引擎游戏开发笔记(38)——实现敌人接收攻击伤害,并作出反应

1.需求分析&#xff1a; 现在已经显示造成实际伤害&#xff0c;但敌人对实际伤害并未产生反馈&#xff0c;例如还击&#xff0c;或者死亡倒地等等&#xff0c;实现敌人对于受击的反馈。 2.操作实现&#xff1a; 1.思路&#xff1a;在动画蓝图中添加死亡动画&#xff0c;并通过…

Google I/O盛会省流全内容总结:AI模型家族革新与前沿技术应用的广阔前景

昨晚的Google I/O 发布会主要聚焦于AI模型和应用的更新与扩展&#xff0c;特别在生成模型领域取得了显著进步。以下是模型层面内容的简要总结&#xff1a; DeepMind官网链接&#xff1a;https://deepmind.google/ Google Veo官方&#xff1a;https://deepmind.google/technol…

Linux|基础IO

Linux|基础IO 回顾c语言的文件操作提炼对文件的理解系统调用初始open函数返回值fd为什么我们向fd一个整数写就写入文件了呢&#xff1f;怎么理解读写操作总结open函数有哪些功能怎么理解往硬件&#xff08;显示器&#xff0c;键盘&#xff09;中读写数据如何理解FILE*访问文件 …

ChatGPT未来可能应用于iPhone?

苹果接即将与OpenAI达成协议 ChatGPT未来应用于iPhone 前言 就在5月11日&#xff0c;苹果公司正与OpenAI进行深入讨论&#xff0c;计划在其最新的iOS操作系统中整合OpenAI的先进技术。这一举措是苹果公司在为其产品线融入更先进的人工智能功能所做努力的一部分。 目前情况双方…

谷粒商城实战(025 业务-订单模块-分布式事务2)

Java项目《谷粒商城》架构师级Java项目实战&#xff0c;对标阿里P6-P7&#xff0c;全网最强 总时长 104:45:00 共408P 此文章包含第291p-第p293的内容 简介 seata无法使用在高并发场景&#xff0c;因为加了很多锁&#xff0c;相当于把并发变成了串口化了&#xff0c;所以这里…

C++ 并发编程指南(11)原子操作 | 11.6、计算机内存结构

文章目录 一、计算机内存结构1、内存的基本组成2、内存的类型3、内存的结构层次4、CPU架构5、局部性原理6、总结 前言 在探讨计算机的运行效率和数据处理能力时&#xff0c;内存结构无疑是一个至关重要的部分。内存&#xff0c;作为计算机系统中的关键组件&#xff0c;承担着存…

WPF之DataGird应用

1&#xff0c;DataGrid相关属性 GridLinesVisibility&#xff1a;DataGrid网格线是否显示或者显示的方式。HorizontalGridLinesBrush&#xff1a;水平网格线画刷。VerticalGridLinesBrush&#xff1a;垂直网格线画刷。HorizontalScrollBarVisibility&#xff1a;水平滚动条可见…

怎么扫码查看文件内容?多文件一键生成二维码的方法

现在日常生活中经常会看到很多的二维码中包含文件&#xff0c;扫码后在手机上预览文件内容或者下载文件&#xff0c;有很多的应用场景下被使用。通过扫描二维码的方式实现文件的传递&#xff0c;与传统方式相比更加方便快捷。 这种方式能够提升获取文件的便捷性&#xff0c;而…

【竞技宝】英超:曼城击败热刺,赢西汉姆联就夺冠

曼城在英超补赛中跟热刺相遇,这场比赛对于双方来说都必须赢。曼城要是拿不下热刺,联赛夺冠形势就不容乐观。热刺则是需要击败曼城,保留拿到下赛季欧冠的一线希望。所以,热刺和曼城开场就全力以赴。上半场热刺和曼城门将都做出精彩扑救,比分维持在0比0。下半场曼城金靴哈兰德发威…

KerberosSDR的EMI探测

我最近一直在解决无线电罗盘的EMI问题。顺便也想对比一下KerberosSDR。所以我又把它拆开测试了一下。 根据我的经验&#xff0c;容易产生EMI辐射的是&#xff1a; 1.用来共享的时钟晶振&#xff08;信号需要足够强&#xff0c;因为要给多个通道用&#xff09; 2.rtl2832u的开…

智能门锁的贴心管家:内置32.768kHz晶振

随着社会、科技、文化的进步&#xff0c;机械锁的安全性已经越来越不能满足百姓的需求&#xff0c;这时候智能锁应运而生。它比传统的机械锁安全性高&#xff0c;更具有优势。电子智能锁(包括密码锁、卡锁、指纹锁、虹膜锁等)作为新一代识别技术优势愈来愈明显&#xff0c;将逐…

网站DDoS攻击应对策略:全面防护与恢复指南

随着互联网的发展&#xff0c;网络安全问题日益凸显&#xff0c;其中DDoS&#xff08;分布式拒绝服务&#xff09;攻击成为了网站安全的主要威胁之一。当网站遭受DDoS攻击时&#xff0c;可能会面临服务中断、性能下降、数据泄露等严重后果。因此&#xff0c;了解并掌握DDoS攻击…

SAP BSEG VS ACDOCA 差异

温习一下 ACDOCA VS BSEG matinal&#xff1a;S4 HANA 详解ACDOCA与BSEG的区别都在这了_sap acdoca-CSDN博客

(Java面试题——基础版)JVM、JRE和JDK的关系

JVM Java Virtual Machine是Java虚拟机 &#xff0c;Java程序需要运行在虚拟机上 &#xff0c;不同的平台有自己的虚拟机 &#xff0c;因此Java语言可以 实现跨平台。JVM 负责将 Java 字节码&#xff08;即编译后的 .class 文件&#xff09;翻译成特定平台上的机器码&#xff0…

离子风机:静电防护的得力助手

在现代工业生产中&#xff0c;静电问题一直是困扰许多企业的难题。尤其是在电子生产线、维修台等敏感区域&#xff0c;静电的存在可能对产品质量造成严重影响&#xff0c;甚至导致设备损坏。为了解决这一问题&#xff0c;离子风机作为静电防护的得力助手&#xff0c;正逐渐受到…

VLAN 综合实验

一、实验拓扑 二、实验需求 1.PC1和PC3所在接口为access&#xff0c;属于vlan2&#xff1b; PC2/4/5/6处于同一网段&#xff0c;其中PC2可以访问PC4/5/6; 2.PC5不能访问PC6; 3.PC1/3与PC2/4/5/6不在同一网段&#xff1b; 4.所有PC通过DHCP获取IP地址&#xff0c;且PC1/3可以…

陪诊服务运用预约小程序的效果是什么

在中高型城市里&#xff0c;陪诊师近些年也很有热度&#xff0c;已经衍生成为一个新的小众行业&#xff0c;不同医院/不同科目等其它情况针对不同群体往往很难完善&#xff0c;比如部分老年人腿脚不便、不认识字、外地语言难以沟通等&#xff0c;陪诊师的作用就尤为凸显. 对相…

Java数据类型:基本数据类型

Java是一种强类型语言&#xff0c;定义变量时&#xff0c;必须指定数据类型。 // 变量必须指定数据类型 private String username;初学者不免有个疑问&#xff1a;在实际编写代码的过程中&#xff0c;该如何选择数据类型呢&#xff1f; 回答这个问题之前&#xff0c;先来解决…

电子邮箱怎么注册?电子邮箱注册教程,只需要三步

电子邮箱在我们工作和生活中都是必不可少的沟通工具。电子邮箱怎么注册&#xff1f;电子邮箱的注册步骤是怎么样的&#xff1f;本文将从电子邮箱注册前的准备资料介绍&#xff0c;到具体电子邮箱注册的三个步骤进行详细讲解。 一、电子邮箱注册前的准备 电子邮箱是一个具有唯…