共用方式為


信封區段

[與此頁面相關聯的功能,DirectShow是舊版功能。 它已被 MediaPlayer、imfMediaEngine 取代,並在媒體基金會 音訊/視訊擷取。 這些功能已針對 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

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

媒體參數