10329
- 收藏
- 点赞
- 分享
- 举报
Hi3536是否可以真正出4K60FPS
最近公司在做4K的项目,目前选择了Hi3536,购买了一个Demo板,目前遇到的问题是按照mpp内提供的例子,可以输出4K30FPS,但是到60就怎么都没有响应了,显示器以及hdmi都是支持2.0的,同时,输入cat /proc/umap/hdmi0_sink的结果也显示支持,如下图,大体demo代码如下,请大神指点!!!
HI_S32 s32Ret = HI_SUCCESS;
VB_CONF_S stVbConf;
HI_U32 u32BlkSize;
VDEC_CHN VdChn = 1;
PAYLOAD_TYPE_E enType;
SIZE_S stSize;
HI_S32 s32VpssGrpCnt = 2, S32VpssChnCnt = 1;
HI_S32 i;
HI_U32 u32WndNum;
VPSS_GRP_ATTR_S stGrpAttr;
VO_DEV VoDev;
VO_LAYER VoLayer;
VO_PUB_ATTR_S stVoPubAttr;
SAMPLE_VO_MODE_E enVoMode;
VO_VIDEO_LAYER_ATTR_S stLayerAttr;
VPSS_GRP VpssGrp_Clip = 0;
VPSS_GRP VpssGrp_Full = 1;
HI_CHAR ch;
HI_U32 u32FrameRate;
VPSS_CROP_INFO_S stVpssClip;
VDEC_CHN_ATTR_S stVdecChnAttr[VDEC_MAX_CHN_NUM];
VdecThreadParam stVdecSend[VDEC_MAX_CHN_NUM];
pthread_t VdecThread[2 * VDEC_MAX_CHN_NUM];
HI_HDMI_SINK_CAPABILITY_S pstSinkCap;
/******************************************
step 1: init variable
******************************************/
memset(&stVbConf,0,sizeof(VB_CONF_S));
u32BlkSize = SAMPLE_COMM_SYS_CalcPicVbBlkSize(VIDEO_ENCODING_MODE_PAL,\
PIC_UHD4K, SAMPLE_PIXEL_FORMAT, SAMPLE_SYS_ALIGN_WIDTH);
stVbConf.u32MaxPoolCnt = 128;
stVbConf.astCommPool[0].u32BlkSize = u32BlkSize;
stVbConf.astCommPool[0].u32BlkCnt = 20;
#ifdef HI_FPGA
#else
stVbConf.astCommPool[1].u32BlkSize = 3840*2160*2;
stVbConf.astCommPool[1].u32BlkCnt = 5;
#endif
s32Ret = SAMPLE_COMM_SYS_GetPicSize(VIDEO_ENCODING_MODE_PAL, PIC_UHD4K, &stSize);
if (HI_SUCCESS !=s32Ret)
{
SAMPLE_PRT("get picture size failed!\n");
return HI_FAILURE;
}
printf("stSize.u32Width11111111111 = %d\n",stSize.u32Width);
if (704 == stSize.u32Width)
{
stSize.u32Width = 720;
}
else if (352 == stSize.u32Width)
{
stSize.u32Width = 360;
}
else if (176 == stSize.u32Width)
{
stSize.u32Width = 180;
}
/******************************************
step 2: mpp system init.
******************************************/
s32Ret = SAMPLE_COMM_SYS_Init(&stVbConf);
if (HI_SUCCESS != s32Ret)
{
SAMPLE_PRT("system init failed with %d!\n", s32Ret);
goto END_HDZOOMIN_1;
}
stGrpAttr.u32MaxW = stSize.u32Width;
stGrpAttr.u32MaxH = stSize.u32Height;
stGrpAttr.bIeEn = HI_FALSE;
stGrpAttr.bNrEn = HI_TRUE;
stGrpAttr.bHistEn = HI_FALSE;
stGrpAttr.enDieMode = VPSS_DIE_MODE_NODIE;
stGrpAttr.enPixFmt = SAMPLE_PIXEL_FORMAT;
stGrpAttr.bDciEn = HI_FALSE;
stGrpAttr.bEsEn = HI_TRUE;
/******************************************
step 5: start DHD0
******************************************/
/**************start Dev DHD0****************************/
VoDev = SAMPLE_VO_DEV_DHD0;
#ifdef HI_FPGA
stVoPubAttr.enIntfSync = VO_OUTPUT_1080P30;
stVoPubAttr.enIntfType = VO_INTF_VGA;
#else
stVoPubAttr.enIntfSync = VO_OUTPUT_3840x2160_60;
stVoPubAttr.enIntfType = VO_INTF_HDMI;
#endif
stVoPubAttr.u32BgColor = 0x000000ff;
s32Ret = SAMPLE_COMM_VO_StartDev(VoDev, &stVoPubAttr);
if (HI_SUCCESS != s32Ret)
{
SAMPLE_PRT("SAMPLE_COMM_VO_StartDev failed!\n");
goto END_HDZOOMIN_4;
}
#ifdef HI_FPGA
#else
if (HI_SUCCESS != SAMPLE_COMM_VO_HdmiStart(stVoPubAttr.enIntfSync))
{
SAMPLE_PRT("Start SAMPLE_COMM_VO_HdmiStart failed!\n");
goto END_HDZOOMIN_5;
}
#endif
HI_S32 s32Ret = HI_SUCCESS;
VB_CONF_S stVbConf;
HI_U32 u32BlkSize;
VDEC_CHN VdChn = 1;
PAYLOAD_TYPE_E enType;
SIZE_S stSize;
HI_S32 s32VpssGrpCnt = 2, S32VpssChnCnt = 1;
HI_S32 i;
HI_U32 u32WndNum;
VPSS_GRP_ATTR_S stGrpAttr;
VO_DEV VoDev;
VO_LAYER VoLayer;
VO_PUB_ATTR_S stVoPubAttr;
SAMPLE_VO_MODE_E enVoMode;
VO_VIDEO_LAYER_ATTR_S stLayerAttr;
VPSS_GRP VpssGrp_Clip = 0;
VPSS_GRP VpssGrp_Full = 1;
HI_CHAR ch;
HI_U32 u32FrameRate;
VPSS_CROP_INFO_S stVpssClip;
VDEC_CHN_ATTR_S stVdecChnAttr[VDEC_MAX_CHN_NUM];
VdecThreadParam stVdecSend[VDEC_MAX_CHN_NUM];
pthread_t VdecThread[2 * VDEC_MAX_CHN_NUM];
HI_HDMI_SINK_CAPABILITY_S pstSinkCap;
/******************************************
step 1: init variable
******************************************/
memset(&stVbConf,0,sizeof(VB_CONF_S));
u32BlkSize = SAMPLE_COMM_SYS_CalcPicVbBlkSize(VIDEO_ENCODING_MODE_PAL,\
PIC_UHD4K, SAMPLE_PIXEL_FORMAT, SAMPLE_SYS_ALIGN_WIDTH);
stVbConf.u32MaxPoolCnt = 128;
stVbConf.astCommPool[0].u32BlkSize = u32BlkSize;
stVbConf.astCommPool[0].u32BlkCnt = 20;
#ifdef HI_FPGA
#else
stVbConf.astCommPool[1].u32BlkSize = 3840*2160*2;
stVbConf.astCommPool[1].u32BlkCnt = 5;
#endif
s32Ret = SAMPLE_COMM_SYS_GetPicSize(VIDEO_ENCODING_MODE_PAL, PIC_UHD4K, &stSize);
if (HI_SUCCESS !=s32Ret)
{
SAMPLE_PRT("get picture size failed!\n");
return HI_FAILURE;
}
printf("stSize.u32Width11111111111 = %d\n",stSize.u32Width);
if (704 == stSize.u32Width)
{
stSize.u32Width = 720;
}
else if (352 == stSize.u32Width)
{
stSize.u32Width = 360;
}
else if (176 == stSize.u32Width)
{
stSize.u32Width = 180;
}
/******************************************
step 2: mpp system init.
******************************************/
s32Ret = SAMPLE_COMM_SYS_Init(&stVbConf);
if (HI_SUCCESS != s32Ret)
{
SAMPLE_PRT("system init failed with %d!\n", s32Ret);
goto END_HDZOOMIN_1;
}
stGrpAttr.u32MaxW = stSize.u32Width;
stGrpAttr.u32MaxH = stSize.u32Height;
stGrpAttr.bIeEn = HI_FALSE;
stGrpAttr.bNrEn = HI_TRUE;
stGrpAttr.bHistEn = HI_FALSE;
stGrpAttr.enDieMode = VPSS_DIE_MODE_NODIE;
stGrpAttr.enPixFmt = SAMPLE_PIXEL_FORMAT;
stGrpAttr.bDciEn = HI_FALSE;
stGrpAttr.bEsEn = HI_TRUE;
/******************************************
step 5: start DHD0
******************************************/
/**************start Dev DHD0****************************/
VoDev = SAMPLE_VO_DEV_DHD0;
#ifdef HI_FPGA
stVoPubAttr.enIntfSync = VO_OUTPUT_1080P30;
stVoPubAttr.enIntfType = VO_INTF_VGA;
#else
stVoPubAttr.enIntfSync = VO_OUTPUT_3840x2160_60;
stVoPubAttr.enIntfType = VO_INTF_HDMI;
#endif
stVoPubAttr.u32BgColor = 0x000000ff;
s32Ret = SAMPLE_COMM_VO_StartDev(VoDev, &stVoPubAttr);
if (HI_SUCCESS != s32Ret)
{
SAMPLE_PRT("SAMPLE_COMM_VO_StartDev failed!\n");
goto END_HDZOOMIN_4;
}
#ifdef HI_FPGA
#else
if (HI_SUCCESS != SAMPLE_COMM_VO_HdmiStart(stVoPubAttr.enIntfSync))
{
SAMPLE_PRT("Start SAMPLE_COMM_VO_HdmiStart failed!\n");
goto END_HDZOOMIN_5;
}
#endif
我来回答
回答18个
时间排序
认可量排序
认可0
认可0
认可0
认可0
认可0
认可0
认可0
认可0
认可0
认可0
认可0
认可0
认可0
认可0
认可0
认可0
认可0
认可0
或将文件直接拖到这里
悬赏:
E币
网盘
* 网盘链接:
* 提取码:
悬赏:
E币
Markdown 语法
- 加粗**内容**
- 斜体*内容*
- 删除线~~内容~~
- 引用> 引用内容
- 代码`代码`
- 代码块```编程语言↵代码```
- 链接[链接标题](url)
- 无序列表- 内容
- 有序列表1. 内容
- 缩进内容
- 图片![alt](url)
相关问答
-
2020-11-04 16:35:53
-
2018-03-01 15:56:14
-
2021-03-25 19:10:02
-
2020-05-21 17:38:57
-
2019-11-26 15:07:19
-
2019-03-05 13:54:29
-
2020-05-14 18:10:06
-
2018-01-23 15:08:41
-
2020-11-03 11:57:30
-
2017-03-23 14:17:18
-
2019-01-03 10:35:33
-
2016-11-07 15:32:11
-
2018-09-17 17:48:23
-
2017-09-26 15:06:46
-
2018-05-17 15:32:41
-
2016-08-12 16:37:28
-
2017-06-16 21:50:04
-
2019-11-18 15:51:27
-
2020-08-17 09:55:34
无更多相似问答 去提问
点击登录
-- 积分
-- E币
提问
—
收益
—
被采纳
—
我要提问
切换马甲
上一页
下一页
悬赏问答
-
5Hi3516CV610 如何使用SD卡升级固件
-
5cat /dev/logmpp 报错 <3>[ vi] [func]:vi_send_frame_node [line]:99 [info]:vi pic queue is full!
-
50如何获取vpss chn的图像修改后发送至vo
-
5FPGA通过Bt1120传YUV422数据过来,vi接收不到数据——3516dv500
-
50SS928 运行PQtools 拼接 推到设备里有一半画面会异常
-
53536AV100的sample_vdec输出到CVBS显示
-
10海思板子mpp怎么在vi阶段改变视频数据尺寸
-
10HI3559AV100 多摄像头同步模式
-
9海思ss928单路摄像头vio中加入opencv处理并显示
-
10EB-RV1126-BC-191板子运行自己编码的程序
举报反馈
举报类型
- 内容涉黄/赌/毒
- 内容侵权/抄袭
- 政治相关
- 涉嫌广告
- 侮辱谩骂
- 其他
详细说明
提醒
你的问题还没有最佳答案,是否结题,结题后将扣除20%的悬赏金
取消
确认
提醒
你的问题还没有最佳答案,是否结题,结题后将根据回答情况扣除相应悬赏金(1回答=1E币)
取消
确认