aboutsummaryrefslogtreecommitdiff
path: root/drivers/misc/mediatek/vdec/include/vdec_drv_avs_info.h
blob: e24a405beb443cb07f6b43796fb3297b1d63e420 (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
#ifndef _VDEC_DRV_AVS_INFO_H_
#define _VDEC_DRV_AVS_INFO_H_

//#include "x_os.h"
//#include "x_bim.h"
//#include "x_assert.h"
//#include "x_timer.h"

#include "drv_common.h"

#include "vdec_common_if.h"
#include "vdec_usage.h"

#include "vdec_info_avs.h"
#include "vdec_info_common.h"

#include "../hal/vdec_hal_if_avs.h"


// Data unit type
#define AVS_SEQ_HDR_SC          0x1B0
#define AVS_SEQ_END_SC          0x1B1
#define AVS_I_PICTURE_SC        0x1B3
#define AVS_PB_PICTURE_SC     0x1B6
#define AVS_USER_DATA_SC      0x1B2
#define AVS_EXTENSION_SC       0x1B5
#define AVS_VIDEO_EDIT_SC      0x1B7
#define AVS_SLICE_SC_MIN        0x100
#define AVS_SLICE_SC_MAX       0x1AF


typedef struct _AVS_DRV_INFO_T
{
    UCHAR ucAVSDpbOutputFbId;
    UCHAR ucPredFbId;
    UINT32 u4PredSa;
    UINT32 u4CurrStartCodeAddr;
    UINT32 u4BitCount;
    UINT32 u4DecErrInfo;
    INT32 i4LatestIPOC;
    INT64 i8BasePTS;
    INT64 i8LatestRealPTS;
    INT32 i4PreFrmPOC;
    INT32 i4LatestRealPOC;
    UINT32 u4LatestSPSId;
} AVS_DRV_INFO_T;


extern void vAVSInitProc(UCHAR ucEsId);
extern INT32 i4AVSVParseProc(UCHAR ucEsId, UINT32 u4VParseType);
extern BOOL fgAVSVParseChkProc(UCHAR ucEsId);
extern INT32 i4AVSUpdInfoToFbg(UCHAR ucEsId);
extern void vAVSStartToDecProc(UCHAR ucEsId);
extern void vAVSISR(UCHAR ucEsId);
extern BOOL fgIsAVSDecEnd(UCHAR ucEsId);
extern BOOL fgIsAVSDecErr(UCHAR ucEsId);
extern BOOL fgAVSResultChk(UCHAR ucEsId);
extern BOOL fgIsAVSInsToDispQ(UCHAR ucEsId);
extern BOOL fgIsAVSGetFrmToDispQ(UCHAR ucEsId);
extern void vAVSEndProc(UCHAR ucEsId);
extern BOOL fgAVSFlushDPB(UCHAR ucEsId, BOOL fgWithOutput);
extern void vAVSReleaseProc(UCHAR ucEsId);



// vdec_drv_AVS_parse.c
extern void vSeq_Par_Set_Rbsp(UINT32 u4BSID, UINT32 u4VDecID, AVS_DRV_INFO_T *prAVSDrvDecInfo);
extern void vPic_Par_Set_Rbsp(UINT32 u4BSID, UINT32 u4VDecID, AVS_DRV_INFO_T *prAVSDrvDecInfo);
extern void vSEI_Rbsp(UINT32 u4BSID, UINT32 u4VDecID, AVS_DRV_INFO_T  *prAVSDrvDecInfo);
extern INT32 i4SlimParseSliceHeader(UINT32 u4VDecID, AVS_DRV_INFO_T  *prAVSDrvDecInfo);
extern INT32 i4ParseSliceHeader(UINT32 u4VDecID, AVS_DRV_INFO_T  *prAVSDrvDecInfo);


#endif