IMediaObject::GetInputSizeInfo メソッド (mediaobj.h)

メソッドは GetInputSizeInfo 、指定された入力ストリームのバッファー要件を取得します。

構文

HRESULT GetInputSizeInfo(
        DWORD dwInputStreamIndex,
  [out] DWORD *pcbSize,
  [out] DWORD *pcbMaxLookahead,
  [out] DWORD *pcbAlignment
);

パラメーター

dwInputStreamIndex

DMO 上の入力ストリームの 0 から始まるインデックス。

[out] pcbSize

このストリームの入力バッファーの最小サイズをバイト単位で受け取る変数へのポインター。

[out] pcbMaxLookahead

DMO が先読みのために保持する最大データ量をバイト単位で受け取る変数へのポインター。 DMO がストリームで先読みを実行しない場合、値は 0 です。

[out] pcbAlignment

必要なバッファーアラインメントを受け取る変数へのポインター (バイト単位)。 入力ストリームにアラインメント要件がない場合、値は 1 です。

戻り値

HRESULT 値を返します。 次の表に示す値を指定できます。

リターン コード 説明
DMO_E_INVALIDSTREAMINDEX
ストリーム インデックスが無効です。
DMO_E_TYPE_NOT_SET
メディアの種類が設定されていません。
S_OK
正常終了しました。

解説

バッファー要件は、さまざまなストリームのメディアの種類によって異なります。 このメソッドを呼び出す前に、 IMediaObject::SetInputType メソッドと IMediaObject::SetOutputType メソッドを呼び出して、各ストリームのメディア の種類を 設定します。 メディアの種類が設定されていない場合、このメソッドはエラーを返す可能性があります。

DMO が入力ストリームに対して先読みを実行すると、 IMediaObject::GetInputStreamInfo メソッドでDMO_INPUT_STREAMF_HOLDS_BUFFERS フラグが返されます。 処理中、DMO は pcbMaxLookahead パラメーターによって示されるバイト数まで保持します。 アプリケーションは、DMO がこの多くのデータを保持するのに十分なバッファーを割り当てる必要があります。

バッファーの開始アドレスが *pcbAlignment の倍数である場合、バッファーはアラインされます。 配置は 2 の累乗である必要があります。 マイクロプロセッサによっては、アラインされたバッファーに対する読み取りと書き込みが、アラインされていないバッファーよりも高速になる場合があります。 また、一部のマイクロプロセッサでは、整列されていない読み取りと書き込みがサポートされていません。

要件

   
対象プラットフォーム Windows
ヘッダー mediaobj.h (Dmo.h を含む)
Library Dmoguids.lib

関連項目

IMediaObject インターフェイス