トップページ > 過去ログ > 記事閲覧
ムービーが解放されない
名前:sen 日時: 2009/01/20 18:29

ムービーを再生して終了するとメモリが解放されずに終了してしまいます。 何か解決方法が有れば、ご教授願います。宜しく、お願い致します。 Log.txtの内容を下記に貼り付けます。 0:システムの情報を出力します 0: DXライブラリ Ver2.25b 0: OS WindowsXP ( Build 2600 Service Pack 3 ) 100: CPU動作速度:大体2.12GHz 100: MMX命令を使用します 100: SSE命令が使用可能です 101: SSE2命令が使用可能です 101: CPUベンダ:GenuineIntel 102: CPU名:Intel(R) Core(TM)2 Duo CPU E8400 @ 3.00GHz 102:COMの初期化... 成功しました 104:メモリ総量:2048.00MB 空きメモリ領域:2048.00MB 104:タイマーの精度を検査します 105:精度結果 更新回数 マルチメディアタイマー:0 パフォーマンスカウンター:60 105: パフォーマンスカウンターを使用します タイマー分解能 : 2997810.000000 KHz 105: ソフトの二重起動検査... 二重起動はされていませんでした 106:ウインドウクラスを登録します... 登録に成功しました 107:ウインドウモード起動用のウインドウを作成します 119:IMEを無効にしました 320:ウインドウスタイルをウインドウモード用に変更します... 完了 320:DirectInput関係初期化処理 321: DirectInput7 の取得中... 成功 326: 引き続き初期化処理... 初期化成功 327: ジョイパッドの初期化... 331: 入力装置を見つけました 332: デバイスの登録名:USB 2A12K GamePad 332: デバイスの製品登録名:USB 2A12K GamePad 332: 周期的エフェクトの作成に失敗しました。 333: ジョイパッドの追加は正常に終了しました 333: ジョイパッドの初期化は正常に終了しました 333: マウスデバイスの初期化... 初期化成功 333: キーボードデバイスの初期化... 初期化成功 334:DirectInput 関連の初期化は正常に終了しました 334:DirectSound の初期化を行います 334:DirectSound インターフェースの取得を行います.... 成功 336:引き続きインターフェースの初期化処理... 成功 365: DirectSound デバイスを列挙します 366: モジュール名: ドライバ記述:プライマリ サウンド ドライバ 366: モジュール名: RtkHDAud.sys ドライバ記述:Realtek HD Audio output 367: 最大サンプリングレート:192.00KHz 最小サンプリングレート:8.00KHz 367: 総サウンドメモリ領域:0.00KB 空きサウンドメモリ領域:0.00KB 367: 利用可能サンプリング精度 368: プライマリ 16bit = OK 8bit = OK 368: セカンダリ 16bit = OK 8bit = OK 368: 利用可能チャンネル 368: プライマリ MONO = OK STEREO = OK 369: セカンダリ MONO = OK STEREO = OK 369:DirectSound の初期化は正常に終了しました 369:DirectDraw 関連の初期化を行います 369: DirectDraw オブジェクトの取得を行います.... 成功 371: 引き続き初期化処理... 初期化に成功しました 372: ビデオカードの情報 372: 画面モード変更処理を開始します 432: 画面モードの変更処理を開始します 1024 x 576 32 bit 432: ウインドウモードにします 432: 画面モードの変更は正常に終了しました 433: カラー情報 433: A:00000000 B:00ff0000 G:0000ff00 B:000000ff 433: ウインドウスタイルをウインドウモード用に変更します... 完了 434: 出力画面用の DirectDrawSurface を作成します 458: Zバッファの作成に失敗しました 458: 各スクリーンメモリの配置位置 458: PrimaryBuffer : VIDEOMEMORY 458: BaskBuffer : VIDEOMEMORY 458: 出力画面用の DirectDrawSurface の作成は正常に終了しました 458: Direct3D 関連の初期化を行います 459: Direct3Dオブジェクトを取得します 459: Direct3Dオブジェクトを取得しました 460: HALデバイスを発見しました 460: ハードウエアT&Lデバイスを発見しました 460: 3Dデバイスを作成します... 3Dデバイスの作成に成功しました 477: テクスチャ最大幅:8192 最小幅:1 477: 描画制限: D_D3DPTEXTURECAPS_POW2 = 0 D_D3DPTEXTURECAPS_SQUAREONLY = 0 478: 最大テクスチャステージ数 = 8 最大テクスチャブレンド数 = 8 478: テクスチャピクセルフォーマット 478: 通常グラフィック用 478: BIT:16 RED:5 GREEN:5 BLUE:5 479: RED:007c00 GREEN:0003e0 BLUE:00001f 479: BIT:32 RED:8 GREEN:8 BLUE:8 479: RED:ff0000 GREEN:00ff00 BLUE:0000ff 479: アルファチャンネル付きグラフィック用 480: BIT:16 ALPHA:4 RED:4 GREEN:4 BLUE:4 480: ALPHA:0000f000 RED:00000f00 GREEN:000000f0 BLUE:0000000f 480: BIT:32 ALPHA:8 RED:8 GREEN:8 BLUE:8 480: ALPHA:ff000000 RED:00ff0000 GREEN:0000ff00 BLUE:000000ff 481: Direct3D 関連の初期化は正常に終了しました 481: グラフィック管理系の初期化を行います 481: 3Dグラフィック描画機能を使用します 482: フォントの初期化を行います 483: フォントの初期化は正常に終了しました 483: グラフィック管理系の初期化は正常に終了しました 512: サーフェス間転送には BltFast を使用します 512: BitBlt:14900μs BltFast:12695μs 513: スキャンラインの数:1024 635: 1フレーム当たりの時間は 16 msecです 636: Tri00:16 msec 636: Tri01:17 msec 636: Tri02:17 msec 636: Tri03:16 msec 637: 画面モード変更処理は正常に終了しました 657: オーバーレイサーフェスを使用します    UYVY 658: DirectDraw 関連の初期化は正常に終了しました 659: 文字コードバッファの初期化を行います... 完了しました 3873: 3873: //************************************************** 3873: 終了します。また遊んでね! 3874: べ…別に私が遊びたいわけじゃないんだから! 3874: あんたが遊びたいなら、つき合ってあげてもいいってだけよ! 3874: //************************************************** 3874: 3875: DirectDraw 関連の終了処理をおこないます 3875: フォントの初期化を行います 3875: フォントの初期化は正常に終了しました 3876: グラフィック管理系の終了処理は正常に終了しました 3876: Direct3D 関連の終了処理を行います 3877: 3Dデバイスの削除は正常に終了しました 3878: Direct3D 関連の終了処理は正常に終了しました 3878: メインサーフェスを破棄をします... 完了しました 3880: DirectDrawオブジェクトを解放します 3880: DirectDrawオブジェクトを解放しました 3880: DirectDraw 関連の終了処理は正常に終了しました 3880: DirectInput 関連の終了処理... 完了 3882: DirectSound の終了処理は正常に終了しました 3883: ウインドウを閉じようとしています 3884: ウインドウが破棄されようとしています 3885: ソフトを終了する準備が整いました 4877: 4877: Alloc memory dump size:348(0.340kb) file:DxLib\DxWin.cpp line:15896 ID:88 addr:001c2db0 data:<.D..............> [14 44 00 00 00 00 00 00 00 00 00 00 00 00 00 00] 4878: size:56(0.055kb) file:\DxArchive_.cpp line:2156 ID:81 addr:00165320 data:<.....-..........> [00 00 00 00 b0 2d 1c 00 00 00 00 00 00 00 00 00] 4878: Total size:404(0.395kb) Alloc num:2 4878:

