Possible cause for Mix_PlayMusic() crashing

I think I found the issue. There is a divide by zero happening in
music.c, function Mix_FadeInMusicPos()

line 870: music->fade_steps = ms/ms_per_step;

ms == 0
ms_per_step == 0

In the debugger, the above code gets executed before function
open_music() which sets the variable ms_per_step.

To fix the divide by zero crash, I added code just before the division
calculation:

//Barrett 12/24/2007
if(ms_per_step == 0)
{
    ms_per_step = 1;
}

Now the program no longer crashes, but my ogg music is still not
playing. I’ll do more debugging later.
For all I know, setting ms_per_step to 1 might cause no playback! :wink:
I’ll have to find out why function open_music() isn’t getting called
until after

Jim

and the final cause is… I’m an idiot…

I debugged to find out why the open_music() wasn’t getting called until
after attempting to play music. Well, I know I am supposed to do:

OpenAudio()
StartMusic().

but for some unknown reason Instead I had.

StartMusic()
OpenAudio()

Case closed.

Merry Christmas, Happy New Year!!

Jim

James Barrett wrote:> I think I found the issue. There is a divide by zero happening in

music.c, function Mix_FadeInMusicPos()

line 870: music->fade_steps = ms/ms_per_step;

ms == 0
ms_per_step == 0

In the debugger, the above code gets executed before function
open_music() which sets the variable ms_per_step.

To fix the divide by zero crash, I added code just before the division
calculation:

//Barrett 12/24/2007
if(ms_per_step == 0)
{
    ms_per_step = 1;
}

Now the program no longer crashes, but my ogg music is still not
playing. I’ll do more debugging later.
For all I know, setting ms_per_step to 1 might cause no playback! :wink:
I’ll have to find out why function open_music() isn’t getting called
until after

Jim