Microsoft DirectX 8.0 |
タイムラインからフィルタ グラフを構築することにより、Microsoft® DirectShow 編集サービス (DES) プロジェクトをレンダリングする。
DES では、タイムラインをレンダリングする 2 つのオブジェクトが提供されている。
アプリケーションでフィルタ グラフを作成してレンダリング エンジンに渡すこともできるが、通常の状況では、レンダリング エンジンにフィルタ グラフを作成させる。グラフの作成は、2 段階の処理で行われる。まず、ConnectFrontEnd メソッドを呼び出してフロント エンドを構築する。次に、フロント エンドの出力ピンを目的のレンダリング フィルタに接続する。
メソッド
Commit Visual Basic ではサポートされていない。 ConnectFrontEnd 現在のタイムラインからフィルタ グラフのフロント エンドを構築する。 Decommit Visual Basic ではサポートされていない。 DoSmartRecompression Visual Basic ではサポートされていない。 GetCaps Visual Basic ではサポートされていない。 GetFilterGraph レンダリング エンジンが構築したフィルタ グラフ (ある場合) を取得する。 GetGroupOutputPin 指定されたグループの出力ピンを取得する。 GetTimelineObject レンダリング エンジンが現在使用しているタイムラインを取得する。 GetVendorString ベンダー文字列を取得する。 RenderOutputPins フィルタ グラフのプレビュー部分を作成する。 SetDynamicReconnectLevel レンダリング時の動的再接続のレベルを設定する。 SetFilterGraph 使用するレンダリング エンジン用のフィルタ グラフを指定する。 SetInterestRange Visual Basic ではサポートされていない。 SetInterestRange2 Visual Basic ではサポートされていない。 SetRenderRange Visual Basic ではサポートされていない。 SetRenderRange2 タイムライン上の、レンダリングされる時間の範囲を設定する。 SetSourceConnectCallback Visual Basic ではサポートされていない。 SetSourceNameValidation レンダリング エンジンがファイル名を検証する方法を指定する。 SetTimelineObject 使用するレンダリング エンジン用のタイムラインを設定する。 ScrapIt レンダリング エンジンのフィルタ グラフおよび関連付けられているすべてのオブジェクトを破棄する。 UseInSmartRecompressionGraph Visual Basic ではサポートされていない。
Visual Basic ではサポートされていない。
構文
object.Commit()
現在のタイムラインからフィルタ グラフのフロント エンドを構築する。
構文
object.ConnectFrontEnd()
パラメータ
- object
- 結果が RenderEngine オブジェクトになるオブジェクト式。
エラー コード
メソッドでの処理が失敗するとエラーが発生し、Err.Number には次のいずれかの値が設定される場合がある。
E_INVALIDARG このレンダリング エンジンにはタイムラインが設定されていない。 E_MUST_INIT_RENDERER レンダリング エンジンが初期化に失敗した。 E_RENDER_ENGINE_IS_BROKEN プロジェクトが正しくレンダリングされなかったため、処理が失敗した。 E_UNEXPECTED 予期しないエラー。 VFW_E_INVALIDMEDIATYPE 無効なメディア タイプ。
注意
このメソッドは、フィルタ グラフのレンダリング部分を構築しない。アプリケーションでは、フロント エンドの出力ピンを目的のレンダリング フィルタに接続しなければならない。
- プレビューを行うには、RenderOutputPins メソッドを呼び出す。
- ファイルに出力するには、GetGroupOutputPin を呼び出してグループごとの出力ピンを取得してから、そのピンをマルチプレクサ フィルタに接続する。
RenderEngine オブジェクトを使っている場合は、フロント エンド上の出力ピンは非圧縮データを生成する。SmartRenderEngine オブジェクトを使っている場合は、出力ピンは圧縮データを出力する。
フィルタ グラフを構築した後でタイムラインを変更した場合は、ConnectFrontEnd をもう一度呼び出してフロント エンドを再構築しなければならない。このメソッドは、可能であればグラフのレンダリング部分を維持する。ただし、グループを追加または削除した場合、またはグループの順序を変更した場合は、ConnectFrontEnd はレンダリング部分を削除するため、アプリケーションでレンダリング部分を再構築しなければならない。
Visual Basic ではサポートされていない。
構文
object.Decommit()
Visual Basic ではサポートされていない。
構文
object.DoSmartRecompression()
Visual Basic ではサポートされていない。
構文
object.GetCaps( Index As Long, pReturn As Long )
レンダリング エンジンが構築したフィルタ グラフ (ある場合) を取得する。
構文
object.GetFilterGraph( ppFG As IGraphBuilder )
パラメータ
- object
- 結果が RenderEngine オブジェクトになるオブジェクト式。
- ppFG
- フィルタ グラフを受け取る FilgraphManager オブジェクト。
エラー コード
メソッドでの処理が失敗するとエラーが発生し、Err.Number には次の値が設定される場合がある。
E_MUST_INIT_RENDERER レンダリング エンジンが初期化に失敗した。
指定されたグループの出力ピンを取得する。
構文
object.GetGroupOutputPin( Group As Long, ppRenderPin As IPin )
パラメータ
- object
- 結果が RenderEngine オブジェクトになるオブジェクト式。
- Group
- グループを指定する、ゼロから始まるインデックス。
- ppRenderPin
- 出力ピンを受け取る IPin オブジェクト。
エラー コード
メソッドでの処理が失敗するとエラーが発生し、Err.Number には次のいずれかの値が設定される場合がある。
E_INVALIDARG 無効な引数。 E_MUST_INIT_RENDERER レンダリング エンジンが初期化に失敗した。 E_RENDER_ENGINE_IS_BROKEN プロジェクトが正しくレンダリングされなかったため、処理が失敗した。 E_UNEXPECTED 予期しないエラー。
注意
このメソッドを呼び出す前に、ConnectFrontEnd を呼び出してグラフのフロント エンドを構築する。各グループは単一のメディア ストリームを表し、フロント エンドには対応する出力ピンがある。
このメソッドを使用して、ファイル書き込みグラフのレンダリング部分を作成できる。出力ピンをマルチプレクサ フィルタおよびファイル ライタ フィルタに接続する。詳細については、「プロジェクトのレンダリング」を参照すること。
プレビューの場合は、このメソッドを呼び出す必要はない。単純に、ConnectFrontEnd の後に RenderOutputPins を呼び出せばよい。
レンダリング エンジンが現在使用しているタイムラインを取得する。
構文
object.GetTimelineObject( ppTimeline As AMTimeline )
パラメータ
- object
- 結果が RenderEngine オブジェクトになるオブジェクト式。
- ppTimeline
- タイムラインを受け取る AMTimeline オブジェクト。
エラー コード
メソッドでの処理が失敗するとエラーが発生し、Err.Number には次の値が設定される場合がある。
E_MUST_INIT_RENDERER レンダリング エンジンが初期化に失敗した。
ベンダー文字列を取得する。
構文
object.GetVendorString() As String
パラメータ
- object
- 結果が RenderEngine オブジェクトになるオブジェクト式。
戻り値
ベンダー名を含む文字列を返す。
エラー コード
メソッドでの処理が失敗すると、エラーが発生する。
フィルタ グラフのプレビュー部分を作成する。
構文
object.RenderOutputPins()
パラメータ
- object
- 結果が RenderEngine オブジェクトになるオブジェクト式。
エラー コード
メソッドでの処理が失敗するとエラーが発生し、Err.Number には次のいずれかの値が設定される場合がある。
E_INVALIDARG 無効な引数。 E_RENDER_ENGINE_IS_BROKEN プロジェクトが正しくレンダリングされなかったため、処理が失敗した。 E_UNEXPECTED 予期しないエラー。
注意
このメソッドを呼び出す前に、ConnectFrontEnd を呼び出してグラフのフロント エンドを構築する。プレビュー以外の処理を行う場合は、このメソッドを呼び出してはならない。代わりに、GetGroupOutputPin を呼び出して出力ピンへのポインタを取得する。
レンダリング エンジンのフィルタ グラフおよび関連付けられているすべてのオブジェクトを破棄する。
構文
object.ScrapIt()
パラメータ
- object
- 結果が RenderEngine オブジェクトになるオブジェクト式。
エラー コード
メソッドでの処理が失敗するとエラーが発生し、Err.Number には次の値が設定される場合がある。
E_MUST_INIT_RENDERER レンダリング エンジンが初期化に失敗した。
レンダリング時の動的再接続のレベルを設定する。
構文
object.SetDynamicReconnectLevel( Level As Long )
パラメータ
- object
- 結果が RenderEngine オブジェクトになるオブジェクト式。
- Level
- 0 個以上の動的再接続フラグのビットごとの組み合わせ。 動的再接続のレベルを指定する。
エラー コード
メソッドでの処理が失敗するとエラーが発生し、Err.Number には次の値が設定される場合がある。
E_NOTIMPL 実装されていない。
注意
デフォルトでは、RenderEngine オブジェクトはプロジェクトをレンダリングする前にすべてのソースをロードする。このため、起動時間が長くなることがある。動的再接続を使用すると、ソースは必要なときにのみロードされる。これによって起動時間は短くなるが、スムースな再生が妨げられることがある。一般に、プロジェクトで使用するソース クリップが多いほど、動的再接続を使用するメリットは大きい。
SmartRenderEngine オブジェクトは、このメソッドを実装していない。
使用するレンダリング エンジン用のフィルタ グラフを指定する。
構文
object.SetFilterGraph( pFG As IGraphBuilder )
パラメータ
- object
- 結果が RenderEngine オブジェクトになるオブジェクト式。
- pFG
- フィルタ グラフを指定する FilgraphManager オブジェクト。
エラー コード
メソッドでの処理が失敗するとエラーが発生し、Err.Number には次のいずれかの値が設定される場合がある。
E_INVALIDARG 無効な引数。 E_MUST_INIT_RENDERER レンダリング エンジンが初期化に失敗した。
注意
ほとんどのアプリケーションではこのメソッドを呼び出す必要はない。より一般的な方法は、ConnectFrontEnd メソッドを呼び出すことにより、レンダリング エンジンにグラフを構築させることである。
レンダリング エンジンに既にフィルタ グラフがある場合、このメソッドは失敗する。
レンダリング エンジンが作成したフィルタ グラフを取得し、それをパラメータとして別のレンダリング エンジンでこのメソッドを呼び出してはならない。それを行うと、予測できない結果になる。
Visual Basic ではサポートされていない。
構文
object.SetInterestRange( Start As <Unsupported variant type>, Stop As <Unsupported variant type> )
Visual Basic ではサポートされていない。
構文
object.SetInterestRange2( double Start As Double, double Stop As Double )
Visual Basic ではサポートされていない。
構文
object.SetRenderRange( Start As <Unsupported variant type>, Stop As <Unsupported variant type> )
タイムライン上の、レンダリングされる時間の範囲を設定する。指定された範囲の外にあるオブジェクトはレンダリングされず、それらに対してリソースは割り当てられない。
構文
object.SetRenderRange2( Start As Double, Stop As Double )
パラメータ
- object
- 結果が RenderEngine オブジェクトになるオブジェクト式。
- Start
- 開始タイム (秒単位)。
- Stop
- 終了タイム (秒単位)。
エラー コード
メソッドでの処理が失敗するとエラーが発生し、Err.Number には次の値が設定される場合がある。
E_MUST_INIT_RENDERER レンダリング エンジンが初期化に失敗した。
Visual Basic ではサポートされていない。
構文
object.SetSourceConnectCallback( pCallback As IGrfCache )
レンダリング エンジンがファイル名を検証する方法を指定する。
構文
object.SetSourceNameValidation( FilterString As String, pOverride As MediaLocator, Flags As Long )
パラメータ
- object
- 結果が RenderEngine オブジェクトになるオブジェクト式。
- FilterString
- Microsoft® Win32® の OPENFILENAME 構造体の lpstrFilter メンバで必要な書式に設定されたフィルタ文字列のペアを含む文字列。メディア ロケータは、[開く] ダイアログ ボックスを表示する場合に、このフィルタを使用する。
- pOverride
- 省略可能。デフォルトの代わりに使用する MediaLocator オブジェクト。デフォルトのメディア ロケータを使用する場合は、このパラメータを NULL に設定する。詳細については、「注意」を参照すること。
- Flags
- MediaLocator オブジェクトの動作を指定するフラグのビットごとの組み合わせ。SFN_VALIDATEF_CHECK フラグは、必ず設定されていなければならない。SFN_VALIDATEF_IGNOREMUTED フラグは、このメソッドでは意味を持たない。
エラー コード
メソッドでの処理が失敗するとエラーが発生し、Err.Number には次の値が設定される場合がある。
E_MUST_INIT_RENDERER レンダリング エンジンが初期化に失敗した。
注意
pOverride パラメータを使用すると、MediaLocator オブジェクトの独自のカスタム実装を使用できる。
現在、このメソッドは動的にロードされたソースを検証しない。詳細については、「SetDynamicReconnectLevel」を参照すること。
使用するレンダリング エンジン用のタイムラインを設定する。
構文
object.SetTimelineObject( pTimeline As AMTimeline )
パラメータ
- object
- 結果が RenderEngine オブジェクトになるオブジェクト式。
- pTimeline
- タイムラインを指定する AMTimeline オブジェクト。
エラー コード
メソッドでの処理が失敗するとエラーが発生し、Err.Number には次のいずれかの値が設定される場合がある。
E_MUST_INIT_RENDERER レンダリング エンジンが初期化に失敗した。 E_OUTOFMEMORY メモリ不足。
Visual Basic ではサポートされていない。
構文
object.UseInSmartRecompressionGraph()