次の方法で共有


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

関連項目

メディア ファンデーション機能