The PERFINFO_DSHOW_STREAMTRACE structure contains data for a DirectShow trace event of type GUID_STREAMTRACE.


  ULONG     id;
  ULONG     reserved;
  ULONGLONG dshowClock;
  ULONGLONG data[4];



Event identifier. See Remarks.


Reserved. Set to zero.


Stream time for this event, in 100-nanosecond units. This value is optional and can be zero.


Optional event data consisting of four ULONGLONG values. The meaning of this data depends on the event identifier.


The following event identifiers are defined.

Event identifier Description
PERFINFO_STREAMTRACE_MPEG2DEMUX_PTS_TRANSLATIONLogged when the MPEG-2 Demultiplexer filter converts a presentation time stamp (PTS) to stream time.
  • data[0]: Converted start time.
  • data[1]: Converted stop time.
  • data[2]. Stream identifier for the input pin.
  • data[3]: PTS that was converted.
PERFINFO_STREAMTRACE_MPEG2DEMUX_SAMPLE_RECEIVELogged when MPEG-2 Demultiplexer receives a sample.
PERFINFO_STREAMTRACE_VMR_BEGIN_ADVISELogged when the VMR schedules a sample for rendering, immediately before the VMR calls IReferenceClock::AdviseTime.
  • data[0]: Reference time when streaming began, which corresponds to stream time zero.
PERFINFO_STREAMTRACE_VMR_BEGIN_DECODELogged when the VMR begins a decoding operation—that is, when the decoder calls IAMVideoAccelerator::BeginFrame. No event data.
PERFINFO_STREAMTRACE_VMR_BEGIN_DEINTERLACELogged when the VMR begins a deinterlacing or video compositing operation. No event data.
PERFINFO_STREAMTRACE_VMR_DROPPED_FRAMELogged when the VMR drops a frame; for example, if a sample was late.
  • data[0]: Sample start time.
  • data[1]: Sample end time.
PERFINFO_STREAMTRACE_VMR_END_ADVISELogged when the VMR receives an advise notification from the reference clock. No event data.
PERFINFO_STREAMTRACE_VMR_END_DECODELogged when the VMR ends a decoding operation—that is, when the decoder calls IAMVideoAccelerator::EndFrame. No event data.
PERFINFO_STREAMTRACE_VMR_END_DEINTERLACELogged when the VMR completes a deinterlacing or video compositing operation. No event data.
PERFINFO_STREAMTRACE_VMR_RECEIVELogged when the VMR receives a new sample. No event data.
PERFINFO_STREAMTRACE_VMR_RENDER_TIMELogged when the VMR finishes rendering a frame.
  • data[0]: Time that it took to render this frame.
  • data[1]: Running average of frame rendering times.


To log this event from a DirectShow filter, use the PERFLOG_STREAMTRACE function, which is defined in the header file Dxmperf.h. This header is included in the DirectShow base classes.




See also

DirectShow Structures
Event Tracing in DirectShow
Trace Event GUIDs