DrawGraph()による動画再生についてなのですが、
スレッドに時々貼られている修正版ライブラリを使用すると
DrawGraph()で動画を再生すると格子のように乱れた
動画になってしまいます。
( PlayMovie()では問題ありません。 )
トップからDLできる 2.25では問題なく再生できます。
グラフィックドライバは最新のものに入れ替えてあります。
ソースは以下のような感じで数パターン試してみました。
----------------------------------------------------------
int MHandle ;
// MHandle = LoadGraph( "sora3_mpeg1.mpg" ) ; // 再エンコードした動画
// MHandle = LoadGraph( "AQ_OP800_H.mpg" ) ; // 市販ゲームの動画
// PlayMovieToGraph( MHandle ) ;
PlayMovie( "sora3_mpeg1.mpg", 1, DX_MOVIEPLAYTYPE_BCANCEL ) ;
/*////////////////////////////////////////////////////////////////
メインループ
*/////////////////////////////////////////////////////////////////
while( ProcessMessage() == 0 )
{
// DrawGraph( 0, 0, MHandle, FALSE ) ;
// スクリーンに反映
ScreenFlip() ;
WaitTimer(16) ;
} /*/// while 閉じ ///*/
使用環境は以下のような感じです。
----------------------------------------------------------
Operating System: Windows XP Professional (5.1, Build 2600) Service Pack 3 (2600.xpsp_sp3_gdr.080814-1236)
Processor: Intel(R) Core(TM)2 CPU 6600 @ 2.40GHz (2 CPUs)
Memory: 2816MB RAM
Page File: 593MB used, 4109MB available
DirectX Version: DirectX 9.0c (4.09.0000.0904)
DxDiag Version: 5.03.2600.5512 32bit Unicode
Card name: NVIDIA GeForce 7600 GT
Display Memory: 256.0 MB
Current Mode: 1024 x 768 (32 bit) (75Hz)
Driver Name: nv4_disp.dll
Driver Version: 6.14.0011.8206 (English)
----------------------------------------------------------
DrawGraph()で動画が乱れた状況のログ。
----------------------------------------------------------
1:システムの情報を出力します
1: DXライブラリ Ver2.25b
1: OS WindowsXP ( Build 2600 Service Pack 3 )
102: CPU動作速度:大体2.39GHz
102: MMX命令を使用します
103: SSE命令が使用可能です
103: SSE2命令が使用可能です
103: CPUベンダ:GenuineIntel
105: CPU名:Intel(R) Core(TM)2 CPU 6600 @ 2.40GHz
105:COMの初期化... 成功しました
118:メモリ総量:2048.00MB 空きメモリ領域:2048.00MB
119:タイマーの精度を検査します
119:精度結果 更新回数 マルチメディアタイマー:0 パフォーマンスカウンター:60
119: パフォーマンスカウンターを使用します タイマー分解能 : 2400030.000000 KHz
120: ソフトの二重起動検査... 二重起動はされていませんでした
121:ウインドウクラスを登録します... 登録に成功しました
122:ウインドウモード起動用のウインドウを作成します
126:ウインドウの作成に成功しました
156:IMEを無効にしました
356:ウインドウスタイルをウインドウモード用に変更します... 完了
357:DirectInput関係初期化処理
357: DirectInput7 の取得中... 成功
363: 引き続き初期化処理... 初期化成功
364: ジョイパッドの初期化...
367: 入力装置を見つけました
369: デバイスの登録名:JC-PS102U
369: デバイスの製品登録名:JC-PS102U
370: 周期的エフェクトの作成に失敗しました。
372: ジョイパッドの追加は正常に終了しました
373: ジョイパッドの初期化は正常に終了しました
373: マウスデバイスの初期化... 初期化成功
373: キーボードデバイスの初期化... 初期化成功
374:DirectInput 関連の初期化は正常に終了しました
375:DirectSound の初期化を行います
375:DirectSound インターフェースの取得を行います.... 成功
376:引き続きインターフェースの初期化処理... 成功
448: DirectSound デバイスを列挙します
450: モジュール名: ドライバ記述:プライマリ サウンド ドライバ
450: モジュール名: ctaud2k.sys ドライバ記述:SB X-Fi Audio [BC00]
450: 最大サンプリングレート:192.00KHz 最小サンプリングレート:0.00KHz
450: 総サウンドメモリ領域:0.00KB 空きサウンドメモリ領域:0.00KB
451: 利用可能サンプリング精度
451: プライマリ 16bit = OK 8bit = OK
451: セカンダリ 16bit = OK 8bit = OK
451: 利用可能チャンネル
452: プライマリ MONO = OK STEREO = OK
452: セカンダリ MONO = OK STEREO = OK
452:DirectSound の初期化は正常に終了しました
452:DirectDraw 関連の初期化を行います
453: DirectDraw オブジェクトの取得を行います.... 成功
454: 引き続き初期化処理... 初期化に成功しました
456: ビデオカードの情報
457: 画面モード変更処理を開始します
518: 画面モードの変更処理を開始します 800 x 600 32 bit
518: ウインドウモードにします
518: 画面モードの変更は正常に終了しました
519: カラー情報
519: A:00000000 B:00ff0000 G:0000ff00 B:000000ff
519: ウインドウスタイルをウインドウモード用に変更します... 完了
520: 出力画面用の DirectDrawSurface を作成します
564: 各スクリーンメモリの配置位置
564: PrimaryBuffer : VIDEOMEMORY
564: BaskBuffer : VIDEOMEMORY
565: 出力画面用の DirectDrawSurface の作成は正常に終了しました
565: Direct3D 関連の初期化を行います
565: Direct3Dオブジェクトを取得します
566: Direct3Dオブジェクトを取得しました
566: HALデバイスを発見しました
567: ハードウエアT&Lデバイスを発見しました
567: 3Dデバイスを作成します... 3Dデバイスの作成に成功しました
574: テクスチャ最大幅:4096 最小幅:1
574: 描画制限: D_D3DPTEXTURECAPS_POW2 = 0 D_D3DPTEXTURECAPS_SQUAREONLY = 0
574: 最大テクスチャステージ数 = 8 最大テクスチャブレンド数 = 8
574: テクスチャピクセルフォーマット
575: 通常グラフィック用
575: BIT:16 RED:5 GREEN:5 BLUE:5
575: RED:007c00 GREEN:0003e0 BLUE:00001f
575: BIT:32 RED:8 GREEN:8 BLUE:8
576: RED:ff0000 GREEN:00ff00 BLUE:0000ff
576: アルファチャンネル付きグラフィック用
576: BIT:16 ALPHA:4 RED:4 GREEN:4 BLUE:4
576: ALPHA:0000f000 RED:00000f00 GREEN:000000f0 BLUE:0000000f
577: BIT:32 ALPHA:8 RED:8 GREEN:8 BLUE:8
577: ALPHA:ff000000 RED:00ff0000 GREEN:0000ff00 BLUE:000000ff
577: Direct3D 関連の初期化は正常に終了しました
577: グラフィック管理系の初期化を行います
578: 3Dグラフィック描画機能を使用します
578: フォントの初期化を行います
580: フォントの初期化は正常に終了しました
580: グラフィック管理系の初期化は正常に終了しました
585: サーフェス間転送には BltFast を使用します
585: BitBlt:1182μs BltFast:1003μs
586: スキャンラインの数:768
688: 1フレーム当たりの時間は 14 msecです
688: Tri00:14 msec
689: Tri01:13 msec
689: Tri02:13 msec
689: Tri03:14 msec
689: 画面モード変更処理は正常に終了しました
705: オーバーレイサーフェスを使用します UYVY
706: DirectDraw 関連の初期化は正常に終了しました
708: 文字コードバッファの初期化を行います... 完了しました
8912: ウインドウを閉じようとしています
8916: ウインドウが破棄されようとしています
8916: ソフトを終了する準備が整いました
8928: DirectDraw 関連の終了処理をおこないます
8948: フォントの初期化を行います
8950: フォントの初期化は正常に終了しました
8950: グラフィック管理系の終了処理は正常に終了しました
8950: Direct3D 関連の終了処理を行います
8952: 3Dデバイスの削除は正常に終了しました
8953: Direct3D 関連の終了処理は正常に終了しました
8953: メインサーフェスを破棄をします... 完了しました
8955: DirectDrawオブジェクトを解放します
8955: DirectDrawオブジェクトを解放しました
8955: DirectDraw 関連の終了処理は正常に終了しました
8955: DirectInput 関連の終了処理... 完了
8966: DirectSound の終了処理は正常に終了しました
8969:
8969: Alloc memory dump Total size:0(0.000kb) Alloc num:0
8970:
もう打つ手が無いのでどうかよろしくお願いします。