blob: f5c289cd053b4f3a9fbca8b6d04b51fd6786d3a9 (
plain) (
blame)
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
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
|
#ifndef _VDEC_INFO_AVS_H_
#define _VDEC_INFO_AVS_H_
//#include "drv_config.h"
//#include "drv_vdec.h"
#if 1 // (!CONFIG_DRV_VERIFY_SUPPORT)
#include "vdec_usage.h"
#include "vdec_info_common.h"
#else
//#include "x_stl_lib.h"
//#include "x_assert.h"
//#include "u_pbinf.h"
#endif
#define REF_LIST_0 0
#define REF_LIST_1 1
#define REF_LIST_2 2
#define AVS_MAX_FRM_BUFNUM 22
#define AVS_MAX_REF_PICNUM 3
#define AVS_PREV_P_IDX 1
#define AVS_LAST_P_IDX 2
#define AVS_PREV_FW_IDX 0
#define AVS_FW_REF_IDX 1
#define AVS_BW_REF_IDX 2
#define AVS_CURR_WORK_IDX 3
#define AVS_DPB_NUM 4
typedef struct _VDEC_INFO_AVS_VFIFO_PRM_T_
{
UINT32 u4VFifoSa; ///< Video Fifo memory start address
UINT32 u4VFifoEa; ///< Video Fifo memory end address
} VDEC_INFO_AVS_VFIFO_PRM_T;
typedef struct _VDEC_INFO_AVS_BS_INIT_PRM_T_
{
UINT32 u4VLDRdPtr;
UINT32 u4VLDWrPtr;
UINT32 u4VFifoSa; ///< Video Fifo memory start address
UINT32 u4VFifoEa; ///< Video Fifo memory end address
UINT32 u4WritePointer;
} VDEC_INFO_AVS_BS_INIT_PRM_T;
typedef struct _VDEC_INFO_AVS_SEQ_HDR_T_
{
UINT32 u4ProfileID;
UINT32 u4LevelID;
UINT32 u4IsProgSeq;
UINT32 u4HSize;
UINT32 u4VSize;
UINT32 u4ChromaFmt;
UINT32 u4SamplePrec;
UINT32 u4AspRatio;
UINT32 u4FrmRate ;
UINT32 u4BitRateL;
UINT32 u4MarketBitBR;
UINT32 u4BitRateU;
UINT32 u4LowDelay;
UINT32 u4MarkerBit;
UINT32 u4BBVSize;
UINT32 u4RsvBits;
UINT32 u4IsValid;
UINT32 u2WidthDec;
UINT32 u2HeightDec;
UINT32 u4LastHSize;
UINT32 u4LastVSize;
} VDEC_INFO_AVS_SEQ_HDR_T;
typedef struct _VDEC_INFO_AVS_PIC_HDR_T_
{
UINT32 u4BBVDelay;
UINT32 u4TimeCodeFg;
UINT32 u4TimeCode;
UINT32 u4MarkerBit;
UINT32 u4BBVCheckTimes;
UINT32 u4PicCodingType;
UINT32 u4PicDistance;
UINT32 u4ProgFrm;
UINT32 u4PicStruct;
UINT32 u4AdvPredModeDisable;
UINT32 u4TFT;
UINT32 u4RFF;
UINT32 u4FixedPicQP;
UINT32 u4PicQP;
UINT32 u4PicRefFg;
UINT32 u4NoForwardRefFg;
UINT32 u4SkipModeFg;
UINT32 u4RsvBits;
UINT32 u4LoopFilterDisable;
UINT32 u4LoopFilterParamFg;
UINT32 u4IsValid; //stuffing bit
INT32 i4AlphaCOffset;
INT32 i4BetaOffset;
BOOL fgIsIPic;
BOOL fgSecField;
} VDEC_INFO_AVS_PIC_HDR_T;
typedef struct _VDEC_INFO_AVS_SLICE_HDR_T_
{
UINT16 u2VPosExt;
UINT16 u2FixedSliceQP;
UINT16 u2SliceQP;
UINT16 u2SliceWeightFg;
UINT16 u2MBWeightFg;
UINT8 u1LumaScale[2];
INT8 i1LumaShift[2];
UINT8 u1ChromaScale[2];
INT8 i1ChromaShift[2];
} VDEC_INFO_AVS_SLICE_DHR_T;
typedef struct _VDEC_INFO_AVS_WORK_BUF_SA_T_
{
UINT32 u4PredSa;
UINT32 u4Mv1;
UINT32 u4Mv2;
} VDEC_INFO_AVS_WORK_BUF_SA_T;
typedef struct _VDEC_INFO_AVS_FRAME_BUF_SA_T_
{
UINT32 u4Pic0YSa;
UINT32 u4Pic0CSa;
UINT32 u4Pic1YSa;
UINT32 u4Pic1CSa;
UINT32 u4Pic2YSa;
UINT32 u4Pic2CSa;
} VDEC_INFO_AVS_FRAME_BUF_SA_T;
typedef struct _VDEC_INFO_AVS_FBUF_INFO_T_
{
BOOL fgNonExisting;
BOOL fgIsBufRef;
BOOL fgIsErr;
BOOL fgIsNotDisp;
UCHAR ucFbId;
UINT8 u1FBufStatus; // 1:Top decoded, 2: Bottom decoded
UINT8 u1FBufRefType;
UINT8 u1TFldRefType;
UINT8 u1BFldRefType;
UINT32 u4FrameNum;
UINT32 u4SliceType;
INT32 i4FrameNumWrap;
UINT32 u4YAddr;
UINT32 u4CAddrOffset;
BOOL fgVirtualDec;
UINT64 u8Pts;
UINT64 u8Offset;
// Picture coding type
UINT8 u1PicCodingType;
// Frame picture distance
UINT32 u4PicDistance;
#if(CONFIG_DRV_VERIFY_SUPPORT)
UINT32 u4W;
UINT32 u4H;
UINT32 u4DecOrder;
UINT32 u4DramPicSize; // change name to u4CAddrOffset and add u4MVStartAddr TODO:071021
UINT32 u4DramPicArea; // maybe will be removed TODO:071021
UINT32 u4Addr; // change name to u4YStartAddr TODO:071021
#endif
} VDEC_INFO_AVS_FBUF_INFO_T;
typedef struct _VDEC_INFO_AVS_REF_BUF_T
{
BOOL fgValid;
//FBM
UCHAR ucFbId;
// Fb Index
UINT8 u1DecFBufIdx;
} VDEC_INFO_AVS_REF_BUF_T;
typedef struct _VDEC_INFO_AVS_DEC_PRM_T_
{
UINT32 u4FRefBufIdx;
INT32 i4MemBase;
UINT8 u1LastRefIdx;
UCHAR u1DecFBufIdx;
BOOL fgEnPP;
UINT32 u4MaxFBufNum;
// Decoding buffer
UCHAR *pucDecWorkBufY;
UCHAR *pucDecWorkBufC;
UCHAR *pucDecWorkBufMV;
//For 8320 PANDA
UINT32 u4VLDWrapperWrok;
UINT32 u4PPWrapperWrok;
VDEC_INFO_AVS_SEQ_HDR_T *prSeqHdr;
VDEC_INFO_AVS_PIC_HDR_T *prPicHdr;
VDEC_INFO_AVS_WORK_BUF_SA_T rAvsWorkBufSa;
VDEC_INFO_AVS_FRAME_BUF_SA_T rAvsFrameBufSa;
VDEC_INFO_AVS_FBUF_INFO_T arFBufInfo[AVS_DPB_NUM];
//VDEC_INFO_AVS_REF_BUF_T arRefFBufInfo[AVS_DPB_NUM];
VDEC_INFO_AVS_FBUF_INFO_T *prCurrFBufInfo;
} VDEC_INFO_AVS_DEC_PRM_T;
typedef struct _VDEC_HAL_DEC_AVS_ERR_INFO_T_
{
UINT32 u4AvsErrCnt; ///< Video decode error count
UINT32 u4AvsErrRow; ///< Video decode error mb row
UINT32 u4AvsErrType; ///< Video decode error type
UINT16 u2AvsMBErrCnt;
} VDEC_INFO_AVS_ERR_INFO_T;
#endif //#ifndef _HAL_VDEC_AVS_IF_H_
|