rxdgl

rxdgl

0个粉丝

5

问答

0

专栏

0

资料

rxdgl  发布于  2019-03-05 00:44:43
采纳率 0%
5个问答
3718

3520DV200抓图问题

 
HD720抓图成功但是图像有问题

哪里问题,能否给点建议。
我来回答
回答2个
时间排序
认可量排序

rxdgl

0个粉丝

5

问答

0

专栏

0

资料

rxdgl 2019-03-05 00:52:09
认可0
这是抓到的图片,应该是全黑屏。

rxdgl

0个粉丝

5

问答

0

专栏

0

资料

rxdgl 2019-03-05 00:58:03
认可0
/******************************************************************************

* function :  VI:4*720P;  HD0(HDMI,1080p@50 + VGA)

******************************************************************************/

HI_S32 SAMPLE_VIO_4_720P(HI_VOID)

{

    SAMPLE_VI_MODE_E enViMode = SAMPLE_VI_MODE_4_720P;

    HI_U32 u32ViChnCnt = 4;

    HI_S32 s32VpssGrpCnt = 4;

   

    VB_CONF_S stVbConf;

    VPSS_GRP VpssGrp;

    VPSS_GRP_ATTR_S stGrpAttr;

//    VO_DEV VoDev;

//    VO_CHN VoChn;

//        VI_CHN ViChn;

//    VO_PUB_ATTR_S stVoPubAttr;

//    SAMPLE_VO_MODE_E enVoMode, enPreVoMode;

   

    HI_S32 i;

    HI_S32 s32Ret = HI_SUCCESS;

    HI_U32 u32BlkSize;

//    HI_CHAR ch;

    SIZE_S stSize;

//    HI_U32 u32WndNum;



    VENC_GRP VencGrp;

    VENC_CHN VencChn;

    /******************************************

     step  1: init global  variable

    ******************************************/

    gs_u32ViFrmRate = (VIDEO_ENCODING_MODE_PAL == gs_enNorm)?25:30;

   

    memset(&stVbConf,0,sizeof(VB_CONF_S));



    u32BlkSize = SAMPLE_COMM_SYS_CalcPicVbBlkSize(gs_enNorm,\

                PIC_HD720, SAMPLE_PIXEL_FORMAT, SAMPLE_SYS_ALIGN_WIDTH);

    stVbConf.u32MaxPoolCnt = 128;



    /*ddr0 video buffer*/

    stVbConf.astCommPool[0].u32BlkSize = u32BlkSize;

    stVbConf.astCommPool[0].u32BlkCnt = u32ViChnCnt * 8;





    /******************************************

     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_720P_0;

    }



    /******************************************

     step 3: start vi dev & chn to capture

    ******************************************/

    s32Ret = SAMPLE_COMM_VI_Start(enViMode, gs_enNorm);

    if (HI_SUCCESS != s32Ret)

    {

        SAMPLE_PRT("start vi failed!\n");

        goto END_720P_0;

    }

   

    /******************************************

     step 4: start vpss and vi bind vpss (subchn needn't bind vpss in this mode)

    ******************************************/

    s32Ret = SAMPLE_COMM_SYS_GetPicSize(gs_enNorm, PIC_HD720, &stSize);

    if (HI_SUCCESS != s32Ret)

    {

        SAMPLE_PRT("SAMPLE_COMM_SYS_GetPicSize failed!\n");

        goto END_720P_1;

    }



    stGrpAttr.u32MaxW = stSize.u32Width;

    stGrpAttr.u32MaxH = stSize.u32Height;

    stGrpAttr.bDrEn = HI_FALSE;

    stGrpAttr.bDbEn = HI_FALSE;

    stGrpAttr.bIeEn = HI_TRUE;

    stGrpAttr.bNrEn = HI_TRUE;

    stGrpAttr.bHistEn = HI_TRUE;

    stGrpAttr.enDieMode = VPSS_DIE_MODE_NODIE;

    stGrpAttr.enPixFmt = SAMPLE_PIXEL_FORMAT;



    s32Ret = SAMPLE_COMM_VPSS_Start(s32VpssGrpCnt, &stSize, VPSS_MAX_CHN_NUM,&stGrpAttr);

    if (HI_SUCCESS != s32Ret)

    {

        SAMPLE_PRT("Start Vpss failed!\n");

        goto END_720P_1;

    }



    s32Ret = SAMPLE_COMM_VI_BindVpss(enViMode);

    if (HI_SUCCESS != s32Ret)

    {

        SAMPLE_PRT("Vi bind Vpss failed!\n");

        goto END_720P_2;

    }



    /******************************************

     step 5: snap process

    ******************************************/

    VencGrp = 0;

    VencChn = 0;

    s32Ret = SAMPLE_COMM_VENC_SnapStart(VencGrp, VencChn, &stSize);

    if (HI_SUCCESS != s32Ret)

    {

        SAMPLE_PRT("Start snap failed!\n");

        goto END_720P_3;

    }

    for (i=0; i
    {

        /*** main frame **/

        VpssGrp = i;



        s32Ret = SAMPLE_COMM_VENC_SnapProcess(VencGrp, VencChn, VpssGrp, VPSS_PRE0_CHN);

        if (HI_SUCCESS != s32Ret)

        {

            SAMPLE_PRT("snap process failed!\n");

            goto END_VENC_SNAP_4;

        }

        printf("snap chn %d ok!\n", i);
        sleep(1);

    }



    /******************************************

     step 8: exit process

    ******************************************/

    printf("snap over!\n");

   

END_VENC_SNAP_4:

    s32Ret = SAMPLE_COMM_VENC_SnapStop(VencGrp, VencChn);

    if (HI_SUCCESS != s32Ret)

    {

        SAMPLE_PRT("Stop snap failed!\n");

        goto END_720P_3;

    }

END_720P_3:

    SAMPLE_COMM_VI_UnBindVpss(enViMode);

END_720P_2:

    SAMPLE_COMM_VPSS_Stop(s32VpssGrpCnt, VPSS_MAX_CHN_NUM);

END_720P_1:

    SAMPLE_COMM_VI_Stop(enViMode);

END_720P_0:

    SAMPLE_COMM_SYS_Exit();

   

    return s32Ret;

}

或将文件直接拖到这里
悬赏:
E币
网盘
* 网盘链接:
* 提取码:
悬赏:
E币

Markdown 语法

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

Markdown 语法

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

举报类型

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

详细说明

易百纳技术社区