DX8 DirectShowをDualView環境で実行すると上手く動作しない

[戻る]
ドルチ 2005/03/11(金) 15:40:55
はじめまして
現在、DX8のDirectShowを使用してDVDを再生するプログラムを作成しているんですが
どうもグラフィックカードの設定環境によって上手く動作しないようで困っています。

プログラムを実行するPCをグラフィックカードの設定でDualViewに設定しているのですが
Primary画面(1個目のディスプレイ)の方では正しく動作するものの
Secondary画面(2個目にディスプレイ)ではDVDの再生が上手く動作しません。
(症状として画面の描画が行われない)

DirectGraphicsでも同じような症状(2個目のディスプレイで正しく動作しない)は
起きるのですがこちらはディスプレイごとにCreateDeviceする事で問題は解決できました。

DirectShowの場合もSecondary画面で正しく動作させるには
ディスプレイごとに何か設定など必要だったりするのでしょうか?
もし分かる方がいらっしゃればご教授よろしく御願いします。


DVD再生部分のソースはほんとに単純で基本的なものしか組んでいません。

void CAbsxView::ShowDvd() //DVD再生関数
{
 IDvdGraphBuilder *pDvdGraphBuilder;
 IGraphBuilder *pGraphBuilder;
 IMediaControl *pMediaControl;

 CoInitialize(NULL);

 CoCreateInstance(CLSID_DvdGraphBuilder,
    NULL,
    CLSCTX_INPROC_SERVER,
    IID_IDvdGraphBuilder,
    (LPVOID *)&pDvdGraphBuilder);

 AM_DVD_RENDERSTATUS stat;
 pDvdGraphBuilder->RenderDvdVideoVolume(NULL, AM_DVD_HWDEC_PREFER, &stat);

 pDvdGraphBuilder->GetFiltergraph(&pGraphBuilder);

 pGraphBuilder->QueryInterface(IID_IMediaControl, (LPVOID *)&pMediaControl);


 g_pSeek->GetAvailable(&g_Current,&g_Stop);

 pMediaControl->Run();
 
 MessageBox("再生中", "dvd test", MB_OK);

 pMediaControl->Stop();

 pMediaControl->Release();
 pGraphBuilder->Release();
 pDvdGraphBuilder->Release();

 CoUninitialize();

}


開発環境はWin2k VC6.0 DX8
グラフィックカードはnVIDIA GFroceFX5700を使用しています。

ボコノン教徒 2005/03/14(月) 17:28:13
Secondary画面に描画用Windowを作成して、それをIVideoWindow::put_Owner()で
親Windowに指定してみる、とか。

古いスレッドには追加発言できません。