Sign in to follow this  
x4000

SlimDX: E_OUTOFMEMORY on SecondarySoundBuffer.Play

Recommended Posts

I hope this is not another user machine error, but I wanted to run it by you guys and see if you have any ideas on what this might be. I've quizzed the user in depth, he has reinstalled SlimDX (March 2009 SP1), DirectX 9.0c, etc, and he seems to have all of the .NET Framework versions installed and up to date. All his dxdiag results look okay to me, too, but I'm no expert. Here's a thread with more information straight from the user: http://rpgcodex.net/phpBB/viewtopic.php?t=33102&postdays=0&postorder=asc&start=21 The issue is that whenever the code calls the Play method on SecondarySoundBuffer, the following exception is thrown: SlimDX.DirectSound.DirectSoundException: E_OUTOFMEMORY: Ran out of memory (-2147024882) at SlimDX.Result.Throw[T](Object dataKey, Object dataValue) at SlimDX.Result.Record[T](Int32 hr, Boolean failed, Object dataKey, Object dataValue) at SlimDX.DirectSound.SoundBuffer.Play(Int32 priority, PlayFlags flags) This same code is working fine for dozens of other users, many who are on the same OS and machine as this user, so clearly something must be out of whack with his underlying stuff. But after he's reinstalled basically everything relevant, I can't imagine what it is -- I don't know if this is something in SlimDX that is failing, or if it is lower level, down to something messed up in the user's DirectX installation. Any thoughts? Thanks in advance for any help you can offer!

Share this post


Link to post
Share on other sites
Sorry, I'm at a loss. The SlimDX methods here are simple forwards, and the error code is coming back from DX. I'm not even sure why the Play method would be allocating. As an added bonus, E_OUTOFMEMORY isn't even listed as a possible return code for the function, let alone suggesting any reasons.

Escalate to MS, maybe? I don't know if it could be a driver layer bug or what. Are you requesting hardware mixing? I'm wondering if maybe software would dodge a faulty driver and fix it.

Share this post


Link to post
Share on other sites
Hi, thanks for the response -- I'll try adding software mixing as an option, and see if that changes anything for the user. If not, I'll escalate to MS -- do you happen to know the best place to reach them for Dsound issues?

Thanks for the response!
Chris

Share this post


Link to post
Share on other sites
Okay, just for reference in case anyone else runs into this. Promit and I carried on this conversation some by email, and he figured out that this was an error code that actually CAN come back from that method if the buffer is filled by too much data, which is what I was doing. Strange that only one user ever had a problem with this, but evidently something about his machine was causing the limitation that no one else had.

As a solution, I wound up converting an MDX Directsound streaming solution over to SlimDX. I've posted the code and notes here, as well as links to the original article my work is based on: http://christophermpark.blogspot.com/2009/06/how-to-stream-ogg-file-using.html

Hope that helps, if anyone else is running into this at some point.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this