用户您好,请详细描述您所遇到的问题。
- 系统软件版本:x3j3_lnx_db_20210907 release
- 问题涉及的技术领域:视频解码
- 问题描述:参考《MU-2520-4-P-X3_Platform_AUTO_Media_System_Interface_Manual.pdf》文档解码器中的 sample 代码创建解码通道失败
- 复现概率:必现。已进行的排查措施、分析及结果:
- 尝试过 H264/H265,NV21/NV12 现象均一致
- 软件上是否有做自定义修改:否
以下代码参考《MU-2520-4-P-X3_Platform_AUTO_Media_System_Interface_Manual.pdf》“9.3.5 HB_VDEC_ResetChn”的示例代码,试图创建一个解码通道,但是 HB_VDEC_CreateChn() 接口始终返回错误码 -269024261,文档对此错误码的解释为“操作不允许”,没有进一步的解释。出错打印内容如下图所示:

相关代码如下:
VDEC_CHN VDEC_Chn = 0;
int32_t s32Ret = 0;
int32_t Width = 1920;
int32_t Height = 1080;
VDEC_CHN_ATTR_S m_VdecChnAttr ;
memset(&m_VdecChnAttr , 0, sizeof(VDEC_CHN_ATTR_S));
m_VdecChnAttr.enType = PT_H265;
m_VdecChnAttr.enMode = VIDEO_MODE_FRAME;
m_VdecChnAttr.enPixelFormat = HB_PIXEL_FORMAT_NV21;
m_VdecChnAttr.u32FrameBufCnt = 10;
m_VdecChnAttr.u32StreamBufCnt = 10;
m_VdecChnAttr.u32StreamBufSize = Width * Height * 1.5;
m_VdecChnAttr.bExternalBitStreamBuf = HB_TRUE;
if (m_VdecChnAttr.enType == PT_H265) {
m_VdecChnAttr.stAttrH265.bandwidth_Opt = HB_TRUE;
m_VdecChnAttr.stAttrH265.enDecMode = VIDEO_DEC_MODE_NORMAL;
m_VdecChnAttr.stAttrH265.enOutputOrder = VIDEO_OUTPUT_ORDER_DISP;
m_VdecChnAttr.stAttrH265.cra_as_bla = HB_FALSE;
m_VdecChnAttr.stAttrH265.dec_temporal_id_mode = 0;
m_VdecChnAttr.stAttrH265.target_dec_temporal_id_plus1 = 2;
}
if (m_VdecChnAttr.enType == PT_H264) {
m_VdecChnAttr.stAttrH264.bandwidth_Opt = HB_TRUE;
m_VdecChnAttr.stAttrH264.enDecMode = VIDEO_DEC_MODE_NORMAL;
m_VdecChnAttr.stAttrH264.enOutputOrder = VIDEO_OUTPUT_ORDER_DISP;
}
s32Ret = HB_VDEC_CreateChn(VDEC_Chn, &m_VdecChnAttr);
printf("[XXXXXXXXXXXXXXXXX] HB_VDEC_CreateChn: %d\n", s32Ret);