PERFINFO_DSHOW_STREAMTRACE 结构
[与此页面关联的功能 DirectShow 是一项旧功能。 它已被 MediaPlayer、 IMFMediaEngine 和 媒体基金会中的音频/视频捕获取代。 这些功能已针对Windows 10和Windows 11进行了优化。 Microsoft 强烈建议新代码尽可能使用 MediaPlayer、 IMFMediaEngine 和 Media 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) 转换为流时间时记录。
|
PERFINFO_STREAMTRACE_MPEG2DEMUX_SAMPLE_RECEIVE | 在 MPEG-2 多复用器接收样本时记录。
|
PERFINFO_STREAMTRACE_VMR_BEGIN_ADVISE | 在 VMR 调用 IReferenceClock::AdviseTime 之前,VMR 计划用于呈现的示例时记录。
|
PERFINFO_STREAMTRACE_VMR_BEGIN_DECODE | 在 VMR 开始解码操作时记录,即解码器调用 IAMVideoAccelerator::BeginFrame 时记录。 无事件数据。 |
PERFINFO_STREAMTRACE_VMR_BEGIN_DEINTERLACE | VMR 开始取消隔行或视频合成操作时记录。 无事件数据。 |
PERFINFO_STREAMTRACE_VMR_DROPPED_FRAME | VMR 删除帧时记录;例如,如果样本延迟。
|
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 完成呈现帧时记录。
|
若要从 DirectShow 筛选器记录此事件,请使用头文件 Dxmperf.h 中定义的 PERFLOG_STREAMTRACE 函数。 此标头包含在 DirectShow 基类中。
要求
要求 | 值 |
---|---|
标头 |
|
另请参阅