次の方法で共有


KSPROPERTY_STREAM_PRESENTATIONTIME

KSPROPERTY_STREAM_PRESENTATIONTIME プロパティは、フィルター ピンの現在のプレゼンテーション時刻を取得および設定するときに使用します。

使用方法概要表

取得 設定 対象 プロパティ記述子の種類 プロパティ値の種類

はい

はい

ピン

KSPROPERTY

KSTIME

備考

KSPROPERTY_STREAM_PRESENTATIONTIME は、ピンが位置情報を保持する場合や、トポロジ関連のピンで異なるタイム スタンプ形式の異なるインターフェイスを使用する場合に実装する必要がある省略可能なプロパティです。 したがって、シーク プレゼンテーション時刻が発生すると、タイムスタンプを変換する必要があります。

フィルター ピンのプレゼンテーション時刻は、使用されるインターフェイスに依存する解釈を持つ KSTIME 構造体として指定されます。 標準ストリーミング インターフェイスの場合、フィルターが現在処理しているか、処理しようとしているストリームの表示位置を表す時間は 100 ナノ秒単位で指定されます (分子と分母で指定しない場合)。 これがレンダリング フィルターである場合、この位置は現在レンダリングされているデータを表します。 この位置情報は、マスター クロックのプレゼンテーション時刻と同期されます。 通常、プレゼンテーション時刻は 0 から始まり、ファイル データとの時刻オフセットを表す場合があります。 分子と分母を使用して、インターフェイスで適用されるブロックの配置を指定できます。

このプロパティは、シーク要求の伝達中に位置指定値を変換するときにも使用されます。 1 つのピンのシーク位置の値は、フィルター内でトポロジ関連のピンのプレゼンテーション時刻に変換されます。 クライアントは、シークするためにこのプロパティを新しいストリーム位置に設定します。 これは通常、未処理の I/O をキャンセルしてデバイスの状態をリセットした後にシークが必要な場合にプロキシによって呼び出されます。 リセットが実行されていない場合は、フィルターを自動的にキャンセルして適切にリセットする必要がある場合があります。 このプロパティには、接続で使用されるインターフェイスと一致する単位で新しいストリーム位置を含む KSTIME が渡されます。

クライアント (DirectShow プロキシなど) がシーク要求を 1 つの接続に書き込んだ後、他のトポロジ関連の接続に対してプレゼンテーション時刻のクエリを実行します。 読み取り要求が成功した他の接続では、プロキシはその接続のもう一方の端に結果の位置を渡します。 この方法では、クライアントによって渡される初期単位形式以外の単位形式がわかっていない場合でも、シーク位置が (たとえば DirectShow グラフ全体に) 伝達されます。 位置情報がフィルター内のトポロジを通じて伝達される際、変換がフィルター内で行われます。 このラウンドアバウト方式は、使用するインターフェイスに応じて通信方法がグラフ内のさまざまなフィルター間で制限される可能性があるために使用されます。 新しいシーク位置を設定する場合は、分子/分母ペアをピンに許容できる必要があります。

要件

ヘッダー

Ks.h (Ks.h を含む)

関連項目

KSTIME

KSPROPERTY