PERFINFO_DSHOW_STREAMTRACE 结构

[与此页面关联的功能 DirectShow 是一项旧功能。 它已被 MediaPlayerIMFMediaEngine媒体基金会中的音频/视频捕获取代。 这些功能已针对Windows 10和Windows 11进行了优化。 Microsoft 强烈建议新代码尽可能使用 MediaPlayerIMFMediaEngineMedia Foundation 中的音频/视频捕获 ,而不是 DirectShow。 如果可能,Microsoft 建议重写使用旧 API 的现有代码以使用新 API。]

结构 PERFINFO_DSHOW_STREAMTRACE 包含 GUID_STREAMTRACE 类型的 DirectShow 跟踪事件的数据。

语法

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

成员

id

事件标识符。 请参阅“备注”。

reserved

保留。 设置为零。

dshowClock

此事件的流式处理时间,以 100 纳秒为单位。 此值是可选的,可以为零。

data

由四个 ULONGLONG 值组成的可选事件数据。 此数据的含义取决于事件标识符。

备注

定义了以下事件标识符。

事件标识符 说明
PERFINFO_STREAMTRACE_MPEG2DEMUX_PTS_TRANSLATION 当 MPEG-2 多复用器筛选器将呈现时间戳 (PTS) 转换为流时间时记录。
  • data[0]:已转换的开始时间。
  • data[1]:转换的停止时间。
  • data[2]。 输入引脚的流标识符。
  • data[3]:已转换的 PTS。
PERFINFO_STREAMTRACE_MPEG2DEMUX_SAMPLE_RECEIVE 在 MPEG-2 多复用器接收样本时记录。
PERFINFO_STREAMTRACE_VMR_BEGIN_ADVISE 在 VMR 调用 IReferenceClock::AdviseTime 之前,VMR 计划用于呈现的示例时记录。
  • data[0]:流式处理开始时的引用时间,对应于流时间零。
PERFINFO_STREAMTRACE_VMR_BEGIN_DECODE 在 VMR 开始解码操作时记录,即解码器调用 IAMVideoAccelerator::BeginFrame 时记录。 无事件数据。
PERFINFO_STREAMTRACE_VMR_BEGIN_DEINTERLACE VMR 开始取消隔行或视频合成操作时记录。 无事件数据。
PERFINFO_STREAMTRACE_VMR_DROPPED_FRAME VMR 删除帧时记录;例如,如果样本延迟。
  • data[0]:示例开始时间。
  • data[1]:示例结束时间。
PERFINFO_STREAMTRACE_VMR_END_ADVISE 当 VMR 从引用时钟收到建议通知时记录。 无事件数据。
PERFINFO_STREAMTRACE_VMR_END_DECODE 在 VMR 结束解码操作时记录,即当解码器调用 IAMVideoAccelerator::EndFrame 时记录。 无事件数据。
PERFINFO_STREAMTRACE_VMR_END_DEINTERLACE VMR 完成去交错或视频合成操作时记录。 无事件数据。
PERFINFO_STREAMTRACE_VMR_RECEIVE 在 VMR 收到新示例时记录。 无事件数据。
PERFINFO_STREAMTRACE_VMR_RENDER_TIME VMR 完成呈现帧时记录。
  • data[0]:呈现此帧所需的时间。
  • data[1]:帧呈现时间的运行平均值。

 

若要从 DirectShow 筛选器记录此事件,请使用头文件 Dxmperf.h 中定义的 PERFLOG_STREAMTRACE 函数。 此标头包含在 DirectShow 基类中。

要求

要求
标头
Perfstruct.h

另请参阅

DirectShow 结构

DirectShow 中的事件跟踪

跟踪事件 GUID