IMFASFMultiplexer::P rocessSample 方法 (wmcontainer.h)
將輸入範例傳遞至多任務器。
語法
HRESULT ProcessSample(
[in] WORD wStreamNumber,
[in] IMFSample *pISample,
[in] LONGLONG hnsTimestampAdjust
);
參數
[in] wStreamNumber
樣本所屬數據流的數據流編號。
[in] pISample
輸入範例之 IMFSample 介面的指標。 輸入範例包含要轉換成 ASF 資料封包的媒體數據。 可能的話,此範例的時間戳應該是正確的。
[in] hnsTimestampAdjust
要套用至範例時間戳的調整。 如果呼叫端想要在 pISample 上移動取樣時間,就會使用此參數。 如果應該事先推送時間戳,則此值應該是正數,如果應該推送時間戳,則為負值。 這個時間戳會新增至 pISample 上的取樣時間,而且多任務器會使用產生的時間,而不是原始取樣時間。 如果不需要調整,請將此值設定為 0。
傳回值
方法會傳回 HRESULT。 可能的值包括 (但不限於) 下表中的這些值。
傳回碼 | 描述 |
---|---|
|
此方法已成功。 |
|
等候從多任務器擷取太多封包。 呼叫 IMFASFMultiplexer::GetNextPacket 以取得封包。 |
|
已處理的範例違反 ASF ContentInfo 物件中數據流所指定的頻寬限制。 產生此錯誤時,會卸除範例。 |
|
在 wStreamNumber 中傳遞的值無效。 |
|
輸入媒體範例的呈現時間早於傳送時間。 |
備註
應用程式會將範例傳遞至 ProcessSample,而 ASF 多任務器會在內部排入佇列,直到準備好放入 ASF 封包為止。 呼叫 IMFASFMultiplexer::GetNextPacket 以取得 ASF 數據封包。
每次呼叫 ProcessSample 之後,請在迴圈中呼叫 GetNextPacket 以取得所有可用的數據封包。 如需程式代碼範例,請參閱 產生新的 ASF 數據封包。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows Vista [僅限傳統型應用程式] |
最低支援的伺服器 | Windows Server 2008 [僅限傳統型應用程式] |
目標平台 | Windows |
標頭 | wmcontainer.h |
程式庫 | Mfuuid.lib |