justchen

justchen

1个粉丝

11

问答

0

专栏

1

资料

justchen  发布于  2016-09-09 12:32:00
采纳率 0%
11个问答
9826

HI3531 VI配置问题,BT1120输入时获取帧数据异常

 
板子为4路 BT1120输入 1080P
主要VI的代码如下
[code]    for(i=0; i                     HI_MPPRUN( HI_MPI_VI_DisableChn(ViChn) );   //
    HI_MPPRUN( SAMPLE_COMM_VI_Mode2Param(SAMPLE_VI_MODE_4_1080P, &stViParam) );   // 禁能VI通道
        for(i=0; i                 HI_MPPRUN( HI_MPI_VI_DisableDev(ViDev) );   // 禁能VI设备


    for(i=0; i<=6; i+=2)                // DEV 0 2 4 6
    {
            ViDev = i;
                stViDevAttr.enIntfMode = VI_MODE_BT1120_STANDARD;
                stViDevAttr.enWorkMode = VI_WORK_MODE_1Multiplex;
                stViDevAttr.au32CompMask[0] = 0xFF000000;   //  {0xFF000000,    0xFF0000},  
                stViDevAttr.au32CompMask[1] = 0xFF0000;      // 四路BT1120输入掩码,不知道对不对.
                stViDevAttr.enScanMode = VI_SCAN_PROGRESSIVE;  // 逐行扫描
                stViDevAttr.enDataSeq = VI_INPUT_DATA_UYVY;
                stViDevAttr.s32AdChnId[0] = -1;
                stViDevAttr.s32AdChnId[1] = -1;
                stViDevAttr.s32AdChnId[2] = -1;
                stViDevAttr.s32AdChnId[3] = -1;
                HI_MPPRUN( HI_MPI_VI_SetDevAttr(ViDev, &stViDevAttr) );
                HI_MPPRUN( HI_MPI_VI_EnableDev(ViDev) );
    }

    for(i=0; i<=12; i+=4)                // CHN 0 4 8 12
    {
            ViChn = i;
            stChnAttr.stCapRect.u32Width = 1920;
                stChnAttr.stCapRect.u32Height = 1080;
                stChnAttr.stDestSize.u32Width = 1920;
                stChnAttr.stDestSize.u32Height = 1080;
                stChnAttr.enCapSel = VI_CAPSEL_BOTH;
                stChnAttr.enPixFormat = PIXEL_FORMAT_YUV_SEMIPLANAR_422;
                stChnAttr.bMirror = HI_FALSE;
                stChnAttr.bFlip = HI_FALSE;
                stChnAttr.bChromaResample = HI_FALSE;
                stChnAttr.s32SrcFrameRate = 60;     // 要么都是 -1 否则得为真实值
                stChnAttr.s32FrameRate = 25;        // 输出帧率,

                HI_MPI_VI_SetFrameDepth(ViChn , 5);   // VI 图像最大深度, 最大帧缓存
                HI_MPPRUN( HI_MPI_VI_SetChnAttr(ViChn,&stChnAttr) );
                HI_MPPRUN( HI_MPI_VI_EnableChn(ViChn) );
    }[/code]

配置完后,使用HI_MPI_VI_GetFrameTimeOut(i, &stFrame,200);  无法获取帧数据,   不明白为什么. BT1120过来的数据应该问题不是很大
通过 cat /proc/umap/vi 的信息也没看出来VI的异常, 只好论坛求助下
我来回答
回答6个
时间排序
认可量排序

zhuangweiye

8个粉丝

0

问答

0

专栏

0

资料

zhuangweiye 2016-09-09 12:45:04
认可0
VI 信息清楚表明有异常

注意看 VI PHYCHN STATUS 1中 Filed 一项, 0/4/12通道下面都是NULL, stride 都是 0

说明 这几路VI 没有中断


另外:
1. comMask 是否应该是
   comMask[0] comMask[1]
0 0xFF000000 0x00FF0000
2 0x0000FF00 0x000000FF
4 0xFF000000 0x00FF0000
6 0x0000FF00 0x000000FF

2. CapX和CapY 是否应该是 0


celinessl

0个粉丝

3

问答

0

专栏

1

资料

celinessl 2016-09-09 13:05:45
认可0
0,4,12通道下是NULL,说明这3个chn 没视频


. comMask 是否应该是
   comMask[0] comMask[1]
0 0xFF000000 0x00FF0000
2 0x0000FF00 0x000000FF
4 0xFF000000 0x00FF0000
6 0x0000FF00 0x000000FF

2. CapX和CapY 是否应该是 0

对的
    stChnAttr.stCapRect.s32X = 0;
    stChnAttr.stCapRect.s32Y = 0;

    dev *= VEncode::s_KVIDevInterval;
   
    switch (dev % 4)
    {
    case 0:
        stViDevAttr.au32CompMask[0] = 0xFF000000;
        stViDevAttr.au32CompMask[1] = 0x00FF0000;

        break;

    case 2:
        stViDevAttr.au32CompMask[0] = 0x0000FF00;
        stViDevAttr.au32CompMask[1] = 0x000000FF;

        break;

    default:
        LOG_ERROR << "Invalid mask";
        
        break;
    }

justchen

1个粉丝

11

问答

0

专栏

1

资料

justchen 2016-09-09 14:22:50
认可0
多谢.  0,4,12 没有输入..只有8是有输入..
现在被弄出去出差了.明天回来测试

pumeisc

1个粉丝

13

问答

0

专栏

0

资料

pumeisc 2016-11-08 17:10:48
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=37481&ptid=12602]justchen 发表于 2016-9-9 14:22[/url]
多谢.  0,4,12 没有输入..只有8是有输入..
现在被弄出去出差了.明天回来测试[/quote]

楼主,解决了吗?我的现象和你的一样

justchen

1个粉丝

11

问答

0

专栏

1

资料

justchen 2016-11-15 23:32:26
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=40985&ptid=12602]pumeisc 发表于 2016-11-8 17:10[/url]
楼主,解决了吗?我的现象和你的一样[/quote]

