PERFINFO_DSHOW_STREAMTRACE Structure

 
Microsoft DirectShow 9.0

PERFINFO_DSHOW_STREAMTRACE Structure

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

Syntax

typedef struct _PERFINFO_DSHOW_STREAMTRACE {
    ULONG        id;
    ULONG        reserved;
    ULONGLONG    dshowClock;
    ULONGLONG    data[4];
} PERFINFO_DSHOW_STREAMTRACE, *PPERFINFO_DSHOW_STREAMTRACE;

Members

id

Event identifier. See Remarks.

reserved

Reserved. Set to zero.

dshowClock

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

data

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

Remarks

The following event identifiers are defined.

Event identifier Description
PERFINFO_STREAMTRACE_MPEG2DEMUX_PTS_TRANSLATION Logged 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_RECEIVE Logged when MPEG-2 Demultiplexer receives a sample.
  • data[0]: Current time returned by QueryPerformanceCounter.
PERFINFO_STREAMTRACE_VMR_BEGIN_ADVISE Logged 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_DECODE Logged when the VMR begins a decoding operation—that is, when the decoder calls IAMVideoAccelerator::BeginFrame. No event data.
PERFINFO_STREAMTRACE_VMR_BEGIN_DEINTERLACE Logged when the VMR begins a deinterlacing or video compositing operation. No event data.
PERFINFO_STREAMTRACE_VMR_DROPPED_FRAME Logged 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_ADVISE Logged when the VMR receives an advise notification from the reference clock. No event data.
PERFINFO_STREAMTRACE_VMR_END_DECODE Logged when the VMR ends a decoding operation—that is, when the decoder calls IAMVideoAccelerator::EndFrame. No event data.
PERFINFO_STREAMTRACE_VMR_END_DEINTERLACE Logged when the VMR completes a deinterlacing or video compositing operation. No event data.
PERFINFO_STREAMTRACE_VMR_RECEIVE Logged when the VMR receives a new sample. No event data.
PERFINFO_STREAMTRACE_VMR_RENDER_TIME Logged 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.

Requirements

Header: Perfstruct.h.

See Also