MFCreateMediaBufferFromMediaType 関数 (mfapi.h)
指定したメディアの種類に最適なシステム メモリ バッファーを割り当てます。
構文
HRESULT MFCreateMediaBufferFromMediaType(
[in] IMFMediaType *pMediaType,
[in] LONGLONG llDuration,
[in] DWORD dwMinLength,
[in] DWORD dwMinAlignment,
[out] IMFMediaBuffer **ppBuffer
);
パラメーター
[in] pMediaType
メディアの種類の IMFMediaType インターフェイスへのポインター。
[in] llDuration
サンプル期間。 この値は、オーディオ形式に必要です。
[in] dwMinLength
バッファーの最小サイズ (バイト単位)。 実際のバッファー サイズが大きくなる可能性があります。 メディアの種類に既定のバッファー サイズを割り当てるには、0 を指定します。
[in] dwMinAlignment
バッファーの最小メモリアラインメント。 既定のメモリ配置を使用するには、0 を指定します。
[out] ppBuffer
IMFMediaBuffer インターフェイスへのポインターを受け取ります。 呼び出し元はインターフェイスを解放する必要があります。
戻り値
この関数が成功すると、 S_OKが返されます。 そうでない場合は、HRESULT エラー コードを返します。
解説
ビデオ形式の場合、形式が認識された場合、関数は IMF2DBuffer2 インターフェイスを実装する 2-D バッファーを作成します。 それ以外の場合は、線形バッファーが作成されます。 IMF2DBuffer2 インターフェイスを取得するには、ppBuffer で返されたポインターで QueryInterface を呼び出します。 QueryInterface メソッドが失敗した場合は、IMFMediaBuffer インターフェイスを使用してバッファー メモリにアクセスします。
オーディオ形式の場合、この関数は llDuration オーディオ サンプル ( dwMinLength のいずれか大きい方) を格納するのに十分な大きさのバッファーを割り当てます。
この関数は常にシステム メモリを割り当てます。 Direct3D サーフェスの場合は、 MFCreateDXGISurfaceBuffer または MFCreateDXSurfaceBuffer 関数を 使用します。
要件
サポートされている最小のクライアント | Windows 8 [デスクトップ アプリ |UWP アプリ] |
サポートされている最小のサーバー | Windows Server 2012 [デスクトップ アプリ |UWP アプリ] |
対象プラットフォーム | Windows |
ヘッダー | mfapi.h |
Library | Mfplat.lib |
[DLL] | Mfplat.dll |