IRenderEngine インターフェイス
IRenderEngine インターフェイスは、タイムラインからフィルタ グラフを作成することにより、DirectShow 編集サービス (DES) プロジェクトをレンダリングする。
DES は、このインターフェイスを実装する 2 つのコンポーネントを提供している。
- "基本レンダリング エンジン" は、圧縮されていない出力を生成する。この出力は、プレビューに使え、また圧縮フィルタを経由して最終出力ファイルの書き込みにも使える。
- "スマート レンダリング エンジン" は、スマート再圧縮を使って圧縮された出力を生成する。スマート再圧縮を使うと、ソース ファイルのフォーマットが出力フォーマットと異なる場合にのみ、ソース ファイルが再圧縮される。ソースのフォーマットが一致している場合は、出力ファイルに直接書き込まれる。状況によっては、スマート再圧縮を使うことでレンダリング時間を大幅に改善できる。
スマート レンダリング エンジンは、ISmartRenderEngine インターフェイスもサポートしている。
アプリケーションでフィルタ グラフを作成してレンダリング エンジンに渡すことはできるが、通常の状況では、レンダリング エンジンにフィルタ グラフを作成させる。グラフの作成は、2 段階の処理で行われる。まず、IRenderEngine::ConnectFrontEnd メソッドを呼び出してフロント エンドを作成する。次に、フロント エンドの出力ピンを目的のレンダリング フィルタに接続する。
- プレビュー用のビデオ レンダラおよびオーディオ レンダラ、または
- コンプレッサ、マルチプレクサ、最終出力を生成するファイル ライタ。
IUnknown から継承したメソッドに加えて、IRenderEngine インターフェイスは次のメソッドを公開する。
メソッド | 説明 |
Commit | 実装されていない。 |
ConnectFrontEnd | 現在のタイムラインからフィルタ グラフのフロント エンドを作成する。 |
Decommit | 実装されていない。 |
DoSmartRecompression | サポートされていない。 |
GetCaps | 実装されていない。 |
GetFilterGraph | レンダリング エンジンが作成したフィルタ グラフ (ある場合) を取得する。 |
GetGroupOutputPin | 指定されたグループの出力ピンを取得する。 |
GetTimelineObject | レンダリング エンジンが現在使っているタイムラインを取得する。 |
GetVendorString | ベンダー文字列を取得する。 |
RenderOutputPins | フィルタ グラフのプレビュー部分を作成する。 |
ScrapIt | レンダリング エンジンのフィルタ グラフおよび関連付けられているすべてのオブジェクトを破棄する。 |
SetDynamicReconnectLevel | レンダリング時の動的再接続のレベルを設定する。 |
SetFilterGraph | 使うレンダリング エンジン用のフィルタ グラフを指定する。 |
SetInterestRange | サポートされていない。 |
SetInterestRange2 | サポートされていない。 |
SetRenderRange | レンダリングされる時間の範囲を設定する。 |
SetRenderRange2 | レンダリングされる時間の範囲を double 型で設定する。 |
SetSourceConnectCallback | サポートされていない。 |
SetSourceNameValidation | レンダリング エンジンがファイル名を検証する方法を指定する。 |
SetTimelineObject | 使うレンダリング エンジン用のタイムラインを設定する。 |
UseInSmartRecompressionGraph | サポートされていない。 |
要件
ヘッダー : Qedit.h をインクルードする。このヘッダー ファイルは、バージョン 7 以降の Microsoft® Direct3D® のヘッダーとは互換性がない。
ライブラリ : strmiids.lib を使用。
参照