事件通知代碼

[與此頁面 相關的功能 DirectShow是舊版功能。 它已被 MediaPlayerIMFMediaEngineMedia Foundation 中的音訊/視訊擷取取代。 這些功能已針對Windows 10和Windows 11進行優化。 Microsoft 強烈建議新程式碼盡可能使用 MediaPlayerIMFMediaEngine音訊/視訊擷取 ,而不是 DirectShow。 Microsoft 建議盡可能重寫使用舊版 API 的現有程式碼,以使用新的 API。]

本節列出不專屬於 DVD 的 DirectShow 事件。 如需 DVD 特有的事件,請參閱 DVD 事件通知代碼

篩選會藉由呼叫 IMediaEventSink::Notify 方法,將事件傳送至 Filter Graph 管理員。 Filter Graph 管理員會處理某些事件,並將其他事件排入應用程式佇列。 應用程式會藉由呼叫 IMediaEvent::GetEvent 方法來擷取它們。

在下列各節中,每個專案都會列出事件程式碼、事件參數的意義,以及如果有的話,篩選圖形管理員的預設動作。 若要覆寫預設動作,請呼叫 IMediaEvent::CancelDefaultHandling。 事件代碼定義于標頭檔 Evcode.h 和 Audevcod.h 中。 如果沒有預設動作,Filter Graph 管理員會自動透過事件佇列) 將事件轉送至應用程式 (。

自訂事件

篩選準則可以使用範圍中的事件代碼定義自訂事件EC_USER和更新版本。 Filter Graph 管理員會將這些專案直接放在事件佇列中。 不過,適用下列注意事項:

  • Filter Graph 管理員無法使用一般的 IMediaEvent::FreeEventParams 方法釋放事件參數。 應用程式必須釋放與事件參數相關聯的任何記憶體或參考計數。
  • 篩選應該只從準備好處理事件的應用程式內傳送事件。 (可能應用程式可以在篩選上設定自訂屬性,以指出可以安全地傳送 event.)
事件通知程式碼 Description
EC_ACTI加值稅E 正在啟動或停用視訊視窗。
EC_BANDWIDTHCHANGE 不支援。
EC_BUFFERING_DATA 圖形正在緩衝處理資料,或已停止緩衝處理資料。
EC_BUILT 建置圖形時,影片控制項會傳送。 未轉送至應用程式。
EC_CLOCK_CHANGED 參考時鐘已變更。
EC_CLOCK_UNSET 時鐘提供者已中斷連線。
EC_CODECAPI_EVENT 編碼器傳送來發出編碼事件的訊號。
EC_COMPLETE 已轉譯來自特定資料流程的所有資料。
EC_CONTENTPROPERTY_CHANGED 不支援。
EC_DEVICE_LOST 已移除隨插即用裝置,或已再次可供使用。
EC_DISPLAY_CHANGED 顯示模式已變更。
EC_END_OF_SEGMENT 已到達區段的結尾。
EC_EOS_SOON 不支援。
EC_ERROR_STILLPLAYING 執行圖形的非同步命令失敗。
EC_ERRORABORT 作業因為發生錯誤而中止。
EC_ERRORABORTEX 作業因為發生錯誤而中止。
EC_EXTDEVICE_MODE_CHANGE 不支援。
EC_FILE_CLOSED 來源檔案因為未預期的事件而關閉。
EC_FULLSCREEN_LOST 視訊轉譯器正在切換出全螢幕模式。
EC_GRAPH_CHANGED 篩選圖表已變更。
EC_LENGTH_CHANGED 來源的長度已變更。
EC_LOADSTATUS 開啟網路檔案時通知應用程式進度。
EC_MARKER_HIT 不支援。
EC_NEED_RESTART 篩選準則要求重新開機圖形。
EC_NEW_PIN 不支援。
EC_NOTIFY_WINDOW 通知視訊轉譯器的視窗篩選。
EC_OLE_EVENT 篩選準則正在將文字字串傳遞至應用程式。
EC_OPENING_FILE 圖形正在開啟檔案,或已完成開啟檔案。
EC_PALETTE_CHANGED 視訊調色盤已變更。
EC_PAUSED 暫停要求已完成。
EC_PLEASE_REOPEN 來源檔案已變更。
EC_PREPROCESS_COMPLETE 當 WM ASF 寫入器篩選完成多重密碼編碼的前置處理時,由 WM ASF 寫入器篩選傳送。
EC_PROCESSING_LATENCY 指出元件處理每個樣本所花費的時間量。
EC_QUALITY_CHANGE 圖形正在卸載樣本以進行品質保證。
EC_RENDER_FINISHED 不支援。
EC_REPAINT 視訊轉譯器需要重繪。
EC_SAMPLE_LATENCY 指定元件在排程後多遠的時間,以便處理範例。
EC_SAMPLE_NEEDED 從增強式視訊轉譯器 (EVR) 篩選要求新的輸入範例。
EC_SCRUB_TIME 指定最近框架步驟的時間戳記。
EC_SEGMENT_STARTED 已啟動新的區段。
EC_SHUTTING_DOWN 篩選圖表會在終結之前關閉。
EC_SNDDEV_IN_ERROR 音訊擷取篩選器中發生裝置錯誤。
EC_SNDDEV_OUT_ERROR 音訊轉譯器篩選中發生裝置錯誤。
EC_STAR加值稅ION 篩選準則未收到足夠的資料。
EC_STATE_CHANGE 篩選圖表已變更狀態。
EC_STATUS 包含兩個任意狀態字串。
EC_STEP_COMPLETE 執行畫面逐步執行的篩選準則已逐步執行指定的畫面數。
EC_STREAM_CONTROL_STARTED 資料流程控制啟動命令已生效。
EC_STREAM_CONTROL_STOPPED 資料流程控制停止命令已生效。
EC_STREAM_ERROR_STILLPLAYING 資料流程中發生錯誤。 資料流程仍在播放中。
EC_STREAM_ERROR_STOPPED 資料流程因為發生錯誤而停止。
EC_TIMECODE_AVAILABLE 不支援。
EC_UNBUILT 當圖表已損毀時,視訊控制項傳送。 未轉送至應用程式。
EC_USERABORT 使用者已終止播放。
EC_VIDEO_SIZE_CHANGED 原生視訊大小已變更。
EC_VIDEOFRAMEREADY 視訊畫面已準備好顯示。
EC_VMR_RECONNECTION_FAILED 當 VMR-7 和 VMR-9 無法接受上游解碼器中的動態格式變更要求時,由 VMR-7 和 VMR-9 傳送。
EC_VMR_RENDERDEVICE_SET 當 VMR 已選取其轉譯機制時傳送。
EC_VMR_SURFACE_FLIPPED 當 VMR-7 的配置器簡報者在呈現的介面上呼叫 DirectDraw Flip 方法時傳送。
EC_WINDOW_DESTROYED 影片轉譯器已從圖形終結或移除。
EC_WMT_EVENT WM ASF 讀取器篩選器在讀取受數位版權管理保護的 ASF 檔案時傳送, (DRM) 。
EC_WMT_INDEX_EVENT 當應用程式使用 WM ASF 寫入器來編制 Windows 媒體視訊檔案的索引時傳送。

 

常數和 GUID

DirectShow 中的事件通知