qn1571036273

qn1571036273

0个粉丝

1

问答

1

专栏

0

资料

qn1571036273  发布于  2019-10-25 18:40:13
采纳率 0%
1个问答
2327

修改vivpss工作模式

 
将vivpss工作模式从修改成VI_ONLINE_VPSS_ONLINE修改成VI_OFFLINE_VPSS_ONLINE

执行结果:报错HI_MPI_VENC_CreateChn [1] faild with 0xa008800c!                错误码:分配内存失败

查看mmc内存位32M,分配vb缓冲区

    static HI_VOID SAMPLE_VENC_GetCommVbAttr(const SAMPLE_SNS_TYPE_E enSnsType, const SAMPLE_VPSS_CHN_ATTR_S *pstParam,
            HI_BOOL bSupportDcf, SAMPLE_VB_ATTR_S * pstcommVbAttr)
    {
        if (pstParam->ViVpssMode != VI_ONLINE_VPSS_ONLINE)
        {
            SIZE_S snsSize = {0};
            GetSensorResolution(enSnsType, &snsSize);

            if (pstParam->ViVpssMode == VI_OFFLINE_VPSS_ONLINE || pstParam->ViVpssMode == VI_OFFLINE_VPSS_OFFLINE)
            {
                pstcommVbAttr->blkSize[pstcommVbAttr->validNum] = VI_GetRawBufferSize(snsSize.u32Width, snsSize.u32Height,\
                       PIXEL_FORMAT_RGB_BAYER_12BPP,COMPRESS_MODE_NONE,DEFAULT_ALIGN);
                               
                pstcommVbAttr->blkCnt[pstcommVbAttr->validNum]  = 3;
                pstcommVbAttr->validNum++;
            }

            if (pstParam->ViVpssMode == VI_OFFLINE_VPSS_OFFLINE)
            {
                pstcommVbAttr->blkSize[pstcommVbAttr->validNum] = COMMON_GetPicBufferSize(snsSize.u32Width, snsSize.u32Height,
                        PIXEL_FORMAT_YVU_SEMIPLANAR_420,DATA_BITWIDTH_8,COMPRESS_MODE_NONE,DEFAULT_ALIGN);
                pstcommVbAttr->blkCnt[pstcommVbAttr->validNum]  = 2;
                pstcommVbAttr->validNum++;
            }

            if (pstParam->ViVpssMode == VI_ONLINE_VPSS_OFFLINE)
            {
                pstcommVbAttr->blkSize[pstcommVbAttr->validNum] = COMMON_GetPicBufferSize(snsSize.u32Width, snsSize.u32Height,
                        PIXEL_FORMAT_YVU_SEMIPLANAR_420,
                        DATA_BITWIDTH_8,
                        COMPRESS_MODE_NONE,
                        DEFAULT_ALIGN);
                pstcommVbAttr->blkCnt[pstcommVbAttr->validNum]  = 3;
                pstcommVbAttr->validNum++;

            }
        }
        if(HI_TRUE == pstParam->bWrapEn)
        {
            pstcommVbAttr->blkSize[pstcommVbAttr->validNum] = VPSS_GetWrapBufferSize(pstParam->stOutPutSize[pstParam->BigStreamId].u32Width,
                    pstParam->stOutPutSize[pstParam->BigStreamId].u32Height,
                    pstParam->WrapBufLine,
                    pstParam->enPixelFormat,DATA_BITWIDTH_8,COMPRESS_MODE_NONE,DEFAULT_ALIGN);
            pstcommVbAttr->blkCnt[pstcommVbAttr->validNum]  = 1;
            pstcommVbAttr->validNum++;
        }
        else
        {
            pstcommVbAttr->blkSize[pstcommVbAttr->validNum] = COMMON_GetPicBufferSize(pstParam->stOutPutSize[0].u32Width, pstParam->stOutPutSize[0].u32Height,
                    pstParam->enPixelFormat,
                    DATA_BITWIDTH_8,
                    pstParam->enCompressMode[0],
                    DEFAULT_ALIGN);

            if (pstParam->ViVpssMode == VI_ONLINE_VPSS_ONLINE)
            {
                pstcommVbAttr->blkCnt[pstcommVbAttr->validNum]  = 3;
            }
            else
            {
                pstcommVbAttr->blkCnt[pstcommVbAttr->validNum]  = 2;
            }

            pstcommVbAttr->validNum++;
        }



        pstcommVbAttr->blkSize[pstcommVbAttr->validNum] = COMMON_GetPicBufferSize(pstParam->stOutPutSize[1].u32Width, pstParam->stOutPutSize[1].u32Height,
                pstParam->enPixelFormat,
                DATA_BITWIDTH_8,
                pstParam->enCompressMode[1],
                DEFAULT_ALIGN);

        if (pstParam->ViVpssMode == VI_ONLINE_VPSS_ONLINE)
        {
            pstcommVbAttr->blkCnt[pstcommVbAttr->validNum]  = 3;
        }
        else
        {
            pstcommVbAttr->blkCnt[pstcommVbAttr->validNum]  = 2;
        }
        pstcommVbAttr->validNum++;


        //vgs dcf use
        if(HI_TRUE == bSupportDcf)
        {
            pstcommVbAttr->blkSize[pstcommVbAttr->validNum] = COMMON_GetPicBufferSize(160, 120,
                    pstParam->enPixelFormat,
                    DATA_BITWIDTH_8,
                    COMPRESS_MODE_NONE,
                    DEFAULT_ALIGN);
            pstcommVbAttr->blkCnt[pstcommVbAttr->validNum]  = 1;
            pstcommVbAttr->validNum++;
        }

    }

修改这段代码哪一部分,还是修改其他的哪一部分
我来回答
回答1个
时间排序
认可量排序

qn1571036273

0个粉丝

1

问答

1

专栏

0

资料

qn1571036273 2019-10-25 18:42:18
认可0
vb缓冲池分配失败原因,如何解决这个问题
或将文件直接拖到这里
悬赏:
E币
网盘
* 网盘链接:
* 提取码:
悬赏:
E币

Markdown 语法

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

Markdown 语法

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

举报类型

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

详细说明

易百纳技术社区