トップページ > 記事閲覧
LoadSoundMemのメモリリークのご報告
名前:たけしお 日時: 2018/04/27 18:52

DXライブラリの開発大変ありがとうございます。 標記関数ですが、特定のmp3ファイルの読み込み時に メモリリークを起こしていることに気が付いたのですが、 原因等お心あたりはありませんでしょうか? 最小構成のコーディングで試しても同じ結果でしたのでご報告します。 もしも当方のPC環境等のせいであれば申し訳ありません。 必要であれば、当該mp3ファイルをメール等で送付いたします。 よろしくお願いいたします。
メンテ

Page: 1 |

Re: LoadSoundMemのメモリリークのご報告 ( No.1 )
名前:yumetodo 日時:2018/04/28 19:41

>必要であれば、当該mp3ファイルをメール等で送付いたします。 ほぼ確実に必要でしょうからもう投げてしまうほうがいいと思います
メンテ
Re: LoadSoundMemのメモリリークのご報告 ( No.2 )
名前:管理人 日時:2018/04/28 21:09

> 標記関数ですが、特定のmp3ファイルの読み込み時に > メモリリークを起こしていることに気が付いたのですが、 > 原因等お心あたりはありませんでしょうか? 詳しく確認してみないとわかりませんが、DXライブラリの mp3ファイルの読み込み処理には プログラムを実行するPC にインストールされているコーデックを使用しているので DXライブラリのプログラムと、たけしおさんのPCにインストールされている mp3ファイルの コーデックの相性が悪い可能性があります ( 以前マルウェアなどが仕込まれていて( 悪い意味で )話題になった GOM Player に付属している  mp3コーデックの挙動が怪しく、DXライブラリで正常に mp3ファイルが再生できない  ということがありました( GOM Player をインストールすると付属の GOM Player製 mp3コーデック が  PCにインストールされ、それをDXライブラリが使用した場合に正常に動作しなかった ) ) DXライブラリは mp3ファイルと同じような不可逆圧縮のサウンドフォーマットである oggファイルや opusファイルに対応しているのですが、こちらはDXライブラリ内にデコード用ライブラリが含まれていますので mp3ファイルのように環境に左右されること無く安定して再生することができます なので、もしよろしければ mp3ファイルではなく oggファイルや opusファイルの使用を検討してみてください m(_ _;m > 必要であれば、当該mp3ファイルをメール等で送付いたします。 上記の説明のようなコーデックによるエラーではない可能性がありますので、よろしければメールで BQE00322(あっとまーく)nifty.com ( (あっとまーく) を @ に置き換えてください ) まで送ってください m(_ _)m > 標記関数ですが、特定のmp3ファイルの読み込み時に > メモリリークを起こしていることに気が付いたのですが よろしければどのようにしてメモリリークの発生を確認されたのか教えていただけないでしょうか?
メンテ
Re: LoadSoundMemのメモリリークのご報告 ( No.3 )
名前:たけしお 日時:2018/04/29 06:23

早速のご返信をありがとうございます。 コーデックの相性が原因であれば余計なお手間を取らせてしまうことになりますが、 先ほど当該mp3ファイルをメールで送付させていただきましたので、ご確認ください。 なお、メモリリークの発生の確認方法についてですが、VC++で_CrtDumpMemoryLeaksを利用しました。 LoadSoundMemの直前・直後にnew char[1]を配置し、それをわざとdeleteしないで終了したところ、 "1 bytes long"ではさみこまれたメモリリークレポートが出力された、というものです。 よろしくお願いいたします。
メンテ
Re: LoadSoundMemのメモリリークのご報告 ( No.4 )
名前:管理人 日時:2018/04/30 01:36

mp3ファイルを送っていただきありがとうございます あと、メモリリークの確認方法も教えていただきありがとうございます 送っていただいたmp3ファイルと_CrtDumpMemoryLeaksを使用した確認方法で 手元の環境でもメモリリークを確認できました そして原因はDXライブラリのバグでした orz mp3ファイルは最初に ACM というAPIを使用してデコードを試みて、それが失敗した場合は DirectShow という API を使用してデコードを試みるのですが、DirectShow を使用したデコードの処理に メモリリークのバグがありました ( 全ての mp3ファイルでメモリリークが発生するわけではなかったのは、ACM によるデコードに  成功するファイルがあるからでした ) 修正版をアップしましたので、よろしければお試しください m(_ _;m https://dxlib.xsrv.jp/temp/DxLibVCTest.zip // Windows版 VisualC++ 用 https://dxlib.xsrv.jp/temp/DxLibBCCTest.zip // Windows版 BorlandC++ 用 https://dxlib.xsrv.jp/temp/DxLibBCC2Test.zip // Windows版 C++ Builder 10.1 Berlin 用 https://dxlib.xsrv.jp/temp/DxLibGCC_MinGWTest.zip // Windows版 MinGW 用 https://dxlib.xsrv.jp/temp/DxLibDotNet.zip // Windows版 .NET用 https://dxlib.xsrv.jp/temp/DxLibMakeTest.zip // ソース (中身を既存のライブラリのファイルに上書きして、BCCをお使いの 場合は『再構築』を、VCをお使いの場合は『リビルド』を、 Dev-C++をお使いの方は「Rebuild All(Ctrl+F11)」をして下さい)
メンテ
Re: LoadSoundMemのメモリリークのご報告 ( No.5 )
名前:たけしお 日時:2018/04/30 05:38

いつも迅速なご対応をありがとうございます。 この度の修正版により、当方のPC環境でもメモリリークが発生しなくなりましたのでご報告します。 今後ともよろしくお願いいたします。
メンテ

Page: 1 |

題名
名前
コメント
パスワード (記事メンテ時に使用)

   クッキー保存