IMFTransform::SetOutputBounds 方法 (mftransform.h)

設定用戶端輸出所需的時間戳記範圍。

語法

HRESULT SetOutputBounds(
  LONGLONG hnsLowerBound,
  LONGLONG hnsUpperBound
);

參數

hnsLowerBound

指定最早的時間戳記。 媒體基礎轉換 (MFT) 將接受輸入,直到它可以產生目前開始的輸出範例為止;或 ,直到它可以產生目前或更新版本結束的樣本為止。 如果沒有下限,請使用值 MFT_OUTPUT_BOUND_LOWER_UNBOUNDED

hnsUpperBound

指定最新的時間戳記。 MFT 不會產生時間戳記晚于此時間的輸出範例。 如果沒有上限,請使用 值MFT_OUTPUT_BOUND_UPPER_UNBOUNDED

傳回值

方法會傳回 HRESULT。 可能的值包括 (但不限於) 下表中的這些值。

傳回碼 描述
S_OK
此方法已成功。
E_NOTIMPL
未實作。
MF_E_TRANSFORM_TYPE_NOT_SET
媒體類型未在一或多個資料流程上設定。

備註

這個方法可用來優化預先註冊,特別是在時間戳記之間有間距的格式,或資料必須在同步點上開始的格式,例如 MPEG-2。 呼叫這個方法是選擇性的,而 MFT 的這個方法實作是選擇性的。 如果 MFT 未實作 方法,則會 E_NOTIMPL傳回值。

如果 MFT 實作此方法,則必須將其輸出資料限制為 hnsLowerBoundhnsUpperBound所指定的時間範圍。 MFT 會捨棄任何不需要在此範圍內產生輸出的輸入資料。 如果範例界限與範圍不完全相符,MFT 應該盡可能分割輸出樣本。 否則,輸出範例可以重迭範圍。

例如,假設輸出範圍是 100 到 150 毫秒, (毫秒) ,而輸出格式是視訊,且每個畫面持續 33 毫秒。 時間戳記為 67 毫秒的範例會重迭範圍 (67 + 33 = 100) ,並產生為輸出。 (66 + 33 = 99) 捨棄時間戳記為 66 毫秒的範例。 同樣地,時間戳記為 150 毫秒的範例會產生為輸出,但會捨棄時間戳記為 151 的範例。

如果在包含 mftransform.h 之前定義 MFT_UNIQUE_METHOD_NAMES ,此方法會重新命名 為 MFTSetOutputBounds。 請參閱 建立混合式 DMO/MFT 物件

需求

   
最低支援的用戶端 Windows Vista [傳統型應用程式 |UWP 應用程式]
最低支援的伺服器 Windows Server 2008 [傳統型應用程式 |UWP 應用程式]
目標平台 Windows
標頭 mftransform.h
程式庫 Mfuuid.lib

另請參閱

IMFTransform

媒體基礎轉換