PERFINFO_DSHOW_STREAMTRACE 結構
[與此頁面相關的功能 DirectShow是舊版功能。 它已被 MediaPlayer、 IMFMediaEngine和 Media Foundation 中的音訊/視訊擷取取代。 這些功能已針對Windows 10和Windows 11進行優化。 Microsoft 強烈建議新程式碼盡可能使用 MediaPlayer、 IMFMediaEngine 和 音訊/視訊擷取 ,而不是 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
-
事件識別碼。 請參閱<備註>。
-
保留
-
保留的。 設定為零。
-
dshowClock
-
此事件的資料流程時間,以 100 奈秒為單位。 這個值是選擇性的,而且可以是零。
-
data
-
包含四 個 ULONGLONG 值的選擇性事件資料。 此資料的意義取決於事件識別碼。
備註
定義下列事件識別碼。
事件識別碼 | Description |
---|---|
PERFINFO_STREAMTRACE_MPEG2DEMUX_PTS_TRANSLATION | 當 MPEG-2 Demultiplexer 篩選器將簡報時間戳記轉換成串流時間時, (PTS) 記錄。
|
PERFINFO_STREAMTRACE_MPEG2DEMUX_SAMPLE_RECEIVE | 當 MPEG-2 Demultiplexer 收到範例時記錄。
|
PERFINFO_STREAMTRACE_VMR_BEGIN_ADVISE | 當 VMR 排程範例進行轉譯時,會在 VMR 呼叫 IReferenceClock::AdviseTime之前立即記錄。
|
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 基類中。
規格需求
需求 | 值 |
---|---|
標頭 |
|
另請參閱