正常的绑定:
int Hi_Vo::Vo_Bind_Vdec(hi_vdec_chn vdec_chn)
{
hi_mpp_chn src_chn;
hi_mpp_chn dest_chn;
src_chn.mod_id = HI_ID_VDEC;
src_chn.dev_id = 0;
src_chn.chn_id = vdec_chn;
dest_chn.mod_id = HI_ID_VO;
dest_chn.dev_id = layerNo;
dest_chn.chn_id = vdec_chn;
CHECK_RET(hi_mpi_sys_bind(&src_chn, &dest_chn), "hi_mpi_sys_bind(VDEC-VO)");
return 0;
}
其中看海思资料有这样的绑定关系:
VO(WBC)可以绑定VO?输出回写绑定输出?请问这个代码是怎样的?有做过的吗?
【以下回答由 GPT 生成】
针对问题中的代码示例,可以通过以下步骤进行VO(WBC)绑定VO操作:
hi_mpp_chn
用于表示源通道(src_chn)和目标通道(dest_chn)的信息。src_chn
的mod_id
字段为HI_ID_VDEC
,表示是VDEC模块的通道;dev_id
字段为0,表示设备编号;chn_id
字段为传入的vdec_chn
参数,表示通道编号。dest_chn
的mod_id
字段为HI_ID_VO
,表示是VO模块的通道;dev_id
字段为layerNo,表示设备编号,可以根据实际情况进行设置;chn_id
字段为传入的vdec_chn
参数,表示通道编号。hi_mpi_sys_bind
函数绑定源通道和目标通道,实现VO(WBC)的绑定VO操作。整理后的代码如下:
#include <stdio.h>
#include <stdlib.h>
typedef struct {
int mod_id;
int dev_id;
int chn_id;
} hi_mpp_chn;
// 假设layerNo的值为1
int layerNo = 1;
int hi_mpi_sys_bind(hi_mpp_chn* src_chn, hi_mpp_chn* dest_chn) {
// 绑定操作的具体实现
return 0;
}
int Hi_Vo::Vo_Bind_Vdec(int vdec_chn)
{
hi_mpp_chn src_chn;
hi_mpp_chn dest_chn;
src_chn.mod_id = HI_ID_VDEC;
src_chn.dev_id = 0;
src_chn.chn_id = vdec_chn;
dest_chn.mod_id = HI_ID_VO;
dest_chn.dev_id = layerNo;
dest_chn.chn_id = vdec_chn;
// 调用绑定函数
CHECK_RET(hi_mpi_sys_bind(&src_chn, &dest_chn), "hi_mpi_sys_bind(VDEC-VO)");
return 0;
}
关于是否有人已经尝试过这个功能,我无法确定,建议你查阅相关资料或者在社区中了解是否有人有类似的经验和解决方案。