共用方式為


信封區段

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

參數曲線是由一或多個信封區段所組成,使用 MP_ENVELOPE_SEGMENT 結構來定義。 此結構包含下列資訊:

  • 開始和結束時間。
  • 開始和結束值。
  • 曲線類型 (線性、方形等) 。
  • 簡短描述的選擇性旗標。

用戶端會呼叫 IMediaParams::AddEnvelope 方法,並傳入 MP_ENVELOPE_SEGMENT 結構的陣列,以將信封區段新增至參數。 用戶端應該先將區段排序為遞增時間順序,再呼叫 方法。 當 DMO 處理資料時,您可以想像一下在每一個信封區段上移動的參數,例如在一系列汽車上駕駛的汽車。 IMediaParams::GetParam方法會傳回最新的值。

兩個連續的區段之間可以有間距。 在間距期間,參數會保留其先前的值,如下所示:

  • 在第一個區段之前,此值是中性值。
  • 在區段之間,此值是上一個區段的結束值。
  • 最後一個區段之後,值會維持在該區段的結束值。
  • 如果用戶端排清 DMO,此值會還原為中性值。

您可以藉由設定下列其中一個旗標來改變區段:

  • MPF_ENVLP_BEGIN_CURRENTVAL。 DMO 使用參數的最新值做為區段的起始值。 這可能是中性值,或前一個區段的結束值。 DMO 會忽略MP_ENVELOPE_SEGMENT結構的valStart成員。
  • MPF_ENVLP_BEGIN_NEUTRALVAL。 DMO 會使用 參數的中性值做為區段的起始值。 它會忽略 valStart

您可以將這些旗標視為抓取區段的起點,並將它向上或向下移動,而結束值仍維持固定狀態。 區段會據以「延展」。

媒體參數