mirror of https://github.com/OpenIPC/firmware.git
397 lines
9.0 KiB
C
397 lines
9.0 KiB
C
/******************************************************************************
|
|
Copyright (C), 2016, Hisilicon Tech. Co., Ltd.
|
|
******************************************************************************
|
|
File Name : hi_common.h
|
|
Version : Initial Draft
|
|
Author : Hisilicon multimedia software group
|
|
Created : 2016/07/15
|
|
Last Modified :
|
|
Description : The common defination
|
|
Function List :
|
|
******************************************************************************/
|
|
#ifndef __HI_COMMON_H__
|
|
#define __HI_COMMON_H__
|
|
|
|
#include "autoconf.h"
|
|
#include "hi_type.h"
|
|
|
|
#include "hi_defines.h"
|
|
|
|
|
|
#ifndef __IGNORE_HWSEC__
|
|
|
|
#ifndef __KERNEL__
|
|
#include "hi_securec.h"
|
|
#endif
|
|
|
|
#ifdef __LITEOS__
|
|
#include "hi_securec.h"
|
|
#endif
|
|
|
|
#endif
|
|
|
|
#ifdef __cplusplus
|
|
#if __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
#endif /* End of #ifdef __cplusplus */
|
|
|
|
#ifndef VER_X
|
|
#define VER_X 1
|
|
#endif
|
|
|
|
#ifndef VER_Y
|
|
#define VER_Y 0
|
|
#endif
|
|
|
|
#ifndef VER_Z
|
|
#define VER_Z 0
|
|
#endif
|
|
|
|
#ifndef VER_P
|
|
#define VER_P 0
|
|
#endif
|
|
|
|
#ifndef VER_B
|
|
#define VER_B 0
|
|
#endif
|
|
|
|
#ifdef HI_DEBUG
|
|
#define VER_D " Debug"
|
|
#else
|
|
#define VER_D " Release"
|
|
#endif
|
|
|
|
#ifdef CONFIG_HI_LOG_TRACE_SUPPORT
|
|
#define VER_E ""
|
|
#else
|
|
#define VER_E " NoLog"
|
|
#endif
|
|
|
|
|
|
#define ATTRIBUTE __attribute__((aligned (ALIGN_NUM)))
|
|
|
|
|
|
#define COMPAT_POINTER(ptr, type)\
|
|
do {\
|
|
HI_UL ulAddr = (HI_UL)ptr;\
|
|
HI_U32 u32Addr = (HI_U32)ulAddr;\
|
|
ptr = (type)(HI_UL)u32Addr;\
|
|
} while(0)
|
|
|
|
|
|
|
|
|
|
|
|
#define __MK_VERSION(x,y,z,p,b) #x"."#y"."#z"."#p" B0"#b
|
|
#define MK_VERSION(x,y,z,p,b) __MK_VERSION(x,y,z,p,b)
|
|
#define MPP_VERSION CHIP_NAME MPP_VER_PRIX MK_VERSION(VER_X,VER_Y,VER_Z,VER_P,VER_B) VER_D VER_E
|
|
|
|
#define VERSION_NAME_MAXLEN 64
|
|
typedef struct hiMPP_VERSION_S
|
|
{
|
|
HI_CHAR aVersion[VERSION_NAME_MAXLEN];
|
|
} MPP_VERSION_S;
|
|
|
|
|
|
typedef HI_S32 AI_CHN;
|
|
typedef HI_S32 AO_CHN;
|
|
typedef HI_S32 AENC_CHN;
|
|
typedef HI_S32 ADEC_CHN;
|
|
typedef HI_S32 AUDIO_DEV;
|
|
typedef HI_S32 VI_DEV;
|
|
typedef HI_S32 VI_PIPE;
|
|
typedef HI_S32 VI_CHN;
|
|
typedef HI_S32 VI_STITCH_GRP;
|
|
typedef HI_S32 VO_DEV;
|
|
typedef HI_S32 VO_LAYER;
|
|
typedef HI_S32 VO_CHN;
|
|
typedef HI_S32 VO_WBC;
|
|
typedef HI_S32 GRAPHIC_LAYER;
|
|
typedef HI_S32 VENC_CHN;
|
|
typedef HI_S32 VDEC_CHN;
|
|
typedef HI_S32 IVE_HANDLE;
|
|
typedef HI_S32 CLS_HANDLE;
|
|
typedef HI_S32 FD_CHN;
|
|
typedef HI_S32 MD_CHN;
|
|
typedef HI_S32 ISP_DEV;
|
|
typedef HI_S32 BLK_DEV;
|
|
typedef HI_S32 SENSOR_ID;
|
|
typedef HI_S32 MIPI_DEV;
|
|
typedef HI_S32 SLAVE_DEV;
|
|
typedef HI_S32 SVP_NNIE_HANDLE;
|
|
typedef HI_S32 SVP_DSP_HANDLE;
|
|
typedef HI_S32 SVP_ALG_CHN;
|
|
typedef HI_S32 VPSS_GRP;
|
|
typedef HI_S32 VPSS_GRP_PIPE;
|
|
typedef HI_S32 VPSS_CHN;
|
|
typedef HI_S32 AVS_GRP;
|
|
typedef HI_S32 AVS_PIPE;
|
|
typedef HI_S32 AVS_CHN;
|
|
typedef HI_S32 MCF_GRP;
|
|
typedef HI_S32 MCF_PIPE;
|
|
typedef HI_S32 MCF_CHN;
|
|
|
|
#define HI_INVALID_CHN (-1)
|
|
#define HI_INVALID_WAY (-1)
|
|
#define HI_INVALID_LAYER (-1)
|
|
#define HI_INVALID_DEV (-1)
|
|
#define HI_INVALID_HANDLE (-1)
|
|
#define HI_INVALID_VALUE (-1)
|
|
#define HI_INVALID_TYPE (-1)
|
|
|
|
|
|
#define CCM_MATRIX_SIZE (9)
|
|
#define CCM_MATRIX_NUM (7)
|
|
|
|
#define CLUT_R_NUM (17)
|
|
#define CLUT_B_NUM (17)
|
|
#define CLUT_G_NUM (17)
|
|
#define HI_ISP_CLUT_COEFACMCNT (4850)
|
|
#define CUBIC_POINT_MAX (5)
|
|
|
|
|
|
typedef enum hiMOD_ID_E
|
|
{
|
|
HI_ID_CMPI = 0,
|
|
HI_ID_VB = 1,
|
|
HI_ID_SYS = 2,
|
|
HI_ID_RGN = 3,
|
|
HI_ID_CHNL = 4,
|
|
HI_ID_VDEC = 5,
|
|
HI_ID_AVS = 6,
|
|
HI_ID_VPSS = 7,
|
|
HI_ID_VENC = 8,
|
|
HI_ID_SVP = 9,
|
|
HI_ID_H264E = 10,
|
|
HI_ID_JPEGE = 11,
|
|
HI_ID_MPEG4E = 12,
|
|
HI_ID_H265E = 13,
|
|
HI_ID_JPEGD = 14,
|
|
HI_ID_VO = 15,
|
|
HI_ID_VI = 16,
|
|
HI_ID_DIS = 17,
|
|
HI_ID_VALG = 18,
|
|
HI_ID_RC = 19,
|
|
HI_ID_AIO = 20,
|
|
HI_ID_AI = 21,
|
|
HI_ID_AO = 22,
|
|
HI_ID_AENC = 23,
|
|
HI_ID_ADEC = 24,
|
|
HI_ID_VPU = 25,
|
|
HI_ID_PCIV = 26,
|
|
HI_ID_PCIVFMW = 27,
|
|
HI_ID_ISP = 28,
|
|
HI_ID_IVE = 29,
|
|
HI_ID_USER = 30,
|
|
HI_ID_DCCM = 31,
|
|
HI_ID_DCCS = 32,
|
|
HI_ID_PROC = 33,
|
|
HI_ID_LOG = 34,
|
|
HI_ID_VFMW = 35,
|
|
HI_ID_H264D = 36,
|
|
HI_ID_GDC = 37,
|
|
HI_ID_PHOTO = 38,
|
|
HI_ID_FB = 39,
|
|
HI_ID_HDMI = 40,
|
|
HI_ID_VOIE = 41,
|
|
HI_ID_TDE = 42,
|
|
HI_ID_HDR = 43,
|
|
HI_ID_PRORES = 44,
|
|
HI_ID_VGS = 45,
|
|
|
|
HI_ID_FD = 47,
|
|
HI_ID_ODT = 48, //Object detection trace
|
|
HI_ID_VQA = 49, //Video quality analysis
|
|
HI_ID_LPR = 50, //Object detection trace
|
|
HI_ID_SVP_NNIE = 51,
|
|
HI_ID_SVP_DSP = 52,
|
|
HI_ID_DPU_RECT = 53,
|
|
HI_ID_DPU_MATCH = 54,
|
|
|
|
HI_ID_MOTIONSENSOR = 55,
|
|
HI_ID_MOTIONFUSION = 56,
|
|
|
|
HI_ID_GYRODIS = 57,
|
|
HI_ID_PM = 58,
|
|
HI_ID_SVP_ALG = 59,
|
|
HI_ID_IVP = 60,
|
|
HI_ID_MCF = 61,
|
|
HI_ID_QR = 62,
|
|
|
|
HI_ID_BUTT,
|
|
} MOD_ID_E;
|
|
|
|
typedef struct hiMPP_CHN_S
|
|
{
|
|
MOD_ID_E enModId;
|
|
HI_S32 s32DevId;
|
|
HI_S32 s32ChnId;
|
|
} MPP_CHN_S;
|
|
|
|
|
|
|
|
|
|
#define MPP_MOD_VI "vi"
|
|
#define MPP_MOD_VO "vo"
|
|
#define MPP_MOD_AVS "avs"
|
|
#define MPP_MOD_HDMI "hdmi"
|
|
#define MPP_MOD_VGS "vgs"
|
|
#define MPP_MOD_GDC "gdc"
|
|
#define MPP_MOD_DIS "dis"
|
|
#define MPP_MOD_GYRODIS "gyrodis"
|
|
|
|
#define MPP_MOD_CHNL "chnl"
|
|
#define MPP_MOD_VENC "venc"
|
|
#define MPP_MOD_VPSS "vpss"
|
|
#define MPP_MOD_RGN "rgn"
|
|
#define MPP_MOD_IVE "ive"
|
|
#define MPP_MOD_FD "fd"
|
|
#define MPP_MOD_MD "md"
|
|
#define MPP_MOD_IVP "ivp"
|
|
#define MPP_MOD_SVP "svp"
|
|
#define MPP_MOD_SVP_NNIE "nnie"
|
|
#define MPP_MOD_SVP_DSP "dsp"
|
|
#define MPP_MOD_SVP_ALG "svp_alg"
|
|
#define MPP_MOD_DPU_RECT "rect"
|
|
#define MPP_MOD_DPU_MATCH "match"
|
|
|
|
|
|
#define MPP_MOD_H264E "h264e"
|
|
#define MPP_MOD_H265E "h265e"
|
|
#define MPP_MOD_JPEGE "jpege"
|
|
#define MPP_MOD_MPEG4E "mpeg4e"
|
|
#define MPP_MOD_VEDU "vedu"
|
|
#define MPP_MOD_PRORES "prores"
|
|
|
|
#define MPP_MOD_VDEC "vdec"
|
|
#define MPP_MOD_H264D "h264d"
|
|
#define MPP_MOD_JPEGD "jpegd"
|
|
|
|
#define MPP_MOD_AI "ai"
|
|
#define MPP_MOD_AO "ao"
|
|
#define MPP_MOD_AENC "aenc"
|
|
#define MPP_MOD_ADEC "adec"
|
|
#define MPP_MOD_AIO "aio"
|
|
#define MPP_MOD_ACODEC "acodec"
|
|
|
|
#define MPP_MOD_VB "vb"
|
|
#define MPP_MOD_SYS "sys"
|
|
#define MPP_MOD_CMPI "cmpi"
|
|
|
|
#define MPP_MOD_PCIV "pciv"
|
|
#define MPP_MOD_PCIVFMW "pcivfmw"
|
|
|
|
#define MPP_MOD_PROC "proc"
|
|
#define MPP_MOD_LOG "logmpp"
|
|
|
|
#define MPP_MOD_DCCM "dccm"
|
|
#define MPP_MOD_DCCS "dccs"
|
|
|
|
#define MPP_MOD_FB "fb"
|
|
|
|
#define MPP_MOD_RC "rc"
|
|
|
|
#define MPP_MOD_VOIE "voie"
|
|
|
|
#define MPP_MOD_TDE "tde"
|
|
#define MPP_MOD_ISP "isp"
|
|
#define MPP_MOD_USR "usr"
|
|
#define MPP_MOD_MCF "mcf"
|
|
#define MPP_MOD_PM "pm"
|
|
#define MPP_MOD_MFUSION "motionfusion"
|
|
|
|
/* We just coyp this value of payload type from RTP/RTSP definition */
|
|
typedef enum
|
|
{
|
|
PT_PCMU = 0,
|
|
PT_1016 = 1,
|
|
PT_G721 = 2,
|
|
PT_GSM = 3,
|
|
PT_G723 = 4,
|
|
PT_DVI4_8K = 5,
|
|
PT_DVI4_16K = 6,
|
|
PT_LPC = 7,
|
|
PT_PCMA = 8,
|
|
PT_G722 = 9,
|
|
PT_S16BE_STEREO = 10,
|
|
PT_S16BE_MONO = 11,
|
|
PT_QCELP = 12,
|
|
PT_CN = 13,
|
|
PT_MPEGAUDIO = 14,
|
|
PT_G728 = 15,
|
|
PT_DVI4_3 = 16,
|
|
PT_DVI4_4 = 17,
|
|
PT_G729 = 18,
|
|
PT_G711A = 19,
|
|
PT_G711U = 20,
|
|
PT_G726 = 21,
|
|
PT_G729A = 22,
|
|
PT_LPCM = 23,
|
|
PT_CelB = 25,
|
|
PT_JPEG = 26,
|
|
PT_CUSM = 27,
|
|
PT_NV = 28,
|
|
PT_PICW = 29,
|
|
PT_CPV = 30,
|
|
PT_H261 = 31,
|
|
PT_MPEGVIDEO = 32,
|
|
PT_MPEG2TS = 33,
|
|
PT_H263 = 34,
|
|
PT_SPEG = 35,
|
|
PT_MPEG2VIDEO = 36,
|
|
PT_AAC = 37,
|
|
PT_WMA9STD = 38,
|
|
PT_HEAAC = 39,
|
|
PT_PCM_VOICE = 40,
|
|
PT_PCM_AUDIO = 41,
|
|
PT_MP3 = 43,
|
|
PT_ADPCMA = 49,
|
|
PT_AEC = 50,
|
|
PT_X_LD = 95,
|
|
PT_H264 = 96,
|
|
PT_D_GSM_HR = 200,
|
|
PT_D_GSM_EFR = 201,
|
|
PT_D_L8 = 202,
|
|
PT_D_RED = 203,
|
|
PT_D_VDVI = 204,
|
|
PT_D_BT656 = 220,
|
|
PT_D_H263_1998 = 221,
|
|
PT_D_MP1S = 222,
|
|
PT_D_MP2P = 223,
|
|
PT_D_BMPEG = 224,
|
|
PT_MP4VIDEO = 230,
|
|
PT_MP4AUDIO = 237,
|
|
PT_VC1 = 238,
|
|
PT_JVC_ASF = 255,
|
|
PT_D_AVI = 256,
|
|
PT_DIVX3 = 257,
|
|
PT_AVS = 258,
|
|
PT_REAL8 = 259,
|
|
PT_REAL9 = 260,
|
|
PT_VP6 = 261,
|
|
PT_VP6F = 262,
|
|
PT_VP6A = 263,
|
|
PT_SORENSON = 264,
|
|
PT_H265 = 265,
|
|
PT_VP8 = 266,
|
|
PT_MVC = 267,
|
|
PT_PNG = 268,
|
|
/* add by hisilicon */
|
|
PT_AMR = 1001,
|
|
PT_MJPEG = 1002,
|
|
PT_AMRWB = 1003,
|
|
PT_PRORES = 1006,
|
|
PT_OPUS = 1007,
|
|
PT_BUTT
|
|
} PAYLOAD_TYPE_E;
|
|
|
|
#ifdef __cplusplus
|
|
#if __cplusplus
|
|
}
|
|
#endif
|
|
#endif /* End of #ifdef __cplusplus */
|
|
|
|
#endif /* _HI_COMMON_H_ */
|
|
|