IMFSeekInfo::GetNearestKeyFrames メソッド (mfidl.h)

特定のシーク位置の場合は、最も近い 2 つのキー フレームを取得します。

構文

HRESULT GetNearestKeyFrames(
  [in]  const GUID        *pguidTimeFormat,
  [in]  const PROPVARIANT *pvarStartPosition,
  [out] PROPVARIANT       *pvarPreviousKeyFrame,
  [out] PROPVARIANT       *pvarNextKeyFrame
);

パラメーター

[in] pguidTimeFormat

時刻形式を指定する GUID へのポインター。 時刻形式は、このメソッドの他のパラメーターの単位を定義します。 値が GUID_NULLの場合、時間形式は 100 ナノ秒単位です。 一部のメディア ソースでは、追加の時間形式 GUID がサポートされる場合があります。

[in] pvarStartPosition

シーク位置。 このパラメーターの単位は pguidTimeFormat で指定します。

[out] pvarPreviousKeyFrame

pvarStartPosition より前に表示される最も近いキー フレームの位置を受け取ります。 このパラメーターの単位は pguidTimeFormat で指定します。

[out] pvarNextKeyFrame

pvarStartPosition より後に表示される最も近いキー フレームの位置を受け取ります。 このパラメーターの単位は pguidTimeFormat で指定します。

戻り値

このメソッドは、これらの値のいずれかを返すことができます。

リターン コード 説明
S_OK
メソッドが成功しました。
MF_E_UNSUPPORTED_TIME_FORMAT
pguidTimeFormat で指定された時刻形式はサポートされていません。

解説

アプリケーションが非キー フレームをシークする場合、デコーダーは前のキー フレームからのデコードを開始する必要があります。 これにより、要求されたフレームに到達する前に複数のフレームがデコードされる可能性があるため、待機時間が長くなる可能性があります。 待機時間を短縮するために、アプリケーションはこのメソッドを呼び出して、目的の時間に最も近い 2 つのキー フレームを検索し、それらのキー フレームのいずれかにシークします。

要件

   
サポートされている最小のクライアント Windows 8 [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows Server 2012 [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー mfidl.h

関連項目

IMFSeekInfo