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
|
#ifndef vl_types_h
#define vl_types_h
#if 1 /*#ifdef X11*/
#include <X11/Xlib.h>
typedef Display* vlNativeDisplay;
typedef Drawable vlNativeDrawable;
#endif
struct vlDisplay;
struct vlScreen;
struct vlContext;
struct vlSurface;
enum vlResourceStatus
{
vlResourceStatusFree,
vlResourceStatusRendering,
vlResourceStatusDisplaying
};
enum vlProfile
{
vlProfileMpeg2Simple,
vlProfileMpeg2Main,
vlProfileCount
};
enum vlEntryPoint
{
vlEntryPointIDCT,
vlEntryPointMC,
vlEntryPointCSC,
vlEntryPointCount
};
enum vlFormat
{
vlFormatYCbCr420,
vlFormatYCbCr422,
vlFormatYCbCr444
};
enum vlPictureType
{
vlPictureTypeTopField,
vlPictureTypeBottomField,
vlPictureTypeFrame
};
enum vlMotionType
{
vlMotionTypeField,
vlMotionTypeFrame,
vlMotionTypeDualPrime,
vlMotionType16x8
};
enum vlFieldOrder
{
vlFieldOrderFirst,
vlFieldOrderSecond
};
enum vlDCTType
{
vlDCTTypeFrameCoded,
vlDCTTypeFieldCoded
};
struct vlVertex2f
{
float x, y;
};
struct vlVertex4f
{
float x, y, z, w;
};
enum vlMacroBlockType
{
vlMacroBlockTypeIntra,
vlMacroBlockTypeFwdPredicted,
vlMacroBlockTypeBkwdPredicted,
vlMacroBlockTypeBiPredicted,
vlNumMacroBlockTypes
};
struct vlMpeg2MacroBlock
{
unsigned int mbx, mby;
enum vlMacroBlockType mb_type;
enum vlMotionType mo_type;
enum vlDCTType dct_type;
int PMV[2][2][2];
unsigned int cbp;
short *blocks;
};
struct vlMpeg2MacroBlockBatch
{
struct vlSurface *past_surface;
struct vlSurface *future_surface;
enum vlPictureType picture_type;
enum vlFieldOrder field_order;
unsigned int num_macroblocks;
struct vlMpeg2MacroBlock *macroblocks;
};
#endif
|