forked from krkrz/baseclasses
-
Notifications
You must be signed in to change notification settings - Fork 1
/
perfstruct.h
194 lines (157 loc) · 6.77 KB
/
perfstruct.h
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
//------------------------------------------------------------------------------
// File: PerfStruct.h
//
// Desc: Structures for DirectShow performance logging.
//
// Copyright (c) 2000-2001 Microsoft Corporation. All rights reserved.
//------------------------------------------------------------------------------
#ifndef _PERFSTRUCT_H_
#define _PERFSTRUCT_H_
#include <wmistr.h>
#include <evntrace.h>
// {28CF047A-2437-4b24-B653-B9446A419A69}
DEFINE_GUID(GUID_DSHOW_CTL,
0x28cf047a, 0x2437, 0x4b24, 0xb6, 0x53, 0xb9, 0x44, 0x6a, 0x41, 0x9a, 0x69);
// {D0DA7AD6-AE80-4de5-AAFC-C126711E7593}
DEFINE_GUID(GUID_VIDEOREND,
0xd0da7ad6, 0xae80, 0x4de5, 0xaa, 0xfc, 0xc1, 0x26, 0x71, 0x1e, 0x75, 0x93);
// {DC70AC3E-93E5-48db-88AB-E42064EC276A}
DEFINE_GUID(GUID_DSOUNDGLITCH,
0xdc70ac3e, 0x93e5, 0x48db, 0x88, 0xab, 0xe4, 0x20, 0x64, 0xec, 0x27, 0x6a);
// {3d7e7d93-2fc8-4a07-a719-e0922ff2899}
DEFINE_GUID(GUID_STREAMTRACE,
0x3d7e7d93, 0x2fc8, 0x4a07, 0xa7, 0x19, 0xe0, 0x92, 0x2f, 0xf2, 0x89, 0x9e);
// AZFIX: the following GUIDs aren't useful right now.
// {3C33F7F5-EE54-493c-BA25-1656539C05AC}
DEFINE_GUID(GUID_GETTIME,
0x3c33f7f5, 0xee54, 0x493c, 0xba, 0x25, 0x16, 0x56, 0x53, 0x9c, 0x5, 0xac);
// {CC44B44D-8169-4952-9E4A-A4E13295E492}
DEFINE_GUID(GUID_AUDIOREND,
0xcc44b44d, 0x8169, 0x4952, 0x9e, 0x4a, 0xa4, 0xe1, 0x32, 0x95, 0xe4, 0x92);
// {775D19BF-4D8B-4de6-8DC9-66BAC7B310A2}
DEFINE_GUID(GUID_FRAMEDROP,
0x775d19bf, 0x4d8b, 0x4de6, 0x8d, 0xc9, 0x66, 0xba, 0xc7, 0xb3, 0x10, 0xa2);
// {56D29065-EFBE-42dc-8C29-E325DC9C27D5}
DEFINE_GUID(GUID_AUDIOBREAK,
0x56d29065, 0xefbe, 0x42dc, 0x8c, 0x29, 0xe3, 0x25, 0xdc, 0x9c, 0x27, 0xd5);
// {E1E6EA87-95A8-497e-BFBA-0295AEBCC707}
DEFINE_GUID(GUID_AUDIORECV,
0xe1e6ea87, 0x95a8, 0x497e, 0xbf, 0xba, 0x2, 0x95, 0xae, 0xbc, 0xc7, 0x7);
// {10F7768A-B1E7-4242-AD90-A2D44683D9F0}
DEFINE_GUID(GUID_AUDIOSLAVE,
0x10f7768a, 0xb1e7, 0x4242, 0xad, 0x90, 0xa2, 0xd4, 0x46, 0x83, 0xd9, 0xf0);
// {8983803D-691A-49bc-8FF6-962A39C0198F}
DEFINE_GUID(GUID_AUDIOADDBREAK,
0x8983803d, 0x691a, 0x49bc, 0x8f, 0xf6, 0x96, 0x2a, 0x39, 0xc0, 0x19, 0x8f);
#define GLITCHTYPE_DSOUNDFIRSTGOOD 0
#define GLITCHTYPE_DSOUNDFIRSTBAD 1
typedef struct PERFINFO_DSHOW_AUDIOGLITCH {
ULONGLONG cycleCounter;
DWORD glitchType;
LONGLONG sampleTime;
LONGLONG previousTime;
ULONG_PTR instanceId;
} PERFINFO_DSHOW_AUDIOGLITCH, *PPERFINFO_DSHOW_AUDIOGLITCH;
typedef struct PERFINFO_WMI_AUDIOGLITCH {
EVENT_TRACE_HEADER header;
PERFINFO_DSHOW_AUDIOGLITCH data;
} PERFINFO_WMI_AUDIO_GLITCH, *PPERFINFO_WMI_AUDIOGLITCH;
typedef struct PERFINFO_DSHOW_GETTIME {
ULONGLONG cycleCounter;
ULONGLONG dshowClock;
} PERFINFO_DSHOW_GETTIME, *PPERFINFO_DSHOW_GETTIME;
typedef struct PERFINFO_WMI_GETTIME {
EVENT_TRACE_HEADER header;
PERFINFO_DSHOW_GETTIME data;
} PERFINFO_WMI_GETTIME, *PPERFINFO_WMI_GETTIME;
typedef struct PERFINFO_DSHOW_AVREND {
ULONGLONG cycleCounter;
ULONGLONG dshowClock;
ULONGLONG sampleTime;
} PERFINFO_DSHOW_AVREND, *PPERFINFO_DSHOW_AVREND;
typedef struct PERFINFO_WMI_AVREND {
EVENT_TRACE_HEADER header;
PERFINFO_DSHOW_AVREND data;
} PERFINFO_WMI_AVREND, *PPERFINFO_WMI_AVREND;
typedef struct PERFINFO_DSHOW_AUDIOBREAK {
ULONGLONG cycleCounter;
ULONGLONG dshowClock;
ULONGLONG sampleTime;
ULONGLONG sampleDuration;
} PERFINFO_DSHOW_AUDIOBREAK, *PPERFINFO_DSHOW_AUDIOBREAK;
typedef struct PERFINFO_WMI_AUDIOBREAK {
EVENT_TRACE_HEADER header;
PERFINFO_DSHOW_AUDIOBREAK data;
} PERFINFO_WMI_AUDIOBREAK, *PPERFINFO_WMI_AUDIOBREAK;
typedef struct PERFINFO_DSHOW_FRAMEDROP {
ULONGLONG cycleCounter;
ULONGLONG dshowClock;
ULONGLONG frameTime;
} PERFINFO_DSHOW_FRAMEDROP, *PPERFINFO_DSHOW_FRAMEDROP;
typedef struct PERFINFO_WMI_FRAMEDROP {
EVENT_TRACE_HEADER header;
PERFINFO_DSHOW_FRAMEDROP data;
} PERFINFO_WMI_FRAMEDROP, *PPERFINFO_WMI_FRAMEDROP;
#define PERFINFO_STREAMTRACE_MPEG2DEMUX_PTS_TRANSLATION 1
#define PERFINFO_STREAMTRACE_MPEG2DEMUX_SAMPLE_RECEIVED 2
#define PERFINFO_STREAMTRACE_VMR_BEGIN_ADVISE 3
#define PERFINFO_STREAMTRACE_VMR_END_ADVISE 4
#define PERFINFO_STREAMTRACE_VMR_RECEIVE 5
#define PERFINFO_STREAMTRACE_VMR_BEGIN_DEINTERLACE 6
#define PERFINFO_STREAMTRACE_VMR_END_DEINTERLACE 7
#define PERFINFO_STREAMTRACE_VMR_BEGIN_DECODE 8
#define PERFINFO_STREAMTRACE_VMR_END_DECODE 9
#define PERFINFO_STREAMTRACE_VMR_DROPPED_FRAME 10
#define PERFINFO_STREAMTRACE_ENCDEC_DTFILTERINPUT 11
#define PERFINFO_STREAMTRACE_ENCDEC_DTFILTEROUTPUT 12
#define PERFINFO_STREAMTRACE_ENCDEC_ETFILTERINPUT 13
#define PERFINFO_STREAMTRACE_ENCDEC_ETFILTEROUTPUT 14
#define PERFINFO_STREAMTRACE_ENCDEC_XDSCODECINPUT 15
#define PERFINFO_STREAMTRACE_SBE_DVRANALYSISINPUT_RECEIVE 16
#define PERFINFO_STREAMTRACE_SBE_DVRANALYSISINPUT_DELIVER 17
#define PERFINFO_STREAMTRACE_SBE_DVRINPUTPIN_RECEIVE 18
#define PERFINFO_STREAMTRACE_SBE_DVROUTPUTPIN_RECEIVE 19
#define PERFINFO_STREAMTRACE_VMR_RENDER_TIME 20
typedef struct _PERFINFO_DSHOW_STREAMTRACE {
ULONG id;
ULONG reserved;
ULONGLONG dshowClock;
ULONGLONG data[ 4 ];
} PERFINFO_DSHOW_STREAMTRACE, *PPERFINFO_DSHOW_STREAMTRACE;
typedef struct _PERFINFO_WMI_STREAMTRACE {
EVENT_TRACE_HEADER header;
PERFINFO_DSHOW_STREAMTRACE data;
} PERFINFO_WMI_STREAMTRACE, *PPERFINFO_WMI_STREAMTRACE;
typedef struct PERFINFO_DSHOW_AUDIORECV {
LONGLONG streamTime ;
LONGLONG sampleStart ;
LONGLONG sampleStop ;
LONGLONG hwduration ;
BOOL discontinuity ;
} PERFINFO_DSHOW_AUDIORECV, *PPERFINFO_DSHOW_AUDIORECV;
typedef struct PERFINFO_WMI_AUDIORECV {
EVENT_TRACE_HEADER header;
PERFINFO_DSHOW_AUDIORECV data;
} PERFINFO_WMI_AUDIORECV, *PPERFINFO_WMI_AUDIORECV;
typedef struct PERFINFO_DSHOW_AUDIOSLAVE {
LONGLONG masterClock ;
LONGLONG slaveClock ;
LONGLONG errorAccum ;
LONGLONG lastHighErrorSeen ;
LONGLONG lastLowErrorSeen ;
} PERFINFO_DSHOW_AUDIOSLAVE, *PPERFINFO_DSHOW_AUDIOSLAVE;
typedef struct PERFINFO_WMI_AUDIOSLAVE {
EVENT_TRACE_HEADER header;
PERFINFO_DSHOW_AUDIOSLAVE data;
} PERFINFO_WMI_AUDIOSLAVE, *PPERFINFO_WMI_AUDIOSLAVE;
typedef struct PERFINFO_DSHOW_AUDIOADDBREAK {
DWORD iterNextWrite ;
DWORD offsetNextWrite ;
DWORD iterWrite ;
DWORD offsetWrite ;
} PERFINFO_DSHOW_AUDIOADDBREAK, *PPERFINFO_DSHOW_AUDIOADDBREAK;
typedef struct PERFINFO_WMI_AUDIOADDBREAK {
EVENT_TRACE_HEADER header;
PERFINFO_DSHOW_AUDIOADDBREAK data;
} PERFINFO_WMI_AUDIOADDBREAK, *PPERFINFO_WMI_AUDIOADDBREAK;
#endif // _PREFSTRUCT_H_