1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
|
#ifndef _VDEC_VERIFY_VPARSER_H265_H_
#define _VDEC_VERIFY_VPARSER_H265_H_
#include <mach/mt_typedefs.h>
#define MAX_H265_PPS_COUNT 256
#define MAX_H265_SPS_COUNT 32
#define H265_Slice_Type_MAX 3
#define DBG_H265_PRINTF(output,arg, ...) if(1){printk("[PARSE] " );printk( arg, ##__VA_ARGS__ );}
#ifdef VDEC_SIM_DUMP
#define DEBUG_LEVEL 5
#else
#define DEBUG_LEVEL 0
#endif
#define DBG_LEVEL_INFO 5
#define DBG_LEVEL_BUG1 2
#define H265_DRV_PARSE_SET_ERR_RET(x) printk("[ERROR] Error %d!!!!\n",x )
#define MRG_MAX_NUM_CANDS 5
#define MAX_INT 0x7FFFFFFF ///< max. value of signed 32-bit integer
#define HEVC_EOS_CLEAR_DPB 1
#define H265_MAX_UINT 0xFFFFFFFF
enum RefPicList
{
REF_PIC_LIST_0 = 0, ///< reference list 0
REF_PIC_LIST_1 = 1, ///< reference list 1
REF_PIC_LIST_C = 2, ///< combined reference list for uni-prediction in B-Slices
REF_PIC_LIST_X = 100 ///< special mark
};
enum SliceType
{
HEVC_B_SLICE,
HEVC_P_SLICE,
HEVC_I_SLICE
};
typedef enum _H265_DPB_SIZE_T
{
H265_LEVEL_1_0 = 10,
H265_LEVEL_1_1 = 11,
H265_LEVEL_1_2 = 12,
H265_LEVEL_1_3 = 13,
H265_LEVEL_2_0 = 20,
H265_LEVEL_2_1 = 21,
H265_LEVEL_2_2 = 22,
H265_LEVEL_3_0 = 30,
H265_LEVEL_3_1 = 31,
H265_LEVEL_3_2 = 32,
H265_LEVEL_4_0 = 40,
H265_LEVEL_4_1 = 41,
} H265_DPB_SIZE;
enum ErrorTypes
{
PARSE_OK,
PPS_SYNTAX_ERROR,
SPS_SYNTAX_ERROR,
SLICE_SYNTAX_ERROR,
RPS_SYNTAX_ERROR,
SL_SYNTAX_ERROR,
SET_REG_SYNTAX_ERROR,
NOT_SUPPORT
};
void vHEVCInitROM(UINT32 u4InstID);
void vHEVCAssignQuantParam(UINT32 u4InstID, VDEC_INFO_DEC_PRM_T *ptVerMpvDecPrm);
void vHEVCVerifyFlushBufRefInfo(UINT32 u4InstID);
void vHEVCVerifyPrepareFBufInfo(UINT32 u4InstID, VDEC_INFO_DEC_PRM_T *tVerMpvDecPrm);
void vHEVCVDecSetBRefPicList(UINT32 u4InstID);
void vHEVCSetupBRefPicList(UINT32 u4InstID, UINT32 *pu4RefIdx, UINT32 u4TFldListIdx, UINT32 u4BFldListIdx, BOOL *fgDiff);
void vHEVCSetupRefPicList(UINT32 u4InstID);
void vHEVCResetFBAddr(UINT32 u4InstID, UINT32 u4FBindex);
void vHEVCPartitionDPB(UINT32 u4InstID);
void vHEVCSetCurrFBufIdx(UINT32 u4InstID, UINT32 u4DecFBufIdx);
UINT32 vHEVCParseNALs(UINT32 u4InstID);
UINT32 vHEVCVDecSetRefPicList(UINT32 u4InstID, VDEC_INFO_DEC_PRM_T *tVerMpvDecPrm);
UINT32 vHEVCVerifyVDecSetPicInfo(UINT32 u4InstID, VDEC_INFO_DEC_PRM_T *ptVerMpvDecPrm);
UINT32 vHEVCPrepareRefPiclist(UINT32 u4InstID, VDEC_INFO_DEC_PRM_T *tVerMpvDecPrm);
UINT32 vHEVCSearchRealPic(UINT32 u4InstID);
UINT32 vHEVCAllocateFBuf(UINT32 u4InstID, VDEC_INFO_DEC_PRM_T *tVerMpvDecPrm, BOOL fgFillCurrFBuf);
#endif // _PR_EMU_H_
|