_MFT_OUTPUT_DATA_BUFFER_FLAGS列舉 (mftransform.h)
定義 IMFTransform::P rocessOutput 方法的旗標 。
Syntax
typedef enum _MFT_OUTPUT_DATA_BUFFER_FLAGS {
MFT_OUTPUT_DATA_BUFFER_INCOMPLETE = 0x1000000,
MFT_OUTPUT_DATA_BUFFER_FORMAT_CHANGE = 0x100,
MFT_OUTPUT_DATA_BUFFER_STREAM_END = 0x200,
MFT_OUTPUT_DATA_BUFFER_NO_SAMPLE = 0x300
} ;
常數
MFT_OUTPUT_DATA_BUFFER_INCOMPLETE 值: 0x1000000 MFT 仍然可以從此資料流程產生輸出,而不會再收到任何輸入。 再次呼叫 ProcessOutput 以處理下一批輸入資料。 |
MFT_OUTPUT_DATA_BUFFER_FORMAT_CHANGE 值: 0x100 此輸出資料流程上的格式已變更,或此資料流程有新的慣用格式。 設定此旗標時,MFT 會清除資料流程的媒體類型。 ProcessOutput方法會傳回MF_E_TRANSFORM_STREAM_CHANGE,而且不會產生任何資料流程的輸出。 對 IMFTransform::P rocessInput 或 ProcessOutput 的進一步呼叫將會失敗,直到用戶端設定新的媒體類型為止。 |
MFT_OUTPUT_DATA_BUFFER_STREAM_END 值: 0x200 MFT 已移除此輸出資料流程。 輸出資料流程必須具有 MFT_OUTPUT_STREAM_REMOVABLE 旗標。 (請參閱 IMFTransform::GetOutputStreamInfo.) 當 MFT 移除輸出資料流程時,MFT 會在產生最後一個輸出範例之後,在下一次呼叫 ProcessOutput 時傳回此狀態碼。 當 MFT 傳回此狀態碼時,它不會修改MFT_OUTPUT_DATA_BUFFER結構之 pSample成員中包含的任何範例,也不會在pSample為Null時配置新的範例。 傳回此狀態碼之後,此輸出資料流程的資料流程識別碼已不再有效。 用戶端在呼叫ProcessOutput時,不應該再為該資料流程提供MFT_OUTPUT_DATA_BUFFER結構。 ProcessOutput方法不會在資料流程結束時傳回MF_E_TRANSFORM_STREAM_CHANGE,除非另一個資料流程中有需要此傳回碼的變更。 |
MFT_OUTPUT_DATA_BUFFER_NO_SAMPLE 值: 0x300 此資料流程沒有任何範例可供使用。 如果 MFT 有多個輸出資料流程在不同時間產生資料,可能會設定此旗標。 它會針對尚未準備好產生資料的每個資料流程設定此旗標。 它不會修改包含在 MFT_OUTPUT_DATA_BUFFER結構的pSample成員中的輸出範例,也不會配置新的範例為pSample為Null。 如果沒有資料流程準備好產生輸出,MFT 不會設定此旗標。 相反地, ProcessOutput 方法會傳回MF_E_TRANSFORM_NEED_MORE_INPUT。 |
備註
此列舉中的值不是位旗標,因此不應該與位 OR結合。 此外,呼叫端應該使用相等運算子來測試這些旗標,而不是位 AND:
// Correct.
if (Buffer.dwStatus == MFT_OUTPUT_DATA_BUFFER_STREAM_END)
{
...
}
// Incorrect.
if ((Buffer.dwStatus & MFT_OUTPUT_DATA_BUFFER_STREAM_END) != 0)
{
...
}
需求
最低支援的用戶端 | Windows Vista [傳統型應用程式 |UWP 應用程式] |
最低支援的伺服器 | Windows Server 2008 [傳統型應用程式 |UWP 應用程式] |
標頭 | mftransform.h |