_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 rocessInputProcessOutput 的進一步呼叫將會失敗,直到用戶端設定新的媒體類型為止。
MFT_OUTPUT_DATA_BUFFER_STREAM_END
值: 0x200
MFT 已移除此輸出資料流程。 輸出資料流程必須具有 MFT_OUTPUT_STREAM_REMOVABLE 旗標。 (請參閱 IMFTransform::GetOutputStreamInfo.)

當 MFT 移除輸出資料流程時,MFT 會在產生最後一個輸出範例之後,在下一次呼叫 ProcessOutput 時傳回此狀態碼。 當 MFT 傳回此狀態碼時,它不會修改MFT_OUTPUT_DATA_BUFFER結構之 pSample成員中包含的任何範例,也不會在pSampleNull時配置新的範例。

傳回此狀態碼之後,此輸出資料流程的資料流程識別碼已不再有效。 用戶端在呼叫ProcessOutput時,不應該再為該資料流程提供MFT_OUTPUT_DATA_BUFFER結構。

ProcessOutput方法不會在資料流程結束時傳回MF_E_TRANSFORM_STREAM_CHANGE,除非另一個資料流程中有需要此傳回碼的變更。
MFT_OUTPUT_DATA_BUFFER_NO_SAMPLE
值: 0x300
此資料流程沒有任何範例可供使用。 如果 MFT 有多個輸出資料流程在不同時間產生資料,可能會設定此旗標。 它會針對尚未準備好產生資料的每個資料流程設定此旗標。 它不會修改包含在 MFT_OUTPUT_DATA_BUFFER結構的pSample成員中的輸出範例,也不會配置新的範例為pSampleNull

如果沒有資料流程準備好產生輸出,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

另請參閱

媒體基礎列舉

媒體基礎轉換