共用方式為


PERFINFO_DSHOW_STREAMTRACE 結構

[與此頁面相關的功能 DirectShow是舊版功能。 它已被 MediaPlayerIMFMediaEngineMedia Foundation 中的音訊/視訊擷取取代。 這些功能已針對Windows 10和Windows 11進行優化。 Microsoft 強烈建議新程式碼盡可能使用 MediaPlayerIMFMediaEngine音訊/視訊擷取 ,而不是 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) 記錄。
  • data[0]: 已轉換的開始時間。
  • data[1]: 已轉換的停止時間。
  • data[2]。 輸入針腳的資料流程識別碼。
  • data[3]:已轉換的 PTS。
PERFINFO_STREAMTRACE_MPEG2DEMUX_SAMPLE_RECEIVE 當 MPEG-2 Demultiplexer 收到範例時記錄。
PERFINFO_STREAMTRACE_VMR_BEGIN_ADVISE 當 VMR 排程範例進行轉譯時,會在 VMR 呼叫 IReferenceClock::AdviseTime之前立即記錄。
  • 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