Hi, (Using Delphi6 Personal)
I’ve got a pretty basic app, the gist of which is
FSound3 := FSOUND_Sample_Load (FSOUND_FREE,PChar (OpenDialog1.Filename),FSOUND_16BITS OR FSOUND_FORCEMONO OR FSOUND_2D,0,0);
I am loading an MP3 using this, takes a few seconds, but thats okay..
Plays the sample fine.
Problem is, is when I start adjusting the playback rate using FSOUND_SeqFrequency, on [i:5lnzdq2v]some[/i:5lnzdq2v] mp3’s when it reaches near 0 value, it will crash reporting a “Integer Overflow Error”
(guarantee that FSOUND_SetFrequency(FSOUND_ALL,10); for those mp3’s that are affected will cause it to fail)
I’ve spent some time trying to figure out whats so different about these mp3’s that cause this, but I can’t seem to find a correllation. They range from Joint , to Stereo, 128kbits, to 160kbits, CRC’s and no CRC”s… 😮
It stops in the dissaembler, and if I scroll back far enough to find an FMOD tag, i see
and its 0x2473 bytes back from the breakpoint.
- Anonymous asked 12 years ago
Thanks for the response..The reason I need to use a sample instead of a stream, is I will be requiring reverse playback of MP3 files.. Some instances, I have found that I had to clamp at +/- 2000 hz before it will eventually error out.
Could you not store the value of this operation into something larger than an integer to prevent this issue? I can’t use any exception handling to catch this
What I can do then, is clamp at a safe value, and FSOUND_SetPaused between 2000 and -2000 HZ..
Please login first to submit.