解决了.就是楼上大神说的,掩码不太对

        VI_DEV ViDev;
        VI_CHN ViChn;
        VI_DEV_ATTR_S    stViDevAttr;
        VI_CHN_ATTR_S stChnAttr;
        SAMPLE_VI_PARAM_S stViParam;

        HI_MPPRUN( SAMPLE_COMM_VI_Mode2Param(SAMPLE_VI_MODE_4_1080P, &stViParam) );
        ViDev = chn * stViParam.s32ViDevInterval;
        ViChn = chn * stViParam.s32ViChnInterval;

        HI_MPPRUN( HI_MPI_VI_DisableChn(ViChn) );
        HI_MPPRUN( HI_MPI_VI_DisableDev(ViDev) );                // 禁能VI設備

        memset(&stViDevAttr,0,sizeof(stViDevAttr));                // 少了段代碼死活出不來
        memcpy(&stViDevAttr,&DEV_ATTR_7441_BT1120_1080P,sizeof(stViDevAttr));
        SAMPLE_COMM_VI_SetMask(ViDev,&stViDevAttr);
        HI_MPPRUN( HI_MPI_VI_SetDevAttr(ViDev, &stViDevAttr) );
        HI_MPPRUN( HI_MPI_VI_EnableDev(ViDev) );

        stChnAttr.stCapRect.s32X = 0;
        stChnAttr.stCapRect.s32Y = 0;
        stChnAttr.stCapRect.u32Width   = hdmirx.video_width;
        stChnAttr.stCapRect.u32Height  = hdmirx.video_height;
        stChnAttr.stDestSize.u32Width  = hdmirx.video_width;
        stChnAttr.stDestSize.u32Height = hdmirx.video_height;
        stChnAttr.enCapSel = VI_CAPSEL_BOTH;
        stChnAttr.enPixFormat = PIXEL_FORMAT_YUV_SEMIPLANAR_420;
        stChnAttr.bMirror = HI_FALSE;
        stChnAttr.bFlip = HI_FALSE;
        stChnAttr.bChromaResample = HI_FALSE;
        stChnAttr.s32SrcFrameRate = hdmirx.video_freq;     // justchen:要么都是 -1 否则得为真实值
        stChnAttr.s32FrameRate = 60;        // 输出帧率,

        HI_MPPRUN( HI_MPI_VI_SetChnAttr(ViChn, &stChnAttr) );
        HI_MPPRUN( HI_MPI_VI_EnableChn(ViChn) );

trybye

0个粉丝

17

问答

0

专栏

0

资料

trybye 2017-04-17 16:59:51
认可0
HI_MPPRUN是什么
或将文件直接拖到这里
悬赏:
E币
网盘
* 网盘链接:
* 提取码:
悬赏:
E币

Markdown 语法

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

Markdown 语法

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

举报类型

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

详细说明

易百纳技术社区