速率變更屬性集

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

[速率變更] 屬性集可讓 MPEG-2 來源/剖析器篩選準則變更播放速率。 MPEG-2 解碼器應該支援此屬性集。 DVD 導覽器和串流緩衝區引擎都使用此屬性設定來控制播放速率。

標籤
屬性集 GUID AM_KSPROPSETID_TSRateChange

 

屬性識別碼 描述
AM_RATE_CorrectTS 通知解碼器 Navigator 正在設定正確的時間戳記。
AM_RATE_ExactRateChange 已過時。
AM_RATE_MaxFullDataRate 查詢解碼器的最大資料速率解碼器。
AM_RATE_QueryFullFrameRate 查詢解碼器的完整畫面播放速率上限的解碼器。
AM_RATE_QueryLastRateSegPTS 查詢解碼器,以取得最近設定的速率區段開始時間。
AM_RATE_SimpleRateChange 將速率變更傳送至解碼器。
AM_RATE_Step 已過時。 請參閱 框架逐步執行屬性集
AM_RATE_UseRateVersion 指定要使用的速率變更機制版本。

 

備註

在此屬性集的內容中,rate 會測量時間戳記相對於參考時鐘的前進速率。 對播放速度的反速率。 例如,如果播放速度是 2 倍,時間戳記必須以一般速率增加 1/2。 這可轉譯為更快的播放速度,因為樣本的轉譯時間早于一般。

樣本會以 1 倍速率傳送至時間戳記等於簡報時間的解碼器。 解碼器必須將輸出樣本上的時間戳記調整為目前速率的正確呈現時間。 例如,如果速率為 1/2 (表示播放速度為 2x) ,解碼器就必須將時間戳記調整為 1/2。 一般而言,只有 I 框架有時間戳記。 解碼器必須插補 B 和 P 畫面格的時間戳記。 請注意,在反向播放期間,時間戳記會繼續增加 - 時間戳記永遠不會往後移動。

已定義兩個版本的 Rate Change 屬性集,版本 1.0 和 1.1 版。 預設行為是由 1.0 版提供。 建議解碼器廠商支援 1.1 版,因為它提供更順暢的播放體驗。 DVD 導覽器目前使用 1.0 版。 資料流程緩衝區引擎使用 1.1 版。

速率變更 1.0 版

Rate Change 屬性集 1.0 版會定義 MPEG-2 解碼器的預設行為。

來源篩選會藉由設定 AM_RATE_SimpleRateChange 屬性來發出速率變更訊號。 此屬性的資料是新的速率,加上速率生效時輸入樣本的開始時間。 解碼器會維護暫止速率變更的佇列,依開始時間排序。

在 DVD 導覽器變更為非 1 倍速度之前,它會傳遞所有擱置的樣本、暫時將速率設定為 1.0,並排清圖形。 然後,它會設定新的速率。 所有速率變更都會排程為目前 VOBU (視訊物件單位的結尾) 。 請注意,清除圖形會將簡報時間重設為零。

DVD 導覽器會在 平滑模式掃描模式中運作。 在平滑模式中,它會將每個畫面傳送至解碼器,包括 B 畫面格和 P 畫面。 每當播放速度大於零,但小於解碼器的最大值資料速率時,DVD 導覽器就會使用平滑模式。 如果播放速度小於零 (反向播放) ,或超過解碼器的最大資料速率,DVD 導覽器會使用掃描模式,其中只會將 I 畫面傳送至解碼器。 速度非常高,可能會略過一些 I 框架;例如,它可能會傳送其他每一個 I 框架。

根據預設,DVD 導覽器會針對 1.0 以外的速率將音訊資料流程靜音。 您可以使用 DVD_AudioDuringFFwdRew 旗標呼叫 IUrlControl2::SetOption 來變更此專案。

速率變更版本 1.1

Rate Change 屬性集的版本 1.1 遵循與 1.0 版相同的基本準則,但有下列差異:

  • 來源篩選準則會藉由設定 AM_RATE_UseRateVersion 屬性,發出解碼器使用 1.1 版的訊號。 否則,解碼器應該使用 1.0 版的行為。
  • 來源篩選不會排清速率變更之間的圖形。 因此,時間戳記會以單調方式增加速率變更界限,而不是重設為零。
  • 來源篩選可以指定速率變更會套用至解碼器 最向前樣本,定義為解碼器傳出佇列前端的樣本,而不是將速率變更排入特定參考時間。 若要這樣做,來源篩選會使用 AM_RATE_SimpleRateChange 屬性,但會將開始時間設定為 -1。
  • 來源篩選準則可以查詢解碼器,以取得最近排入佇列的速率變更開始時間。 它會針對此目的使用 AM_RATE_QueryLastRateSegPTS 屬性。
  • 來源篩選不會卸載範例。 如果速率超過解碼器的資料速率上限,解碼器應該視需要卸載畫面格。
  • 不論音訊解碼器的最大資料速率為何,來源篩選不會將音訊資料流程靜音。 如果播放速度超過解碼器的最大速率,音訊解碼器可能會卸載樣本。 不過,它仍應維持排程速率變更的佇列。

規格需求

需求
標頭
Dvdmedia.h

另請參閱

屬性集