IMFTransform::D eleteInputStream メソッド (mftransform.h)
この Media Foundation 変換 (MFT) から入力ストリームを削除します。
構文
HRESULT DeleteInputStream(
[in] DWORD dwStreamID
);
パラメーター
[in] dwStreamID
削除する入力ストリームの識別子。
戻り値
このメソッドは HRESULT を返します。 有効な値を次の表に示しますが、これ以外にもあります。
リターン コード | 説明 |
---|---|
|
メソッドが成功しました。 |
|
変換には、固定数の入力ストリームがあります。 |
|
ストリームがリムーバブルではないか、変換に現在サポートできる入力ストリームの最小数があります。 |
|
ストリーム識別子が無効です。 |
|
変換には、指定されたストリームの未処理の入力バッファーがあります。 |
解説
変換に固定数の入力ストリームがある場合、メソッドは E_NOTIMPLを返します。
MFT ではこのメソッドがサポートされている可能性がありますが、特定の入力ストリームの削除は許可されません。 入力ストリームを削除できる場合、 IMFTransform::GetInputStreamInfo メソッドは、そのストリームの MFT_INPUT_STREAM_REMOVABLE フラグを返します。 それ以外の場合は、ストリームを削除できず、メソッドは MF_E_INVALIDREQUESTを返します。 MFT に必要な入力ストリームの最小数が現在ある場合も、 メソッドは失敗します。 ストリームの最小数を見つけるには、 IMFTransform::GetStreamLimits を呼び出します。
変換にそのストリームの未処理の入力が残っている場合は、メソッドが成功するか、 MF_E_TRANSFORM_INPUT_REMAININGを返す可能性があります。 メソッドが成功した場合、MFT はストリームが削除された後も残りの入力を処理し続けます。 メソッドが MF_E_TRANSFORM_INPUT_REMAININGを返す場合は、ストリームを削除する前に入力バッファーをクリアする必要があります。 入力バッファーをクリアするには、 IMFTransform::P rocessOutput を呼び出すか、または MFT_MESSAGE_COMMAND_FLUSH を使用 して IMFTransform::P rocessMessage を呼び 出して MFT をフラッシュします。 次に、 DeleteInputStream をもう一度呼び出します。 DeleteInputStream が呼び出されたときに、MFT は入力バッファーを破棄しないでください。
mftransform.h を含む前に MFT_UNIQUE_METHOD_NAMES が定義されている場合、このメソッドの名前は MFTDeleteInputStream になります。 「ハイブリッド DMO/MFT オブジェクトの作成」を参照してください。
要件
サポートされている最小のクライアント | Windows Vista [デスクトップ アプリのみ | UWP アプリ] |
サポートされている最小のサーバー | Windows Server 2008 [デスクトップ アプリ | UWP アプリ] |
対象プラットフォーム | Windows |
ヘッダー | mftransform.h |
Library | Mfuuid.lib |