You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

150 lines
3.8 KiB

3 years ago
/******************************************************************************
Copyright (C), 2001-2011, Hisilicon Tech. Co., Ltd.
******************************************************************************
File Name : hi_common.h
Version : Initial Draft
Author : Hi3511 MPP Team
Created : 2006/11/09
Last Modified :
Description : The common data type defination for VB module.
Function List :
History :
1.Date : 2006/11/03
Author : c42025
Modification: Created file
2.Date : 2007/11/30
Author : c42025
Modification: modify according review comments
3.Date : 2008/06/18
Author : c42025
Modification: add VB_UID_PCIV
4.Date : 2008/10/31
Author : z44949
Modification : Translate the chinese comment
5.Date : 2008/10/31
Author : p00123320
Modification : change commentary of u32MaxPoolCnt in VB_CONF_S
******************************************************************************/
#ifndef __HI_COMM_VB_H__
#define __HI_COMM_VB_H__
#include "hi_type.h"
#include "hi_errno.h"
#include "hi_debug.h"
#ifdef __cplusplus
#if __cplusplus
extern "C"{
#endif
#endif /* End of #ifdef __cplusplus */
#define VB_MAX_POOLS 256
#define VB_MAX_COMM_POOLS 16
#define VB_MAX_MOD_COMM_POOLS 16
/* user ID for VB */
#define VB_MAX_USER 22
typedef enum hiVB_UID_E
{
VB_UID_VIU = 0,
VB_UID_VOU = 1,
VB_UID_VGS = 2,
VB_UID_VENC = 3,
VB_UID_VDEC = 4,
VB_UID_VDA = 5,
VB_UID_H264E = 6,
VB_UID_JPEGE = 7,
VB_UID_MPEG4E = 8,
VB_UID_H264D = 9,
VB_UID_JPEGD = 10,
VB_UID_MPEG4D = 11,
VB_UID_VPSS = 12,
VB_UID_GRP = 13,
VB_UID_MPI = 14,
VB_UID_PCIV = 15,
VB_UID_AI = 16,
VB_UID_AENC = 17,
VB_UID_RC = 18,
VB_UID_VFMW = 19,
VB_UID_USER = 20,
VB_UID_H265E = 21,
VB_UID_BUTT
} VB_UID_E;
#define VB_INVALID_POOLID (-1UL)
#define VB_INVALID_HANDLE (-1UL)
/* Generall common pool use this owner id, module common pool use VB_UID as owner id */
#define POOL_OWNER_COMMON -1
/* Private pool use this owner id */
#define POOL_OWNER_PRIVATE -2
typedef enum hiPOOL_TYPE_E
{
POOL_TYPE_COMMON = 0,
POOL_TYPE_PRIVATE = 1,
POOL_TYPE_MODULE_COMMON = 2,
POOL_TYPE_BUTT
} POOL_TYPE_E;
typedef HI_U32 VB_POOL;
typedef HI_U32 VB_BLK;
#define RESERVE_MMZ_NAME "window"
typedef struct hiVB_CONF_S
{
HI_U32 u32MaxPoolCnt; /* max count of pools, (0,VB_MAX_POOLS] */
struct hiVB_CPOOL_S
{
HI_U32 u32BlkSize;
HI_U32 u32BlkCnt;
HI_CHAR acMmzName[MAX_MMZ_NAME_LEN];
}astCommPool[VB_MAX_COMM_POOLS];
} VB_CONF_S;
typedef struct hiVB_POOL_STATUS_S
{
HI_U32 bIsCommPool;
HI_U32 u32BlkCnt;
HI_U32 u32FreeBlkCnt;
}VB_POOL_STATUS_S;
#define VB_SUPPLEMENT_JPEG_MASK 0x1
typedef struct hiVB_SUPPLEMENT_CONF_S
{
HI_U32 u32SupplementConf;
}VB_SUPPLEMENT_CONF_S;
#define HI_ERR_VB_NULL_PTR HI_DEF_ERR(HI_ID_VB, EN_ERR_LEVEL_ERROR, EN_ERR_NULL_PTR)
#define HI_ERR_VB_NOMEM HI_DEF_ERR(HI_ID_VB, EN_ERR_LEVEL_ERROR, EN_ERR_NOMEM)
#define HI_ERR_VB_NOBUF HI_DEF_ERR(HI_ID_VB, EN_ERR_LEVEL_ERROR, EN_ERR_NOBUF)
#define HI_ERR_VB_UNEXIST HI_DEF_ERR(HI_ID_VB, EN_ERR_LEVEL_ERROR, EN_ERR_UNEXIST)
#define HI_ERR_VB_ILLEGAL_PARAM HI_DEF_ERR(HI_ID_VB, EN_ERR_LEVEL_ERROR, EN_ERR_ILLEGAL_PARAM)
#define HI_ERR_VB_NOTREADY HI_DEF_ERR(HI_ID_VB, EN_ERR_LEVEL_ERROR, EN_ERR_SYS_NOTREADY)
#define HI_ERR_VB_BUSY HI_DEF_ERR(HI_ID_VB, EN_ERR_LEVEL_ERROR, EN_ERR_BUSY)
#define HI_ERR_VB_NOT_PERM HI_DEF_ERR(HI_ID_VB, EN_ERR_LEVEL_ERROR, EN_ERR_NOT_PERM)
#define HI_ERR_VB_2MPOOLS HI_DEF_ERR(HI_ID_VB, EN_ERR_LEVEL_ERROR, EN_ERR_BUTT + 1)
#define HI_TRACE_VB(level,fmt...) HI_TRACE(level, HI_ID_VB,##fmt)
#ifdef __cplusplus
#if __cplusplus
}
#endif
#endif /* __cplusplus */
#endif /* __HI_COMM_VB_H_ */