IDvdGraphBuilder::RenderDvdVideoVolume
RenderDvdVideoVolume メソッドは、DVD-Video のボリューム再生に関するユーザー指定に従って、フィルタ グラフの作成を完了する。
構文
HRESULT RenderDvdVideoVolume(
LPCWSTR lpcwszPathName,
DWORD dwFlags,
AM_DVD_RENDERSTATUS *pStatus
);
パラメータ
lpcwszPathName
[in] 再生する DVD-Video ボリュームのパスへのポインタ。NULL も可。
dwFlags
[in] デコーダのタイプを示す AM_DVD_GRAPH_FLAGS 列挙のメンバ。デコーダのタイプには、ハードウェア、ソフトウェア、またはハードウェアとソフトウェアの混合があり、指定されたデコーダがフィルタ グラフに含まれる。デフォルト値は、最大ハードウェア デコード (AM_DVD_HWDEC_PREFER) である。
pStatus
[out] 取得した AM_DVD_RENDERSTATUS 構造体へのポインタ。障害があった場合は、その障害が構造体に示される。
戻り値
インターフェイスの実装に応じた HRESULT 値を返す。DirectShow の実装の戻り値には、次の値が含まれる。
戻りコード | 説明 |
E_INVALIDARG | dwFlags 引数が指定するオプションが競合している。または、pStatus のポインタが不良である。 |
S_FALSE | グラフは作成されたが、完全ではない。pStatus 引数に、問題の詳細が返される。 |
S_OK | 成功。再生グラフが正しく作成され、すべてのストリームがレンダリングされ、DVD-Video ボリュームが指定されたか、見つかった。 |
VFW_E_DVD_DECNOTENOUGH | AM_DVD_HWDEC_ONLY または AM_DVD_SWDEC_ONLY が指定されたが、ハードウェアまたはソフトウェアのデコーダが足りないために、すべてのストリームをデコードできない。 |
VFW_E_DVD_RENDERFAIL | グラフの作成中に、何らかの基本的なエラーが発生した。DVD ナビゲータ フィルタ、ビデオ レンダラ、またはオーディオ レンダラがインスタンス化されていない、接続やピン列挙が単に失敗した、またはストリームがレンダリングされない、などが原因として考えられる。 |
注意
AM_DVD_RENDERSTATUS 構造体は、このメソッドのエラー コードを表す。このメソッドが S_FALSE を返す原因には、次のものが含まれる。
- グラフは完全に作成されたが、次のいずれかの条件が該当する。
- オーバーレイ ミキシングが動作しない。アプリケーションは AM_DVD_NOVPE フラグを使っていないので、ビデオ ストリームをオーバーレイ ミキサに設定できない。この場合は、ビデオがソフトウェアでデコードされていれば、アプリケーションはユーザーに対して、ビデオが表示されないことを伝える情報を持つことができる。ハードウェア デコード ビデオは、ハードウェア ビデオ デコーダの NTSC 出力ポートに接続している TV 上でのみ表示される。
- ビデオ デコーダが Line 21 データを生成しない。アプリケーションでは、デコーダが原因でクローズド キャプションが利用できないことを伝える警告やメッセージを表示できる。
- ボリューム パスが指定されていないので、再生する DVD-Video ボリュームを DVD ナビゲータが検索できない。再生が開始するときに、ドライブに DVD-Video ディスクがセットされていない場合、アプリケーションはユーザーにディスクを挿入するように求めることができる。
- 一部のストリームがレンダリングされなかった、またはストリームがまったくレンダリングされなかった。ボリュームが部分的に再生できる。アプリケーションでは、ユーザーに対して、一部のストリームを再生できないことを伝えることができる。
このメソッドを使うと、DVD-Video ファイルや再生するボリュームを理解していなくても、グラフを作成できる。DVD-Video グラフ ビルダは、lpcwszPathName が NULL であったり、DVD ナビゲータ フィルタがデフォルトで再生する DVD-Video ボリュームを見つけることができなかった場合でも、グラフを作成できる。
参照