Microsoft DirectX 8.0

IAMGraphStreams インターフェイス

このインターフェイスは、ライブ ソースをレンダリングするフィルタ グラフの、動作を制御するメソッドを備えている。ライブ ソースとは、キャプチャ デバイスやネットワーク ブロードキャストのように、リアルタイムでデータをストリームするものである。フィルタ グラフ マネージャは、このインターフェイスを実装している。

アプリケーションではこのインターフェイスのメソッドを呼び出すことによって、ライブ ソースをレンダリングする際の遅延時間と同期化を、グラフが処理する方法を指定できる。詳細については、「ライブ ソース」を参照すること。

vtable 順のメソッド

IUnknown メソッド説明
QueryInterfaceサポートされているインターフェイスへのポインタを取得する。
AddRef参照カウントをインクリメントする。
Release参照カウントをデクリメントする。
IAMGraphStreams メソッド説明
FindUpstreamInterface指定のピンからアップストリーム方向に、指定のインターフェイスをサポートするピンまたはフィルタを検索する。
SyncUsingStreamOffsetタイム スタンプ オフセットを使用して同期化を有効または無効にする。
SetMaxGraphLatencyグラフの最大遅延時間を設定する。

IAMGraphStreams::FindUpstreamInterface

IAMGraphStreams インターフェイス

指定のピンからアップストリーム方向に、指定のインターフェイスをサポートするピンまたはフィルタを検索する。

構文

HRESULT FindUpstreamInterface(
    IPin *pPin,
    REFIID riid,
    void **ppvInterface,
    DWORD dwFlags 
);

パラメータ

pPin
[in] 検索を開始するピンの IPin インターフェイスへのポインタ。
riid
[in] 検索するインターフェイスの参照識別子。
ppvInterface
[out, iid_is(riid)] void 型ポインタのアドレス。メソッドが成功した場合、この変数は riid で指定されるインターフェイスへのポインタを受け取る。
dwFlags
[in] AM_INTF_SEARCH_FLAGS 列挙型で定義されるフラグの組み合わせ。検索対象 (ピンまたはフィルタ) を指定する。

戻り値

次のいずれかの HRESULT 値を返す。

E_NOINTERFACEインターフェイスが見つからない。
E_POINTER無効なポインタ。
S_OK成功。

IAMGraphStreams::SetMaxGraphLatency

IAMGraphStreams インターフェイス

グラフの最大遅延時間を設定する。このメソッドを呼び出す前に、SyncUsingStreamOffset メソッドを呼び出す必要がある。

構文

HRESULT SetMaxGraphLatency( 
    REFERENCE_TIME rtMaxGraphLatency 
);

パラメータ

rtMaxGraphLatency
[in] 最大遅延時間を指定する基準タイム。

戻り値

成功した場合は、S_OK を返す。SyncUsingStreamOffset が呼び出されていない場合は、E_FAIL を返す。それ以外の場合は、別の HRESULT 値を返す。

注意

ライブ ソース フィルタによっては、接続時に、最大遅延時間を使用して、割り当てるバッファのサイズを確認する。グラフを作成する前にこのメソッドを呼び出すことによって、予期される遅延時間に対して十分なバッファが割り当てられていることを確認できる。

IAMGraphStreams::SyncUsingStreamOffset

IAMGraphStreams インターフェイス

タイム スタンプ オフセットを使用して、同期化を有効または無効にする。

構文

HRESULT SyncUsingStreamOffset( 
    BOOL bUseStreamOffset 
);

パラメータ

bUseStreamOffset
[in] タイム スタンプ オフセットを使用するかどうかを示すブール値。TRUE を指定すると、ライブ ソースはタイム スタンプ オフセットを使用してストリームの同期をとる。

戻り値

インターフェイスの実装に応じた HRESULT 値を返す。

注意

デフォルトでは、フィルタ グラフが、タイム スタンプ オフセットを使用してライブ ストリームの同期化を試みることはない。フィルタ グラフに対して、グラフ内の最大遅延時間を調べ、それに従ってタイム スタンプを調整することを求める場合は、TRUE の値を指定してこのメソッドを呼び出す。詳細については、「IAMPushSource::SetStreamOffset」を参照すること。