次の方法で共有


IAsyncReader::SyncReadAligned

SyncReadAligned メソッドは、同期読み取りを実行する。メソッドは、要求が完了するまでブロックする。ファイルの位置とバッファ アドレスは、アラインメントする必要がある。アロケータ プロパティで必要なアラインメントをチェックすること。

構文

  HRESULT SyncReadAligned(
  IMediaSample *pSample
);

パラメータ

pSample

呼び出し元が提供するメディア サンプルの IMediaSample インターフェイスへのポインタ。

戻り値

HRESULT 値を返す。可能な値は次のとおりである。

戻りコード 説明
VFW_E_BADALIGN 無効なアラインメント。
S_FALSE 取得したバイトの数が要求されたバイトの数より少ない (ファイルの末尾に達したと考えられる)。
S_OK 成功。

注意

このメソッドを呼び出す前に、ピンのアロケータからメディア サンプルを取得すること。要求しているバイト オフセット (最初と最後を含めて 10,000,000 を掛けた値) でサンプルにタイム スタンプを設定する。バイト オフセットは、ストリームの開始からの相対値である。

開始位置と停止位置は、ピンが接続されたときに決められたアラインメントと一致していること。一致しない場合、メソッドは VFW_E_BADALIGN を返す。合意したアラインメントがストリームの実際のアラインメントよりも粗いとき、停止位置は実際の時間幅を超える場合がある。その場合、メソッドは停止位置を実際のアラインメントに丸める。

このメソッドは、バッファなし読み取りを実行するので、IAsyncReader::SyncRead メソッドよりも高速に処理される。

参照