IMFASFIndexer::GetSeekPositionForValue メソッド (wmcontainer.h)
必要なシーク時間を指定すると、クライアントがデータの読み取りを開始するオフセットを取得します。
構文
HRESULT GetSeekPositionForValue(
[in] const PROPVARIANT *pvarValue,
[in] ASF_INDEX_IDENTIFIER *pIndexIdentifier,
[out] QWORD *pcbOffsetWithinData,
[out] MFTIME *phnsApproxTime,
[out] DWORD *pdwPayloadNumberOfStreamWithinPacket
);
パラメーター
[in] pvarValue
位置を取得するインデックス エントリの値。 この値の形式は、インデックス識別子で指定されるインデックスの種類によって異なります。 時間ベースのインデックス作成の場合、バリアント型は VT_I8 され、値は 100 ナノ秒単位で目的のシーク時間になります。
[in] pIndexIdentifier
ストリーム番号とインデックスの種類を識別する ASF_INDEX_IDENTIFIER 構造体へのポインター。
[out] pcbOffsetWithinData
ASF データ オブジェクトのデータ セグメント内のオフセットを受け取ります。 オフセットはバイト単位で、パケット 0 の開始を基準にしています。 オフセットは、クライアントがストリームからの読み取りを開始する開始位置を示します。 この場所は、要求されたシーク時間と正確に一致しない場合があります。
逆再生の場合、目的のシーク位置の後にキー フレームが存在しない場合、このパラメーターは MFASFINDEXER_READ_FOR_REVERSEPLAYBACK_OUTOFDATASEGMENT値を受け取ります。 その場合、シーク位置は、データ セグメントの末尾を 1 バイトパスする必要があります。
[out] phnsApproxTime
pcbOffsetWithinData パラメーターで返されるオフセットにあるデータのおおよそのタイム スタンプを受け取ります。 この値の精度は、ASF インデックスのインデックス作成間隔 (通常は約 1 秒) と等しくなります。
- pIndexIdentifier で指定されたインデックスの種類がGUID_NULL (時間インデックス作成) の場合、このパラメーターは NULL にすることができます。
- 他のすべてのインデックスの種類では、このパラメーターは NULL である必要があります。
[out] pdwPayloadNumberOfStreamWithinPacket
指定したストリームの情報を含むペイロードのペイロード番号を受け取ります。 パケットには複数のペイロードを含めることができます。それぞれに、異なるストリームのデータが含まれています。 このパラメーターは、NULL でもかまいません。
戻り値
このメソッドは HRESULT を返します。 有効な値を次の表に示しますが、これ以外にもあります。
リターン コード | 説明 |
---|---|
|
メソッドが成功しました。 |
|
要求されたシーク時間が範囲外です。 |
|
指定したストリームに対して、指定した型のインデックスが存在しません。 |
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows Vista [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows Server 2008 [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | wmcontainer.h |
Library | Mfuuid.lib |