初始化MMP系统 范例

文档中的例子:

/*********************************
*函数功能:初始化MMP系统
*输出参数:
*返回值:成功为0 失败非0
*********************************/
HI_S32 fun_sys_init()
{
    HI_S32 s32ret;         //返回值
    VB_CONF_S struVbConf;         //缓存池结构体
    MPP_SYS_CONF_S struSysConf; 

    /*配置缓存池属性*/
    memset(&struVbConf,0,sizeof(VB_CONF_S)); 
    struVbConf.u32MaxPoolCnt = 64;        //缓存池的个数
    struVbConf.astCommPool[0].u32BlkSize = 1920*1088*2;     //每块的大小
    struVbConf.astCommPool[0].u32BlkCnt = 15;         //缓存块个数
    memset(struVbConf.astCommPool[0].acMmzName,0,sizeof(struVbConf.astCommPool[0].acMmzName));         //缓存池MMZ名字
    s32ret = HI_MPI_VB_SetConf(&struVbConf);         //设置 MPP 视频缓存池属性。
    if (HI_SUCCESS != s32ret) 
    { 
        return s32ret; 
    } 

    s32ret = HI_MPI_VB_Init();     //先调用 HI_MPI_VB_SetConf 后再初始化 方可成功
    if (HI_SUCCESS != s32ret) 
    { 
        return s32ret; 
    } 

    /*配置系统控制参数*/
    struSysConf.u32AlignWidth = 16;     //字节对齐
/* set config of mpp system*/ 
    s32ret = HI_MPI_SYS_SetConf(&struSysConf); 
    if (HI_SUCCESS != s32ret) 
    { 
        printf("Set mpp sys config failed!
"); 
        return s32ret; 
    } 

/* init system*/ 
    s32ret = HI_MPI_SYS_Init();     //初始化MMP系统
    if (HI_SUCCESS != s32ret) 
    { 
        printf("Mpi init failed!
"); 
        return s32ret; 
    } 

/* ...... */ 

/* exit system 去初始化*/ 
    s32ret = HI_MPI_SYS_Exit(); 
    if (HI_SUCCESS != s32ret) 
    { 
        printf("Mpi exit failed!
"); 
        return s32ret; 
    } 

    s32ret = HI_MPI_VB_Exit(); 
    if (HI_SUCCESS != s32ret) 
    {
        return s32ret; 
    }
}
原文地址:https://www.cnblogs.com/qifeng1024/p/13473558.html