summaryrefslogtreecommitdiff
path: root/drivers/mxc/vpu-malone/Malone_Firmware/DecKLib/Incl/mvd_types.h
blob: ccd93d3e1d0f3856ca5b7f0df30fba0f5da01b9e (plain)
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
/***************************************************
  Copyright (c) 2015 Amphion Semiconductor Ltd 
                All rights reserved.               
 ***************************************************
 * The code contained herein is licensed under the GNU General Public
 * License. You may obtain a copy of the GNU General Public License
 * Version 2 or later at the following locations:
 *
 * http://www.opensource.org/licenses/gpl-license.html
 * http://www.gnu.org/copyleft/gpl.html
 ****************************************************

  Author    : MediaIP FW Team
  File name : mvd_types.h
  Function  : Used as a home for generic MVD base decoder
              types

 ***************************************************/

#ifndef _MVD_TYPES_H_
#define _MVD_TYPES_H_

#include "basetype.h"

///////////////////////////////////////////////////////
// tAuxCRCData

typedef struct
{
  u_int32 uDpbCRC2;
  u_int32 uBSCRC;
  u_int32 uCRC0;
  u_int32 uCRC1;
  u_int32 uCRC2;
  u_int32 uCRC3;
  u_int32 uCRC4;
  u_int32 uCRC5;
  u_int32 uCRC6;
  u_int32 uCRC7;
  
} tAuxCRCData, *ptAuxCRCData;

///////////////////////////////////////////////////////
// tAuxCRC2Data

typedef struct
{
  u_int32 uCRC8;
  u_int32 uCRC9;
  u_int32 uCRC10;
  u_int32 uCRC11;
  u_int32 uCRC12;
  u_int32 uCRC13;
  u_int32 uCRC14;
  
} tAuxCRC2Data, *ptAuxCRC2Data;

#define MVD_TRUE       0x1UL
#define MVD_FALSE      0x0UL

typedef float          MvdFloat;           // fVariableName,   *pfPointerName
typedef double         MvdDouble;          // dVariableName,   *pdPointerName

typedef volatile u_int32  MvdHwReg;  // rVariableName,   *prPointerName
typedef volatile u_int32 *MvdHwAddr;

/* ************** */
/*  Debug arrays  */
/* ************** */
typedef struct
{              
  int32 index;
  int32 array[512];
} DBG_ARRAY_512;  

typedef struct
{              
  int32 index;
  int32 array[1024];
} DBG_ARRAY_1024;  

typedef struct
{              
  int32 index;
  int32 array[2048];
} DBG_ARRAY_2048;  

typedef struct
{              
  int32 index;
  int32 array[4096];
} DBG_ARRAY_4096;

///////////////////////////////////////////////////////
// Metadata structs

///////////////////////////////////////////////////////
// TimeStamp Metadata

typedef struct
{              
  u_int32   uPTS;
  u_int32   uDTS;
  u_int32   uPESFlags;
  bool      bValid;

} tMVD_METADATA_TS, *ptMVD_METADATA_TS;

///////////////////////////////////////////////////////
// Pic Struct Metadata

typedef struct
{              
  u_int32 uDummy;
  bool    bValid;
  
} tMVD_METADATA_PIC_STRUCT, *ptMVD_METADATA_PIC_STRUCT;

///////////////////////////////////////////////////////
// UData Metadata

typedef struct
{
  bool     bValid;
  void *   pUDataMemChunk;
  u_int32  uWrPtr;
  
} tMVD_METADATA_UDATA, *ptMVD_METADATA_UDATA;

#endif /* _MVD_TYPES_H_ */

/* End of file */