IMFDeviceTransform::P rocessOutput メソッド (mftransform.h)
ProcessOutput メソッドは、Device MFT 出力ストリームから処理された出力を取得します。
構文
HRESULT ProcessOutput(
[in] DWORD dwFlags,
[in] DWORD cOutputBufferCount,
[in] MFT_OUTPUT_DATA_BUFFER *pOutputSample,
[in] DWORD *pdwStatus
);
パラメーター
[in] dwFlags
_MFT_PROCESS_OUTPUT_FLAGS列挙体からの 0 個以上のフラグのビットごとの OR。
[in] cOutputBufferCount
pOutputSamples 配列内の要素の数。 値は少なくとも 1 である必要があります。
[in] pOutputSample
呼び出し元によって割り当てられた MFT_OUTPUT_DATA_BUFFER 構造体の配列へのポインター。 MFT は、この配列を使用して、出力データを呼び出し元に返します。
[in] pdwStatus
_MFT_PROCESS_OUTPUT_STATUS列挙から 0 個以上のフラグのビットごとの OR を受け取ります。
戻り値
このメソッドは HRESULT を返します。 使用できる値には、次の表に示す値が含まれますが、これらに限定されません。
リターン コード | 説明 |
---|---|
|
メソッドが成功しました。 |
|
無効な引数が渡されました。 |
|
現時点では、デバイス MFT で要求をサポートできませんでした。 |
|
無効なストリーム ID が渡されました。 |
|
要求されたストリームの切り替えは不可能です。 |
|
入力メディアの種類が設定されていません。 |
解説
ほとんどの場合、メソッドが成功した場合、Media Foundation 変換 (MFT) はサンプルを格納し、 IMFSample ポインターの参照カウントを保持します。 このサンプルを使用して MFT を実行する場合は、メモリ リークを回避するために MFT を解放する必要があります。
デバイス変換マネージャー (DTM) がすべてのストリームで有効なメディアの種類を設定した後、MFT は常により多くの入力を受け入れ、より多くの出力を生成できる必要があります。
MFT が入力データで致命的でないエラーを検出した場合、単にデータを削除し、より多くの入力データを取得したときに回復を試みることができます。 MFT がデータを削除する場合は、次の出力サンプルで MFSampleExtension_Discontinuity 属性を設定して、データ ストリームにギャップがあることを呼び出し元に通知する必要があります。
要件
サポートされている最小のクライアント | Windows 10 Version 1703 |
対象プラットフォーム | Windows |
ヘッダー | mftransform.h |