华为计算微信公众号
昇腾AI开发者公众号
华为计算微博
华为计算今日头条
调用昇腾版本ffmpeg接口:av_hwdevice_ctx_create构造deviceCtx并初始化解码器
解码视频流得到AVFrame
使用AVFrame的数据构造MxBase::Image
将Image转为Tensor时报错并死亡
//部分代码 // 1.初始化deviceCtx AVBufferRef* hwCtx = nullptr; int err = av_hwdevice_ctx_create(&hwCtx, AV_HWDEVICE_TYPE_ASCEND, deviceId.c_str(), NULL, 0); // 2.使用ffmpeg解码得到AVFrame // 3.构造Image并转为Tensor size_t size = src->linesize[0] * h + src->linesize[1] * (h * 0.5); std::shared_ptr<uint8_t> data(src->data[0]); MxBase::Image image(data, size, acl::deviceId, MxBase::Size(w, h)); MxBase::Tensor tensor(std::vector<uint32_t>{(uint32_t)h, (uint32_t)w, 3}, MxBase::TensorDType::UINT8, acl::deviceId); tensor = image.ConvertToTensor();
运行到最后一行时出现如下报错
WARNING: Logging before InitGoogleLogging() is written to STDERR E20240823 11:14:24.986564 1258257 DeviceManager.cpp:153] Failed to initialize all devices. (Calling Function = aclInit, Code = 100002, Message = "ACL error, please refer to the document of CANN.") E20240823 11:14:24.986614 1258257 DeviceManager.cpp:259] Init device failed. (Code = 1013, Message = "initialize failed") E20240823 11:14:24.986631 1258257 ImageDptr.hpp:743] ImageToHost setDevice failed, please check the state of device. (Code = 1013, Message = "initialize failed") E20240823 11:14:24.986645 1258257 ImageDptr.hpp:643] Fail to SetDevice in ConvertToTensor function (Code = 1013, Message = "initialize failed")
我要发帖子
环境
流程
调用昇腾版本ffmpeg接口:av_hwdevice_ctx_create构造deviceCtx并初始化解码器
解码视频流得到AVFrame
使用AVFrame的数据构造MxBase::Image
将Image转为Tensor时报错并死亡
//部分代码 // 1.初始化deviceCtx AVBufferRef* hwCtx = nullptr; int err = av_hwdevice_ctx_create(&hwCtx, AV_HWDEVICE_TYPE_ASCEND, deviceId.c_str(), NULL, 0); // 2.使用ffmpeg解码得到AVFrame // 3.构造Image并转为Tensor size_t size = src->linesize[0] * h + src->linesize[1] * (h * 0.5); std::shared_ptr<uint8_t> data(src->data[0]); MxBase::Image image(data, size, acl::deviceId, MxBase::Size(w, h)); MxBase::Tensor tensor(std::vector<uint32_t>{(uint32_t)h, (uint32_t)w, 3}, MxBase::TensorDType::UINT8, acl::deviceId); tensor = image.ConvertToTensor();运行到最后一行时出现如下报错