0
0

Just to let you know that the bug I described a few betas earlier is still there, and the beginning second/half second of the song is still missing often.
Reloading the same song again seems to always load it complete though…

  • You must to post comments
0
0

[quote="Adion":143op1kn]Sorry for wasting your time, after some more debugging and adding a lot of debug messages I finally found that it was a multi-threading problem at my side.

Now I still have one problem that I think I also mentioned before.
When I create my first fmod_system there is no problem and everything works.
But as soon as I close an fmod_system, any system created after that succeeds in initializing, succeeds in loading a song (createsound), but fails in trying to playSound or trying to readData.

After checking all error codes, it appears that it is not readData/playSound itself that are not working, but other calls before that.

In the readData case (c++), I opened the sound using the flags (FMOD_MODE)(FMOD_SOFTWARE | FMOD_2D | FMOD_CREATESTREAM | FMOD_OPENONLY)
I got a handle back, and the result was FMOD_OK
Now when I try to get the data format and sourcerate using fmod_sound->getDefaults, fmod_sound->getLength and fmod_sound->getFormat I get an ERR_INVALID_HANDLE

In the playSound case (Visual Basic), I also succeed in createSound, but since I open it with FMOD_NONBLOCKING, I use getOpenstate, but this also returns ERR_INVALID_HANDLE error.
If I remove the nonblocking and I skip the getOpenstate I can play the file though.

Edit: To be more certain that it isn’t a mistake I made: when I replace fmodex.dll with beta 23, I can recreate and initialize the system object without errors, as soon as I replace it with 24 or higher, I get this problem.[/quote:143op1kn]

This sounds like a problem I posted on the .25 thread. If I shut down the sound system at run-time then reinit, certain functions no longer work. getName is another one that would fail, in addition to the others listed above.

As in the above case, I noticed this happening with v.24 and higher. v.23 doesn’t have this problem.

  • You must to post comments
0
0

[quote="brett":2p3u3kbc]I’ve just put a new dll at http://52.88.2.202/files/fmodex.dll

I found a problem with the mpeg codec, i dont think it is a multi-format issue, just mpeg, so try this, and i also removed that check as mentioned. hopefully it fixes both problems.[/quote:2p3u3kbc]

Using this DLL causes this run-time error:

“The procedure entry point ?getDriverCaps@System@FMOD@@QAG?AW4FMOD_RESULT@@HPAW4FMOD_CAPS@@PAH1@Z could not be located in the dynamic link library fmodex.dll”

Using the one in the zip file for .26 doesn’t get this error.

  • You must to post comments
0
0

ok thanks, I’ll look again at my side then

  • You must to post comments
0
0

ok thanks, I already thought that it was something like that :)

Now I’m also having the same problem as stdev, it doesn’t seem possible anymore to seek into mp3’s anymore. Ogg’s work fine indeed.

  • You must to post comments
0
0

Sorry for wasting your time, after some more debugging and adding a lot of debug messages I finally found that it was a multi-threading problem at my side.

Now I still have one problem that I think I also mentioned before.
When I create my first fmod_system there is no problem and everything works.
But as soon as I close an fmod_system, any system created after that succeeds in initializing, succeeds in loading a song (createsound), but fails in trying to playSound or trying to readData.

After checking all error codes, it appears that it is not readData/playSound itself that are not working, but other calls before that.

In the readData case (c++), I opened the sound using the flags (FMOD_MODE)(FMOD_SOFTWARE | FMOD_2D | FMOD_CREATESTREAM | FMOD_OPENONLY)
I got a handle back, and the result was FMOD_OK
Now when I try to get the data format and sourcerate using fmod_sound->getDefaults, fmod_sound->getLength and fmod_sound->getFormat I get an ERR_INVALID_HANDLE

In the playSound case (Visual Basic), I also succeed in createSound, but since I open it with FMOD_NONBLOCKING, I use getOpenstate, but this also returns ERR_INVALID_HANDLE error.
If I remove the nonblocking and I skip the getOpenstate I can play the file though.

Edit: To be more certain that it isn’t a mistake I made: when I replace fmodex.dll with beta 23, I can recreate and initialize the system object without errors, as soon as I replace it with 24 or higher, I get this problem.

  • You must to post comments
0
0

I’m getting reports that occasionally when a currently playing stream is stopped and another starts, a piece of the end of the stopped stream plays again followed by the new stream skipped in by about the buffer length. This is on a Creative Labs Soundblaster Live 5.1 card. I haven’t been able to reproduce it on my system (AC97 based). It seems to be restricted to OGG streams.

If I can find a way to make it happen reliably I’ll pass on more details, but it may be a driver issue; although, it never happened with FMOD.

  • You must to post comments
0
0

FMOD_System_SetStreamBufferSize(_system,1000,FMOD_TIMEUNIT_MS,32768,FMOD_TIMEUNIT_RAWBYTES)

At least 3 active streams, but not more than 6 when it happens. All other streams are WAV, the stopped one and new one are both OGG.

I can’t check for starvation with FMOD_Sound_getOpenState() since I don’t use nonblocking, right?

  • You must to post comments
0
0

I’ll give you a different description of the problem that I think Adion is reporting.

The Particulars:
FMOD_CREATESTREAM Or FMOD_ACCURATETIME
(also applies to FMOD_OPENONLY Or FMOD_ACCURATETIME)
No channels, no playing.
This is strictly an “open and read” operation.

How to Duplicate the Problem:
(1) SeekData to some media position (A) then ReadData.
(2) SeekData to a different media position (B) then ReadData.
(3) Now SeekData back to position A and ReadData.

What IS the Problem?
The data in step 3 are NOT exactly like the data in step 1; they are only partially the same.

This applies only to MP3 content. Read/SeekData is working perfectly for me with uncompressed WAV files.

Please look into this when you have a chance, because this problem as been around since before the first beta release. Perhaps we simply need another function: FMOD_Sound_PurgeBuffer ๐Ÿ˜‰

Regards,

  • SD
  • You must to post comments
0
0

Ok, the documentation led me to believe the call was only valid for sounds created as nonblocking ๐Ÿ˜‰ .

  • You must to post comments
0
0

I’ve now been able to edit the playstream example so that after 2 system init/close loops, it gives the invalid object handle error when sound->release is being called.

I basically just added some debug print messages and a for loop around the whole example.

http://adion.djdecks.be/playstream.zip

  • You must to post comments
0
0

I just tested the ReadData thing again, and I think you’ve engineered a new problem:

With MP3 content, seeking (or reading, I’m not sure which) is now VERY slow, and ReadData isn’t returning anything.

WAV and OGG continue to work nicely, though ๐Ÿ˜€

  • SD
  • You must to post comments
0
0

I don’t know why, but with this new version when I enumerate the directsound devices I only get one, which is named wavoutput.wav, and doesn’t play anything…

  • You must to post comments
Showing 12 results
Your Answer

Please first to submit.