周星星

周星星

0个粉丝

6

问答

0

专栏

0

资料

周星星  发布于  2016-07-21 20:11:38
采纳率 0%
6个问答
6865

hi3536

 
将vo输出设备DHD0换成DHD1后发现报错
/opt/mpp_single/sample/vdec # ./sample_vdec


/************************************/
please choose the case which you want to run:
        0:  VDH H264
        1:  VDH H265
        2:  VDH MPEG4
        3:  JPEG decoding
        q:  quit the whole sample
sample command:0
[Func]:HI_MPI_VO_SetPubAttr [Line]:217 [Info]:VoDev(1) is not support
[SAMPLE_COMM_VO_StartDev]-96: failed with 0xa00f8008!
[SAMPLE_VDEC_VdhH264]-249: vdec bind vpss fail for 0xffffffff!
[Func]:HI_MPI_VO_Disable [Line]:209 [Info]:VoDev(1) is not support
[SAMPLE_COMM_VO_StopDev]-117: failed with 0xa00f8008!

请问一下这是什么地方配置的问题呢?
我来回答
回答13个
时间排序
认可量排序

zhuangweiye

8个粉丝

0

问答

0

专栏

0

资料

zhuangweiye 2016-07-22 07:57:46
认可0
把修改的代码放上来看看

周星星

0个粉丝

6

问答

0

专栏

0

资料

周星星 2016-07-22 09:03:12
认可0
hi3536下面的样例代码,改一下vo设备