Page: 1 |

Re: ムービーが解放されない ( No.1 )
名前:管理人 日時:2009/02/01 19:07

ご報告ありがとうございます 修正版をアップしましたので、宜しければお使い下さい m(_ _)m http://homepage2.nifty.com/natupaji/DxLib/DxLibVCTest.exe //VC用 http://homepage2.nifty.com/natupaji/DxLib/DxLibBCCTest.exe //BCC用 (中身を既存のライブラリのファイルに上書きして、BCCをお使いの 場合は『再構築』、VCをお使いの場合は『リビルド』をして下さい)
Re: ムービーが解放されない ( No.2 )
名前:sen 日時:2009/02/02 13:14

対応、ありがとうございます。 解放されないと言う問題は解決しましたが、今度は読込速度が異常に長くなってしまいました。 現状、ゲーム内に組み込むには難があります。 読込速度を速くする方法はあるのでしょうか?
Re: ムービーが解放されない ( No.3 )
名前:管理人 日時:2009/02/03 22:49

読込速度が長くなったというのは動画を LoadGraph でオープンするときに掛かる時間が 長くなったということでしょうか? もしそうでしたら動画をテクスチャに転送する時間を短くするために高速な転送が可能な サーフェスフォーマットを検索する処理を最近加えたことが原因かもしれません 一度高速な転送が可能なサーフェスフォーマットが見つかったら、それ以降に検索処理を しないようにしてみました http://homepage2.nifty.com/natupaji/DxLib/DxLibVCTest.exe //VC用 http://homepage2.nifty.com/natupaji/DxLib/DxLibBCCTest.exe //BCC用 (中身を既存のライブラリのファイルに上書きして、BCCをお使いの 場合は『再構築』、VCをお使いの場合は『リビルド』をして下さい) 予想通りの効果が現れても一番最初の読み込みだけは遅いままですが・・・ 実用に耐えるかどうか宜しければお試しになってみてください m(_ _;m
Re: ムービーが解放されない ( No.4 )
名前:sen 日時:2009/02/05 12:28

