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。 可能的值包括 (但不限於) 下表中的這些值。
傳回碼 | 描述 |
---|---|
|
此方法已成功。 |
|
未實作。 |
|
媒體類型未在一或多個資料流程上設定。 |
備註
這個方法可用來優化預先註冊,特別是在時間戳記之間有間距的格式,或資料必須在同步點上開始的格式,例如 MPEG-2。 呼叫這個方法是選擇性的,而 MFT 的這個方法實作是選擇性的。 如果 MFT 未實作 方法,則會 E_NOTIMPL傳回值。
如果 MFT 實作此方法,則必須將其輸出資料限制為 hnsLowerBound 和 hnsUpperBound所指定的時間範圍。 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 |