perfstruct.h 6.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194
  1. //------------------------------------------------------------------------------
  2. // File: PerfStruct.h
  3. //
  4. // Desc: Structures for DirectShow performance logging.
  5. //
  6. // Copyright (c) 2000-2001 Microsoft Corporation. All rights reserved.
  7. //------------------------------------------------------------------------------
  8. #ifndef _PERFSTRUCT_H_
  9. #define _PERFSTRUCT_H_
  10. #include <wmistr.h>
  11. #include <evntrace.h>
  12. // {28CF047A-2437-4b24-B653-B9446A419A69}
  13. DEFINE_GUID(GUID_DSHOW_CTL,
  14. 0x28cf047a, 0x2437, 0x4b24, 0xb6, 0x53, 0xb9, 0x44, 0x6a, 0x41, 0x9a, 0x69);
  15. // {D0DA7AD6-AE80-4de5-AAFC-C126711E7593}
  16. DEFINE_GUID(GUID_VIDEOREND,
  17. 0xd0da7ad6, 0xae80, 0x4de5, 0xaa, 0xfc, 0xc1, 0x26, 0x71, 0x1e, 0x75, 0x93);
  18. // {DC70AC3E-93E5-48db-88AB-E42064EC276A}
  19. DEFINE_GUID(GUID_DSOUNDGLITCH,
  20. 0xdc70ac3e, 0x93e5, 0x48db, 0x88, 0xab, 0xe4, 0x20, 0x64, 0xec, 0x27, 0x6a);
  21. // {3d7e7d93-2fc8-4a07-a719-e0922ff2899}
  22. DEFINE_GUID(GUID_STREAMTRACE,
  23. 0x3d7e7d93, 0x2fc8, 0x4a07, 0xa7, 0x19, 0xe0, 0x92, 0x2f, 0xf2, 0x89, 0x9e);
  24. // AZFIX: the following GUIDs aren't useful right now.
  25. // {3C33F7F5-EE54-493c-BA25-1656539C05AC}
  26. DEFINE_GUID(GUID_GETTIME,
  27. 0x3c33f7f5, 0xee54, 0x493c, 0xba, 0x25, 0x16, 0x56, 0x53, 0x9c, 0x5, 0xac);
  28. // {CC44B44D-8169-4952-9E4A-A4E13295E492}
  29. DEFINE_GUID(GUID_AUDIOREND,
  30. 0xcc44b44d, 0x8169, 0x4952, 0x9e, 0x4a, 0xa4, 0xe1, 0x32, 0x95, 0xe4, 0x92);
  31. // {775D19BF-4D8B-4de6-8DC9-66BAC7B310A2}
  32. DEFINE_GUID(GUID_FRAMEDROP,
  33. 0x775d19bf, 0x4d8b, 0x4de6, 0x8d, 0xc9, 0x66, 0xba, 0xc7, 0xb3, 0x10, 0xa2);
  34. // {56D29065-EFBE-42dc-8C29-E325DC9C27D5}
  35. DEFINE_GUID(GUID_AUDIOBREAK,
  36. 0x56d29065, 0xefbe, 0x42dc, 0x8c, 0x29, 0xe3, 0x25, 0xdc, 0x9c, 0x27, 0xd5);
  37. // {E1E6EA87-95A8-497e-BFBA-0295AEBCC707}
  38. DEFINE_GUID(GUID_AUDIORECV,
  39. 0xe1e6ea87, 0x95a8, 0x497e, 0xbf, 0xba, 0x2, 0x95, 0xae, 0xbc, 0xc7, 0x7);
  40. // {10F7768A-B1E7-4242-AD90-A2D44683D9F0}
  41. DEFINE_GUID(GUID_AUDIOSLAVE,
  42. 0x10f7768a, 0xb1e7, 0x4242, 0xad, 0x90, 0xa2, 0xd4, 0x46, 0x83, 0xd9, 0xf0);
  43. // {8983803D-691A-49bc-8FF6-962A39C0198F}
  44. DEFINE_GUID(GUID_AUDIOADDBREAK,
  45. 0x8983803d, 0x691a, 0x49bc, 0x8f, 0xf6, 0x96, 0x2a, 0x39, 0xc0, 0x19, 0x8f);
  46. #define GLITCHTYPE_DSOUNDFIRSTGOOD 0
  47. #define GLITCHTYPE_DSOUNDFIRSTBAD 1
  48. typedef struct PERFINFO_DSHOW_AUDIOGLITCH {
  49. ULONGLONG cycleCounter;
  50. DWORD glitchType;
  51. LONGLONG sampleTime;
  52. LONGLONG previousTime;
  53. ULONG_PTR instanceId;
  54. } PERFINFO_DSHOW_AUDIOGLITCH, *PPERFINFO_DSHOW_AUDIOGLITCH;
  55. typedef struct PERFINFO_WMI_AUDIOGLITCH {
  56. EVENT_TRACE_HEADER header;
  57. PERFINFO_DSHOW_AUDIOGLITCH data;
  58. } PERFINFO_WMI_AUDIO_GLITCH, *PPERFINFO_WMI_AUDIOGLITCH;
  59. typedef struct PERFINFO_DSHOW_GETTIME {
  60. ULONGLONG cycleCounter;
  61. ULONGLONG dshowClock;
  62. } PERFINFO_DSHOW_GETTIME, *PPERFINFO_DSHOW_GETTIME;
  63. typedef struct PERFINFO_WMI_GETTIME {
  64. EVENT_TRACE_HEADER header;
  65. PERFINFO_DSHOW_GETTIME data;
  66. } PERFINFO_WMI_GETTIME, *PPERFINFO_WMI_GETTIME;
  67. typedef struct PERFINFO_DSHOW_AVREND {
  68. ULONGLONG cycleCounter;
  69. ULONGLONG dshowClock;
  70. ULONGLONG sampleTime;
  71. } PERFINFO_DSHOW_AVREND, *PPERFINFO_DSHOW_AVREND;
  72. typedef struct PERFINFO_WMI_AVREND {
  73. EVENT_TRACE_HEADER header;
  74. PERFINFO_DSHOW_AVREND data;
  75. } PERFINFO_WMI_AVREND, *PPERFINFO_WMI_AVREND;
  76. typedef struct PERFINFO_DSHOW_AUDIOBREAK {
  77. ULONGLONG cycleCounter;
  78. ULONGLONG dshowClock;
  79. ULONGLONG sampleTime;
  80. ULONGLONG sampleDuration;
  81. } PERFINFO_DSHOW_AUDIOBREAK, *PPERFINFO_DSHOW_AUDIOBREAK;
  82. typedef struct PERFINFO_WMI_AUDIOBREAK {
  83. EVENT_TRACE_HEADER header;
  84. PERFINFO_DSHOW_AUDIOBREAK data;
  85. } PERFINFO_WMI_AUDIOBREAK, *PPERFINFO_WMI_AUDIOBREAK;
  86. typedef struct PERFINFO_DSHOW_FRAMEDROP {
  87. ULONGLONG cycleCounter;
  88. ULONGLONG dshowClock;
  89. ULONGLONG frameTime;
  90. } PERFINFO_DSHOW_FRAMEDROP, *PPERFINFO_DSHOW_FRAMEDROP;
  91. typedef struct PERFINFO_WMI_FRAMEDROP {
  92. EVENT_TRACE_HEADER header;
  93. PERFINFO_DSHOW_FRAMEDROP data;
  94. } PERFINFO_WMI_FRAMEDROP, *PPERFINFO_WMI_FRAMEDROP;
  95. #define PERFINFO_STREAMTRACE_MPEG2DEMUX_PTS_TRANSLATION 1
  96. #define PERFINFO_STREAMTRACE_MPEG2DEMUX_SAMPLE_RECEIVED 2
  97. #define PERFINFO_STREAMTRACE_VMR_BEGIN_ADVISE 3
  98. #define PERFINFO_STREAMTRACE_VMR_END_ADVISE 4
  99. #define PERFINFO_STREAMTRACE_VMR_RECEIVE 5
  100. #define PERFINFO_STREAMTRACE_VMR_BEGIN_DEINTERLACE 6
  101. #define PERFINFO_STREAMTRACE_VMR_END_DEINTERLACE 7
  102. #define PERFINFO_STREAMTRACE_VMR_BEGIN_DECODE 8
  103. #define PERFINFO_STREAMTRACE_VMR_END_DECODE 9
  104. #define PERFINFO_STREAMTRACE_VMR_DROPPED_FRAME 10
  105. #define PERFINFO_STREAMTRACE_ENCDEC_DTFILTERINPUT 11
  106. #define PERFINFO_STREAMTRACE_ENCDEC_DTFILTEROUTPUT 12
  107. #define PERFINFO_STREAMTRACE_ENCDEC_ETFILTERINPUT 13
  108. #define PERFINFO_STREAMTRACE_ENCDEC_ETFILTEROUTPUT 14
  109. #define PERFINFO_STREAMTRACE_ENCDEC_XDSCODECINPUT 15
  110. #define PERFINFO_STREAMTRACE_SBE_DVRANALYSISINPUT_RECEIVE 16
  111. #define PERFINFO_STREAMTRACE_SBE_DVRANALYSISINPUT_DELIVER 17
  112. #define PERFINFO_STREAMTRACE_SBE_DVRINPUTPIN_RECEIVE 18
  113. #define PERFINFO_STREAMTRACE_SBE_DVROUTPUTPIN_RECEIVE 19
  114. #define PERFINFO_STREAMTRACE_VMR_RENDER_TIME 20
  115. typedef struct _PERFINFO_DSHOW_STREAMTRACE {
  116. ULONG id;
  117. ULONG reserved;
  118. ULONGLONG dshowClock;
  119. ULONGLONG data[ 4 ];
  120. } PERFINFO_DSHOW_STREAMTRACE, *PPERFINFO_DSHOW_STREAMTRACE;
  121. typedef struct _PERFINFO_WMI_STREAMTRACE {
  122. EVENT_TRACE_HEADER header;
  123. PERFINFO_DSHOW_STREAMTRACE data;
  124. } PERFINFO_WMI_STREAMTRACE, *PPERFINFO_WMI_STREAMTRACE;
  125. typedef struct PERFINFO_DSHOW_AUDIORECV {
  126. LONGLONG streamTime ;
  127. LONGLONG sampleStart ;
  128. LONGLONG sampleStop ;
  129. LONGLONG hwduration ;
  130. BOOL discontinuity ;
  131. } PERFINFO_DSHOW_AUDIORECV, *PPERFINFO_DSHOW_AUDIORECV;
  132. typedef struct PERFINFO_WMI_AUDIORECV {
  133. EVENT_TRACE_HEADER header;
  134. PERFINFO_DSHOW_AUDIORECV data;
  135. } PERFINFO_WMI_AUDIORECV, *PPERFINFO_WMI_AUDIORECV;
  136. typedef struct PERFINFO_DSHOW_AUDIOSLAVE {
  137. LONGLONG masterClock ;
  138. LONGLONG slaveClock ;
  139. LONGLONG errorAccum ;
  140. LONGLONG lastHighErrorSeen ;
  141. LONGLONG lastLowErrorSeen ;
  142. } PERFINFO_DSHOW_AUDIOSLAVE, *PPERFINFO_DSHOW_AUDIOSLAVE;
  143. typedef struct PERFINFO_WMI_AUDIOSLAVE {
  144. EVENT_TRACE_HEADER header;
  145. PERFINFO_DSHOW_AUDIOSLAVE data;
  146. } PERFINFO_WMI_AUDIOSLAVE, *PPERFINFO_WMI_AUDIOSLAVE;
  147. typedef struct PERFINFO_DSHOW_AUDIOADDBREAK {
  148. DWORD iterNextWrite ;
  149. DWORD offsetNextWrite ;
  150. DWORD iterWrite ;
  151. DWORD offsetWrite ;
  152. } PERFINFO_DSHOW_AUDIOADDBREAK, *PPERFINFO_DSHOW_AUDIOADDBREAK;
  153. typedef struct PERFINFO_WMI_AUDIOADDBREAK {
  154. EVENT_TRACE_HEADER header;
  155. PERFINFO_DSHOW_AUDIOADDBREAK data;
  156. } PERFINFO_WMI_AUDIOADDBREAK, *PPERFINFO_WMI_AUDIOADDBREAK;
  157. #endif // _PREFSTRUCT_H_