HI_S32 SAMPLE_VDEC_VdhH264(HI_VOID)
{
    VB_CONF_S stVbConf, stModVbConf;
    HI_S32 i, s32Ret = HI_SUCCESS;
    VDEC_CHN_ATTR_S stVdecChnAttr[VDEC_MAX_CHN_NUM];
    VdecThreadParam stVdecSend[VDEC_MAX_CHN_NUM];
    VPSS_GRP_ATTR_S stVpssGrpAttr[VDEC_MAX_CHN_NUM];
    SIZE_S stSize, stRotateSize;
    VO_DEV VoDev;
    VO_LAYER VoLayer;
    VO_PUB_ATTR_S stVoPubAttr;
    VO_VIDEO_LAYER_ATTR_S stVoLayerAttr;
    ROTATE_E enRotate;
    HI_U32 u32VdCnt = 4, u32GrpCnt = 4;
    pthread_t   VdecThread[2*VDEC_MAX_CHN_NUM];

    stSize.u32Width = HD_WIDTH;
    stSize.u32Height = HD_HEIGHT;
       
    /************************************************
    step1:  init SYS and common VB
    *************************************************/
    SAMPLE_COMM_VDEC_Sysconf(&stVbConf, &stSize);
    s32Ret = SAMPLE_COMM_SYS_Init(&stVbConf);
    if(s32Ret != HI_SUCCESS)
    {
        SAMPLE_PRT("init sys fail for %#x!\n", s32Ret);
        goto END1;
    }

    /************************************************
    step2:  init mod common VB
    *************************************************/
    SAMPLE_COMM_VDEC_ModCommPoolConf(&stModVbConf, PT_H264, &stSize, u32VdCnt);       
    s32Ret = SAMPLE_COMM_VDEC_InitModCommVb(&stModVbConf);
    if(s32Ret != HI_SUCCESS)
    {                   
        SAMPLE_PRT("init mod common vb fail for %#x!\n", s32Ret);
        goto END1;
    }

    /************************************************
    step3:  start VDEC
    *************************************************/
    SAMPLE_COMM_VDEC_ChnAttr(u32VdCnt, &stVdecChnAttr[0], PT_H264, &stSize);
    s32Ret = SAMPLE_COMM_VDEC_Start(u32VdCnt, &stVdecChnAttr[0]);
    if(s32Ret != HI_SUCCESS)
    {       
        SAMPLE_PRT("start VDEC fail for %#x!\n", s32Ret);
        goto END2;
    }

    /************************************************
    step4:  start VPSS
    *************************************************/
    stRotateSize.u32Width = stRotateSize.u32Height = MAX2(stSize.u32Width, stSize.u32Height);
    SAMPLE_COMM_VDEC_VpssGrpAttr(u32GrpCnt, &stVpssGrpAttr[0], &stRotateSize);
    s32Ret = SAMPLE_COMM_VPSS_Start(u32GrpCnt, &stRotateSize, 1, &stVpssGrpAttr[0]);
    if(s32Ret != HI_SUCCESS)
    {            
        SAMPLE_PRT("start VPSS fail for %#x!\n", s32Ret);
        goto END3;
    }

    /************************************************
    step5:  start VO
    *************************************************/       
    VoDev = SAMPLE_VO_DEV_DHD0;  此处改成SAMPLE_VO_DEV_DHD1
    VoLayer = SAMPLE_VO_LAYER_VHD0;此处改成SAMPLE_VO_LAYER_VHD1
   
#ifdef HI_FPGA
    stVoPubAttr.enIntfSync = VO_OUTPUT_1080P30;
    stVoPubAttr.enIntfType = VO_INTF_VGA;
#else
    stVoPubAttr.enIntfSync = VO_OUTPUT_1080P60; //VO_OUTPUT_3840x2160_30;
    stVoPubAttr.enIntfType = VO_INTF_HDMI |
VO_INTF_VGA;
#endif
    s32Ret = SAMPLE_COMM_VO_StartDev(VoDev, &stVoPubAttr);
    if(s32Ret != HI_SUCCESS)
    {               
        SAMPLE_PRT("vdec bind vpss fail for %#x!\n", s32Ret);
        goto END4_1;
    }

#ifndef HI_FPGA
    if (HI_SUCCESS != SAMPLE_COMM_VO_HdmiStart(stVoPubAttr.enIntfSync))
    {
        SAMPLE_PRT("Start SAMPLE_COMM_VO_HdmiStart failed!\n");
        goto END4_2;
    }
#endif

    stVoLayerAttr.bClusterMode = HI_FALSE;
    stVoLayerAttr.bDoubleFrame = HI_FALSE;
    stVoLayerAttr.enPixFormat = SAMPLE_PIXEL_FORMAT;   

    s32Ret = SAMPLE_COMM_VO_GetWH(stVoPubAttr.enIntfSync, \
        &stVoLayerAttr.stDispRect.u32Width, &stVoLayerAttr.stDispRect.u32Height, &stVoLayerAttr.u32DispFrmRt);
    if (s32Ret != HI_SUCCESS)
    {
        SAMPLE_PRT("failed with %#x!\n", s32Ret);
        goto  END4_2;
    }
    stVoLayerAttr.stImageSize.u32Width = stVoLayerAttr.stDispRect.u32Width;
    stVoLayerAttr.stImageSize.u32Height = stVoLayerAttr.stDispRect.u32Height;
    s32Ret = SAMPLE_COMM_VO_StartLayer(VoLayer, &stVoLayerAttr);
    if(s32Ret != HI_SUCCESS)
    {               
        SAMPLE_PRT("SAMPLE_COMM_VO_StartLayer fail for %#x!\n", s32Ret);
        goto END4_3;
    }       

    s32Ret = SAMPLE_COMM_VO_StartChn(VoLayer, VO_MODE_4MUX);
    if(s32Ret != HI_SUCCESS)
    {               
        SAMPLE_PRT("vdec bind vpss fail for %#x!\n", s32Ret);
        goto END4_4;
    }

    /************************************************
    step6:  VDEC bind VPSS
    *************************************************/       
    for(i=0; i     {
            s32Ret = SAMPLE_COMM_VDEC_BindVpss(i, i);
            if(s32Ret != HI_SUCCESS)
            {            
            SAMPLE_PRT("vdec bind vpss fail for %#x!\n", s32Ret);
            goto END5;
            }       
    }
           
    /************************************************
    step7:  VPSS bind VO
    *************************************************/
    for(i=0; i     {
        s32Ret = SAMPLE_COMM_VO_BindVpss(VoLayer, i, i, VPSS_CHN0);
        if(s32Ret != HI_SUCCESS)
        {            
            SAMPLE_PRT("vpss bind vo fail for %#x!\n", s32Ret);
            goto END6;
        }       
    }       

    /************************************************
    step8:  send stream to VDEC
    *************************************************/
    SAMPLE_COMM_VDEC_ThreadParam(u32VdCnt, &stVdecSend[0], &stVdecChnAttr[0], SAMPLE_1080P_H264_PATH);       
    SAMPLE_COMM_VDEC_StartSendStream(u32VdCnt, &stVdecSend[0], &VdecThread[0]);

    /***  get the stat info of luma pix  ***/
    SAMPLE_COMM_VDEC_StartGetLuma(u32VdCnt, &stVdecSend[0], &VdecThread[0]);

    /***  set the rotational angle of decode pic  ***/
    printf("SAMPLE_TEST: set set the rotational angle of decode pic now.");
    sleep(5);
    for(i=0; i     {   
        enRotate = ROTATE_90;
        HI_MPI_VDEC_SetRotate(i, enRotate);
    }
    sleep(3);
    for(i=0; i     {   
        enRotate = ROTATE_180;
        HI_MPI_VDEC_SetRotate(i, enRotate);
    }
    sleep(3);
    for(i=0; i     {   
        enRotate = ROTATE_270;
        HI_MPI_VDEC_SetRotate(i, enRotate);
    }
    sleep(3);       
    for(i=0; i     {   
        enRotate = ROTATE_NONE;
        HI_MPI_VDEC_SetRotate(i, enRotate);
    }

    /***  control the send stream thread and get luma info thread  ***/
    SAMPLE_COMM_VDEC_CmdCtrl(u32VdCnt, &stVdecSend[0]);

    SAMPLE_COMM_VDEC_StopSendStream(u32VdCnt, &stVdecSend[0], &VdecThread[0]);

    SAMPLE_COMM_VDEC_StopGetLuma(u32VdCnt, &stVdecSend[0], &VdecThread[0]);
               
END6:
    for(i=0; i     {
        s32Ret = SAMPLE_COMM_VO_UnBindVpss(VoLayer, i, i, VPSS_CHN0);
        if(s32Ret != HI_SUCCESS)
        {            
            SAMPLE_PRT("vpss unbind vo fail for %#x!\n", s32Ret);
        }       
    }               

END5:
    for(i=0; i     {
        s32Ret = SAMPLE_COMM_VDEC_UnBindVpss(i, i);
        if(s32Ret != HI_SUCCESS)
        {            
            SAMPLE_PRT("vdec unbind vpss fail for %#x!\n", s32Ret);
        }       
    }

END4_4:
    SAMPLE_COMM_VO_StopChn(VoLayer, VO_MODE_4MUX);       
END4_3:
    SAMPLE_COMM_VO_StopLayer(VoLayer);
END4_2:
#ifndef HI_FPGA
    SAMPLE_COMM_VO_HdmiStop();
#endif
END4_1:
    SAMPLE_COMM_VO_StopDev(VoDev);

END3:
    SAMPLE_COMM_VPSS_Stop(u32GrpCnt, VPSS_CHN0);

END2:
    SAMPLE_COMM_VDEC_Stop(u32VdCnt);               
       
END1:
    SAMPLE_COMM_SYS_Exit();       

    return s32Ret;
}

zhuangweiye

8个粉丝

0

问答

0

专栏

0

资料

zhuangweiye 2016-07-22 09:11:22
认可0

楼主估计是想用HD1 4K显示了

看文档, 看文档, 看文档, 重要的事情喊三遍

  芯片                 最大输出时序       输出接口
Hi3536    HD0    3840x2160@60     BT.1120/HDMI/VGA  
              HD1    1920x1080@60     BT.1120/HDMI/VGA

可以看出HD1 最大支持 1080P@60, 所以当然不行了

周星星

0个粉丝

6

问答

0

专栏

0

资料

周星星 2016-07-22 09:35:43
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=34547&ptid=12042]zhuangweiye 发表于 2016-7-22 09:11[/url]
楼主估计是想用HD1 4K显示了

看文档, 看文档, 看文档, 重要的事情喊三遍
[/quote]

  上面的代码已经改了的,只是没有标示出来
    VoDev = SAMPLE_VO_DEV_DHD0;  此处改成SAMPLE_VO_DEV_DHD1
    VoLayer = SAMPLE_VO_LAYER_VHD0;此处改成SAMPLE_VO_LAYER_VHD1
   
#ifdef HI_FPGA
    stVoPubAttr.enIntfSync = VO_OUTPUT_1080P30;
    stVoPubAttr.enIntfType = VO_INTF_VGA;
#else
    stVoPubAttr.enIntfSync = VO_OUTPUT_1080P60; //VO_OUTPUT_3840x2160_30;
    stVoPubAttr.enIntfType = VO_INTF_HDMI |

wuxichen2016

0个粉丝

0

问答

0

专栏

0

资料

wuxichen2016 2016-07-22 09:58:07
认可0
有Hi3536的资料吗?谢谢

zhuangweiye

8个粉丝

0

问答

0

专栏

0

资料

zhuangweiye 2016-07-22 10:54:41
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=34555&ptid=12042]周星星 发表于 2016-7-22 09:35[/url]
上面的代码已经改了的,只是没有标示出来
    VoDev = SAMPLE_VO_DEV_DHD0;  此处改成SAMPLE_VO_DEV_D ...[/quote]

楼主的代码, 我编译后在3536上跑了,没有问题

M_chenyang

1个粉丝

14

问答

0

专栏

0

资料

M_chenyang 2016-07-22 10:57:30
认可0
我测试了下。没问题的。ko版本是否对应好了?   可以确认下。

周星星

0个粉丝

6

问答

0

专栏

0

资料

周星星 2016-07-22 14:15:54
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=34570&ptid=12042]zhuangweiye 发表于 2016-7-22 10:54[/url]
楼主的代码, 我编译后在3536上跑了,没有问题[/quote]

是的,估计是开发环境配置的问题

周星星

0个粉丝

6

问答

0

专栏

0

资料

周星星 2016-07-22 14:16:52
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=34557&ptid=12042]wuxichen2016 发表于 2016-7-22 09:58[/url]
有Hi3536的资料吗?谢谢[/quote]

说明3536是vo是支持两个高清dev的,估计的是我们板子环境搭建的问题

ngswfx

1个粉丝

55

问答

1

专栏

40

资料

ngswfx 2016-07-22 14:44:03
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=34602&ptid=12042]周星星 发表于 2016-7-22 14:16[/url]
说明3536是vo是支持两个高清dev的,估计的是我们板子环境搭建的问题[/quote]

0xA00F8008 HI_ERR_VO_NOT_SUPPORT 不支持的操作

//////估计哪里配置有些没对。

周星星

0个粉丝

6

问答

0

专栏

0

资料

周星星 2016-07-22 15:59:58
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=34602&ptid=12042]周星星 发表于 2016-7-22 14:16[/url]
说明3536是vo是支持两个高清dev的,估计的是我们板子环境搭建的问题[/quote]

如果是函数参数配置不对的话,保存不一样

/opt/mpp_single/sample/vdec # ./sample_vdec


/************************************/
please choose the case which you want to run:
        0:  VDH H264
        1:  VDH H265
        2:  VDH MPEG4
        3:  JPEG decoding
        q:  quit the whole sample
sample command:0
[SAMPLE_COMM_VO_StartDev]-96: HI_MPI_VO_SetPubAttr failed with 0xa00f8008!
[SAMPLE_VDEC_VdhH264]-249: vdec bind vpss fail for 0xffffffff!


/************************************/
please choose the case which you want to run:
        0:  VDH H264
        1:  VDH H265
        2:  VDH MPEG4
        3:  JPEG decoding
        q:  quit the whole sample
sample command:

docterling

0个粉丝

0

问答

0

专栏

0

资料

docterling 2016-12-28 20:22:31
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=34620&ptid=12042]周星星 发表于 2016-7-22 15:59[/url]
如果是函数参数配置不对的话,保存不一样

/opt/mpp_single/sample/vdec # ./sample_vdec
[/quote]

楼主,用这个sample_vdec解码264出来上电视机有没有感觉图像很模糊?像蒙了一层东西,字都看不清楚

3wnae

0个粉丝

9

问答

0

专栏

0

资料

3wnae 2016-07-23 09:27:41
认可0
SDK 问题。
或将文件直接拖到这里
悬赏:
E币
网盘
* 网盘链接:
* 提取码:
悬赏:
E币

Markdown 语法

  • 加粗**内容**
  • 斜体*内容*
  • 删除线~~内容~~
  • 引用> 引用内容
  • 代码`代码`
  • 代码块```编程语言↵代码```
  • 链接[链接标题](url)
  • 无序列表- 内容
  • 有序列表1. 内容
  • 缩进内容
  • 图片![alt](url)
+ 添加网盘链接/附件

Markdown 语法

  • 加粗**内容**
  • 斜体*内容*
  • 删除线~~内容~~
  • 引用> 引用内容
  • 代码`代码`
  • 代码块```编程语言↵代码```
  • 链接[链接标题](url)
  • 无序列表- 内容
  • 有序列表1. 内容
  • 缩进内容
  • 图片![alt](url)
相关问答
无更多相似问答 去提问
举报反馈

举报类型

  • 内容涉黄/赌/毒
  • 内容侵权/抄袭
  • 政治相关
  • 涉嫌广告
  • 侮辱谩骂
  • 其他

详细说明

易百纳技术社区