対応、ありがとうございます。 説明が不足していまして、申し訳有りませんでした。 おかげ様で読込速度の方、向上しました。 ですが、やはり最初の読込だけ時間が掛かるみたいです。 例えば 1、最初に1秒位の短いムービーを読み込んでおく   実際には再生しない   1秒位なので読込時間は掛からないはず 2、高速な転送が可能なサーフェスフォーマットを発見する 3、以降のムービー読込時間は掛からない みたいな処理でなんとか解決出来ないでしょうか? 他にもっと良い解決方法が有れば、ご教授をお願いします。
Re: ムービーが解放されない ( No.5 )
名前:管理人 日時:2009/02/07 00:56

最初の読込だけ時間が掛かるのは予定通りですが・・・ 実用として問題があるくらい時間が掛かるのでしょうか?(10秒とか・・・) もしそうでしたら高速転送を諦めて元のソースに戻そうと思います senさんご提案の対策ですが、動画の読込はファイルを全て読み込むのではなく、 LoadGraph ではあくまで再生の準備をするだけで、実際の読込は再生時に逐次ディスク から読み込まれるストリーム再生ですので、再生時間と読込時間の長さは比例しません・・・ 要は短い動画ファイルでも長い動画ファイルでも読込時間は変わらないということです ただ、最初に再生をしない動画ファイルを開いて、高速転送が可能なサーフェスフォーマットを 検索させておくというのは有効な方法だと思います( ゲーム画面で読込待ちを無くすという意味で )
Re: ムービーが解放されない ( No.6 )
名前:sen 日時:2009/02/09 12:02

回答、ありがとうございます。 最初の読込は少し気になる程度で実用に問題は無いです。 ただ、改善が出来るならばしたいと思い提案させてもらいました。 なので、元のソースに戻さなくても良いと思います。 高速転送が可能なサーフェスフォーマットを 検索させておくというのは有効な方法だと 解かりましたので活用したいと思います。 解放の問題、読込速度の問題、共に解決したとします。 管理人様、対応をして頂き、ありがとうございました。

Page: 1 |