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
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
|
#ifndef _VDEC_INFO_H265_H_
#define _VDEC_INFO_H265_H_
//#include "drv_config.h"
//#include "drv_vdec.h"
#include "vdec_info_common.h"
#include "vdec_usage.h"
#define VDEC_MVC_SUPPORT 0
#define HEVC_STILL_IMG_MAX_WH 16896
typedef struct _H265_PTLFlag_Data_
{
UINT32 u4ProfileSpace;
BOOL bTierFlag;
UINT32 u4ProfileIdc;
BOOL bProfileCompatibilityFlag[32];
UINT32 u4LevelIdc;
BOOL bProgressiveSourceFlag;
BOOL bInterlacedSourceFlag;
BOOL bNonPackedConstraintFlag;
BOOL bFrameOnlyConstraintFlag;
} H265_PTLFlag_Data, *pH265_PTLFlag_Data;
typedef struct _H265_PTL_Data_
{
BOOL bProfilePresentFlag;
H265_PTLFlag_Data generalPTL;
H265_PTLFlag_Data subLayerPTL[6];
BOOL bSubLayerProfilePresentFlag[6];
BOOL bSubLayerLevelPresentFlag[6];
} H265_PTL_Data, *pH265_PTL_Data;
#define SCALING_LIST_NUM 6 ///< list number for quantization matrix
#define SCALING_LIST_NUM_32x32 2 ///< list number for quantization matrix 32x32
#define SCALING_LIST_REM_NUM 6 ///< remainder of QP/6
#define SCALING_LIST_START_VALUE 8 ///< start value for dpcm mode
#define MAX_MATRIX_COEF_NUM 64 ///< max coefficient number for quantization matrix
#define MAX_MATRIX_SIZE_NUM 8 ///< max size number for quantization matrix
#define SCALING_LIST_DC 16 ///< default DC value
enum ScalingListDIR
{
SCALING_LIST_SQT = 0,
SCALING_LIST_VER,
SCALING_LIST_HOR,
SCALING_LIST_DIR_NUM
};
enum ScalingListSize
{
SCALING_LIST_4x4 = 0,
SCALING_LIST_8x8,
SCALING_LIST_16x16,
SCALING_LIST_32x32,
SCALING_LIST_SIZE_NUM
};
typedef struct _H265_ScalingList_Data_
{
INT32 i4ScalingListDC[SCALING_LIST_SIZE_NUM][SCALING_LIST_NUM]; //!< the DC value of the matrix coefficient for 16x16
BOOL bScalingListPredModeFlag [SCALING_LIST_SIZE_NUM][SCALING_LIST_NUM];
UINT32 u4RefMatrixId[SCALING_LIST_SIZE_NUM][SCALING_LIST_NUM]; //!< RefMatrixID
INT32 *pScalingListDeltaCoef [SCALING_LIST_SIZE_NUM][SCALING_LIST_NUM]; //!< quantization matrix
BOOL bUseTransformSkip;
} H265_SL_Data, *pH265_SL_Data;
#define MAX_NUM_REF_PICS 32
typedef struct _H265_RPS_Data_
{
UINT32 u4NumberOfPictures;
UINT32 u4NumberOfNegativePictures;
UINT32 u4NumberOfPositivePictures;
UINT32 u4NumberOfLongtermPictures;
INT32 i4DeltaPOC[MAX_NUM_REF_PICS];
INT32 i4POC[MAX_NUM_REF_PICS];
BOOL bUsed[MAX_NUM_REF_PICS];
BOOL bInterRPSPrediction;
UINT32 u4DeltaRIdxMinus1;
UINT32 u4DeltaRPS;
UINT32 u4NumRefIdc;
UINT32 u4RefIdc[17];
BOOL bCheckLTMSB[MAX_NUM_REF_PICS];
UINT32 u4PocLSBLT[MAX_NUM_REF_PICS];
UINT32 i4DeltaPOCMSBCycleLT[MAX_NUM_REF_PICS];
BOOL bDeltaPocMSBPresentFlag[MAX_NUM_REF_PICS];
} H265_RPS_Data, *pH265_RPS_Data;
#define MAX_CPB_CNT 32 ///< Upper bound of (cpb_cnt_minus1 + 1)
#define MAX_TLAYER 8 ///< max number of temporal layer
typedef struct _H265_SUB_HRD_Data_ //HRD Sub Layer Info
{
BOOL bFixedPicRateFlag;
BOOL bFixedPicRateWithinCvsFlag;
UINT32 u4ElementalDurationInTcMinus1;
BOOL bLowDelayHrdFlag;
UINT32 u4CpbCntMinus1;
UINT32 u4BitRateValueMinus1[MAX_CPB_CNT][2];
UINT32 u4CpbSizeValueMinus1[MAX_CPB_CNT][2];
UINT32 u4DucpbSizeValueMinus1[MAX_CPB_CNT][2];
UINT32 u4DuBitRateValueMinus1[MAX_CPB_CNT][2];
BOOL bCbrFlag[MAX_CPB_CNT][2];
} H265_SUB_HRD_Data;
typedef struct _H265_HRD_Data_ //HRD Sub Layer Info
{
BOOL bNalHrdParametersPresentFlag;
BOOL bVclHrdParametersPresentFlag;
BOOL bSubPicCpbParamsPresentFlag;
UINT32 u4TickDivisorMinus2;
UINT32 u4DuCpbRemovalDelayLengthMinus1;
BOOL bSubPicCpbParamsInPicTimingSEIFlag;
UINT32 u4DpbOutputDelayDuLengthMinus1;
UINT32 u4BitRateScale;
UINT32 u4CpbSizeScale;
UINT32 u4DucpbSizeScale;
UINT32 u4InitialCpbRemovalDelayLengthMinus1;
UINT32 u4AuCpbRemovalDelayLengthMinus1;
UINT32 u4DpbOutputDelayLengthMinus1;
H265_SUB_HRD_Data rSubLayerHRD[MAX_TLAYER];
} H265_HRD_Data;
typedef struct _H265_VUI_Data_
{
BOOL bAspectRatioInfoPresentFlag;
INT32 i4AspectRatioIdc;
INT32 i4SarWidth;
INT32 i4SarHeight;
BOOL bOverscanInfoPresentFlag;
BOOL bOverscanAppropriateFlag;
BOOL bVideoSignalTypePresentFlag;
INT32 i4VideoFormat;
BOOL bVideoFullRangeFlag;
BOOL bColourDescriptionPresentFlag;
INT32 i4ColourPrimaries;
INT32 i4TransferCharacteristics;
INT32 i4MatrixCoefficients;
BOOL bChromaLocInfoPresentFlag;
INT32 i4ChromaSampleLocTypeTopField;
INT32 i4ChromaSampleLocTypeBottomField;
BOOL bNeutralChromaIndicationFlag;
BOOL bFieldSeqFlag;
//DefaultDisplayWindow
BOOL bDefaultDisplayWindowEnabledFlag;
INT32 i4DefaultDisplayWinLeftOffset;
INT32 i4DefaultDisplayWinRightOffset;
INT32 i4DefaultDisplayWinTopOffset;
INT32 i4DefaultDisplayWinBottomOffset;
BOOL bFrameFieldInfoPresentFlag;
BOOL bHrdParametersPresentFlag;
H265_HRD_Data rHdrParameters;
BOOL bBitstreamRestrictionFlag;
BOOL bTilesFixedStructureFlag;
BOOL bMotionVectorsOverPicBoundariesFlag;
BOOL bRestrictedRefPicListsFlag;
INT32 i4MinSpatialSegmentationIdc;
INT32 i4MaxBytesPerPicDenom;
INT32 i4MaxBitsPerMinCuDenom;
INT32 i4Log2MaxMvLengthHorizontal;
INT32 i4Log2MaxMvLengthVertical;
//TimingInfo
BOOL bTimingInfoPresentFlag;
UINT32 u4NumUnitsInTick;
UINT32 u4TimeScale;
BOOL bPocProportionalToTimingFlag;
INT32 i4NumTicksPocDiffOneMinus1;
} H265_VUI_Data;
#define MAXnum_ref_frames_in_pic_order_cnt_cycle 256
typedef struct _H265_SPS_Data_
{
BOOL bSPSValid; // indicates the parameter set is valid
UINT32 u4VPSId; // u(4)
UINT32 u4MaxTLayersMinus1; // u(3)
BOOL bTemporalIdNestingFlag; // u(1)
H265_PTL_Data rSPS_PTL; // ProfileTierLevel
UINT32 u4SeqParameterSetId; // ue(v)
UINT32 u4ChromaFormatIdc; // ue(v)
BOOL bSeparateColourPlaneFlag;
UINT32 u4PicWidthInLumaSamples; // ue(v)
UINT32 u4PicHeightInLumaSamples; // ue(v)
BOOL bConformanceWindowFlag; // u(1)
UINT32 u4ConfWinLeftOffset; // ue(v)
UINT32 u4ConfWinRightOffset; // ue(v)
UINT32 u4ConfWinTopOffset; // ue(v)
UINT32 u4ConfWinBottomOffset; // ue(v)
UINT32 u4SubWidthC;
UINT32 u4SubHeightC;
UINT32 u4FrameCropLeftOffset;
UINT32 u4FrameCropRightOffset;
UINT32 u4FrameCropTopOffset;
UINT32 u4FrameCropBottomOffset;
UINT32 u4BitDepthLumaMinus8; // ue(v)
UINT32 u4BitDepthChromaMinus8; // ue(v)
UINT32 u4QpBDOffsetY;
UINT32 u4QpBDOffsetC; // ue(v)
UINT32 u4Log2MaxPicOrderCntLsbMinus4; // ue(v)
//[notice] spec conflict u4MaxDecPicBufferingMinux1? u4MaxLatencyIncreasePlus1?
UINT32 u4MaxDecPicBuffering[8]; // ue(v)
UINT32 u4NumReorderPics[8]; // ue(v)
UINT32 u4MaxLatencyIncrease[8]; // ue(v)
UINT32 u4Log2MinCodingBlockSizeMinus3; // ue(v)
UINT32 u4Log2DiffMaxMinCodingBlockSize; // ue(v)
UINT32 u4MaxCUWidth;
UINT32 u4MaxCUHeight;
UINT32 u4Log2MinTransformBlockSizeMinus2; // ue(v)
UINT32 u4Log2DiffMaxMinTtransformBlockSize; // ue(v)
UINT32 u4QuadtreeTUMaxDepthInter; // ue(v)
UINT32 u4QuadtreeTUMaxDepthIntra; // ue(v)
UINT32 u4MaxTrSize;
UINT32 u4MaxCUDepth;
BOOL bScalingListFlag; // u(1)
BOOL bScalingListPresentFlag; // u(1)
BOOL bSL_Init;
H265_SL_Data rSPS_ScalingList; //ScalingList
BOOL bUseAMP; // u(1)
BOOL bUseSAO; // u(1)
BOOL bUsePCM; // u(1)
UINT32 u4PCMBitDepthLumaMinus1; // u(4)
UINT32 u4PCMBitDepthChromaMinus1; // u(4)
UINT32 u4PCMLog2LumaMinSizeMinus3; // ue(v)
UINT32 u4PCMLog2LumaMaxSize; // ue(v)
BOOL bPCMFilterDisableFlag; // u(1)
UINT32 u4NumShortTermRefPicSets; // ue(v)
pH265_RPS_Data pShortTermRefPicSets[64]; //RPS pointer array
BOOL bLongTermRefsPresent; // u(1)
UINT32 u4NumLongTermRefPicSPS; // ue(v)
UINT32 u4LtRefPicPocLsbSps[33]; // u(BitsForPOC)
BOOL bUsedByCurrPicLtSPSFlag[33]; // u(1)
UINT32 u4NumRefFrames;
BOOL bTMVPFlagsPresent; // u(1)
BOOL bUseStrongIntraSmoothing; // u(1)
BOOL bVuiParametersPresentFlag; // u(1)
H265_VUI_Data rVUI; // vui_seq_parameters_t
BOOL bSPSExtensionFlag; // u(1)
// read sps_extension_data_flag
} H265_SPS_Data, *pH265_SPS_Data;
#define MAX_TILES_WITTH_HEIGHT 64
typedef struct _H265_PPS_Data_
{
BOOL bPPSValid; // indicates the parameter set is valid
UINT32 u4PicParameterSetId; // ue(v)
UINT32 u4SeqParameterSetId; // ue(v)
BOOL bDependentSliceSegmentsEnabledFlag; // u(1)
BOOL bOutputFlagPresentFlag; // u(1)
UINT32 u4NumExtraSliceHeaderBits; // u(3)
BOOL bSignHideFlag; // u(1)
BOOL bCabacInitPresentFlag; // u(1)
UINT32 u4NumRefIdxL0DefaultActiveMinus1; // ue(v)
UINT32 u4NumRefIdxL1DefaultActiveMinus1; // ue(v)
INT32 i4PicInitQPMinus26; //se(v)
BOOL bConstrainedIntraPredFlag; // u(1)
BOOL bTransformSkipEnabledFlag; // u(1)
BOOL bCuQPDeltaEnabledFlag; // u(1)
UINT32 u4DiffCuQPDeltaDepth; // ue(v)
INT32 i4PPSCbQPOffset; //se(v)
INT32 i4PPSCrQPOffset; //se(v)
BOOL bPPSSliceChromaQpFlag; // u(1)
BOOL bWPPredFlag; // u(1)
BOOL bWPBiPredFlag; // u(1)
BOOL bTransquantBypassEnableFlag; // u(1)
BOOL bTilesEnabledFlag; // u(1)
BOOL bEntropyCodingSyncEnabledFlag; // u(1)
// if bTilesEnabledFlag
UINT32 u4NumColumnsMinus1; // ue(v)
UINT32 u4NumRowsMinus1; // ue(v)
BOOL bUniformSpacingFlag; // u(1)
UINT32 u4ColumnWidthMinus1[MAX_TILES_WITTH_HEIGHT]; // ue(v)
UINT32 u4RowHeightMinus1[MAX_TILES_WITTH_HEIGHT]; // ue(v)
BOOL bLoopFilterAcrossTilesEnabledFlag; // u(1)
BOOL bLoopFilterAcrossSlicesEnabledFlag; // u(1)
BOOL bDeblockingFilterControlPresentFlag; // u(1)
BOOL bDeblockingFilterOverrideEnabledFlag; // u(1)
BOOL bPicDisableDeblockingFilterFlag; // u(1)
INT32 i4DeblockingFilterBetaOffsetDiv2; //se(v)
INT32 i4DeblockingFilterTcOffsetDiv2; //se(v)
BOOL bPPSScalingListPresentFlag; // u(1)
BOOL bSL_Init;
H265_SL_Data rPPS_ScalingList; //ScalingList
BOOL bListsModificationPresentFlag; // u(1)
UINT32 u4Log2ParallelMergeLevelMinus2; // ue(v)
BOOL bSliceHeaderExtensionPresentFlag; // u(1)
BOOL bPPSExtensionFlag; // u(1)
} H265_PPS_Data, *pH265_PPS_Data;
typedef struct _H265_Slice_Hdr_Data_
{
BOOL bFirstSliceSegmentInPic;
UINT32 u4PPSID;
BOOL bDependentSliceSegmentFlag;
UINT32 u4SliceSegmentAddress;
UINT32 u4SliceType;
UINT32 u4NalType;
BOOL bPicOutputFlag;
UINT32 u4ColourPlaneID;
INT32 i4POCMsb;
INT32 i4POCLsb;
INT32 i4POC;
H265_RPS_Data rLocalRPS;
pH265_RPS_Data pShortTermRefPicSets;
UINT32 u4NumOfLongTermSPS;
UINT32 u4NumOfLongTermPics;
BOOL bNumRefIdxActiveOverrideFlag;
BOOL bTMVPFlagsPresent;
BOOL bSaoEnabledFlag;
BOOL bSaoEnabledFlagChroma;
INT32 i4NumRefIdx[3]; // for multiple reference of current slice
BOOL bRefPicListModificationFlagL0;
BOOL bMvdL1ZeroFlag;
BOOL bCabacInitFlag;
BOOL bColFromL0Flag;
UINT32 u4ColRefIdx;
UINT32 u4FiveMinusMaxNumMergeCand;
INT32 i4SliceQp;
INT32 i4SliceQpDeltaCb;
INT32 i4SliceQpDeltaCr;
BOOL bDeblockingFilterOverrideFlag;
BOOL bDeblockingFilterDisableFlag;
INT32 i4DeblockingFilterBetaOffsetDiv2;
INT32 i4DeblockingFilterTcOffsetDiv2;
BOOL bLoopFilterAcrossSlicesEnabledFlag;
UINT32 u4SliceHeaderExtensionLength;
UINT32 u4NumEntryPointOffsets;
UINT32 u4OffsetLenMinus1;
BOOL bNoRaslOutputFlag;
} H265_Slice_Hdr_Data, *pH265_Slice_Hdr_Data;
typedef struct _H265_SEI_Data_
{
} H265_SEI_Data;
typedef struct _VDEC_INFO_H265_TILE_INFO_T
{
UINT32 u4TileWidth;
UINT32 u4TileHeight;
UINT32 u4RightEdgePosInCU;
UINT32 u4BottomEdgePosInCU;
UINT32 u4FirstCUAddr;
} VDEC_INFO_H265_TILE_INFO_T;
#define TILE_MAX_NUM 256
typedef struct _VDEC_INFO_H265_PIC_INFO_T_
{
INT32 bLowDelayFlag;
INT32 i4PocDiffList0[16];
INT32 i4PocDiffList1[16];
INT32 i4LongTermList0[16];
INT32 i4LongTermList1[16];
INT32 i4BuffIdList0[16];
INT32 i4BuffIdList1[16];
INT32 i4RefListNum;
INT32 i4List0DecOrderNo[16];
INT32 i4List1DecOrderNo[16];
INT32 i4DpbLTBuffCnt;
INT32 i4DpbLTBuffId[16];
//RPS info
INT32 i4StrNumDeltaPocs;
INT32 i4MaxStrNumNegPosPics;
INT32 i4StrNumNegPosPics;
INT32 i4NumLongTerm;
INT32 i4NumLongTermSps;
UINT32 u4PicWidthInCU;
UINT32 u4PicHeightInCU;
VDEC_INFO_H265_TILE_INFO_T rTileInfo[TILE_MAX_NUM];
UINT32 u4SliceCnt;
UINT32 u4IqSramAddrAccCnt;
} VDEC_INFO_H265_PIC_INFO_T;
typedef struct _VDEC_INFO_H265_LAST_INFO_T_
{
BOOL fgLastMmco5;
UCHAR ucLastNalUnitType;
UCHAR ucLastPicStruct;
UCHAR ucLastSPSId;
UCHAR ucLastSPSLevel;
INT32 i4LastPOC;
INT32 i4LastRefPOC;
INT32 i4LastRefPOCMsb;
INT32 i4LastRefPOCLsb;
INT32 i4LastFrameNumOffset;
UINT32 u4LastFrameNum;
UINT32 u4LastPicW;
UINT32 u4LastPicH;
} VDEC_INFO_H265_LAST_INFO_T;
typedef enum
{
H265_DPB_STATUS_EMPTY = 0, // Free
H265_DPB_STATUS_READY, // After Get
H265_DPB_STATUS_DECODING, // After Lock
H265_DPB_STATUS_DECODED, // After UnLock
H265_DPB_STATUS_OUTPUTTED, // After Output
H265_DPB_STATUS_FLD_DECODED, // After 1fld UnLock
H265_DPB_STATUS_DEC_REF, // LOCK for decoded but ref needed
H265_DPB_STATUS_FLD_DEC_REF, // LOCK for decoded but ref needed
H265_DPB_STATUS_OUT_REF, // LOCK for outputted but ref needed
#ifdef DRV_VDEC_VDP_RACING
H265_DPB_STATUS_OUT_DECODING, // After Lock
H265_DPB_STATUS_OUT_FLD_DEC,
#endif
} H265_DPB_COND_T;
typedef struct _VDEC_INFO_H265_FBUF_INFO_T_
{
H265_DPB_COND_T eH265DpbStatus;
UCHAR ucFBufStatus;
UCHAR ucFBufRefType;
INT32 i4POC;
UINT32 u4PicCnt;
UINT32 u4POCBits;
BOOL bLtMsbPresentFlag;
BOOL bFirstSliceReferenced;
UINT32 u4YStartAddr;
UINT32 u4CAddrOffset;
UINT32 u4MvStartAddr;
// for UFO Mode
UINT32 u4YLenStartAddr;
UINT32 u4CLenStartAddr;
UINT32 u4UFOLenYsize;
UINT32 u4UFOLenCsize;
UINT32 u4PicSizeCBS;
UINT32 u4PicSizeYBS;
BOOL bIsUFOEncoded;
#if 1//(CONFIG_DRV_VERIFY_SUPPORT)
UINT32 u4W;
UINT32 u4H;
UINT32 u4DecOrder;
UINT32 u4DramPicSize;
UINT32 u4DramPicArea;
UINT32 u4DramMvSize;
UINT32 u4Addr; // change name to u4YStartAddr TODO:071021
#endif
BOOL bIsCopied;
BOOL bIsMain10;
BOOL bUsedByCurr;
BOOL bUsedAsLongTerm;
} VDEC_INFO_H265_FBUF_INFO_T;
#define H265_MAX_PIC_LIST_NUM 32
typedef struct _VDEC_INFO_H265_REF_PIC_LIST_T_
{
UINT32 u4RefPicCnt;
UINT32 u4FBufIdx[H265_MAX_PIC_LIST_NUM];
} VDEC_INFO_H265_REF_PIC_LIST_T;
typedef struct _VDEC_INFO_H265_BS_INIT_PRM_T_
{
UINT32 u4VLDRdPtr;
UINT32 u4VLDWrPtr;
UINT32 u4VFifoSa; ///< Video Fifo memory start address
UINT32 u4VFifoEa; ///< Video Fifo memory end address
UINT32 u4PredSa;
} VDEC_INFO_H265_BS_INIT_PRM_T;
typedef struct _VDEC_INFO_H265_INIT_PRM_T_
{
UINT32 u4FGSeedbase;
UINT32 u4CompModelValue;
UINT32 u4FGDatabase;
} VDEC_INFO_H265_INIT_PRM_T;
typedef struct _VDEC_INFO_H265_DEC_PRM_T_
{
INT32 i4RAPOC;
INT32 i4CRAPOC;
INT32 i4PrePOC;
INT32 i4PrevT0POCLsb;
INT32 i4PrevT0POCMsb;
BOOL fgUserScalingMatrixPresentFlag; // u(1)
BOOL fgUserScalingListPresentFlag[8]; // u(1)
BOOL bFirstSliceInSequence;
BOOL bRefreshPending;
BOOL bPrevRAPisBLA;
UINT32 u4NuhTemporalId;
UCHAR ucMaxFBufNum;
// Decode picture setting
H265_SPS_Data *prSPS;
H265_PPS_Data *prPPS;
H265_Slice_Hdr_Data *prSliceHdr;
H265_SEI_Data *prSEI;
VDEC_INFO_H265_LAST_INFO_T rLastInfo;
VDEC_INFO_H265_FBUF_INFO_T *prCurrFBufInfo;
// For UFO mode verification
BOOL bIsUFOMode;
UINT32 u4RefUFOEncoded;
// For Error concealment
UCHAR ucPreFBIndex;
BOOL bNoDecode;
BOOL fgIsReduceMVBuffer;
UINT32 u4ReadPtrOffset;
UINT32 u4PreReadPtr;
} VDEC_INFO_H265_DEC_PRM_T;
#endif //#ifndef _HAL_VDEC_H265_IF_H_
|