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 ボリュームを見つけることができなかった場合でも、グラフを作成できる。

参照