Merge r3732 for jfs, fixes #915

Originally committed to SVN as r3734.
This commit is contained in:
Amar Takhar 2009-10-26 23:37:47 +00:00
parent 4fc2b90399
commit 002a5dd980

View file

@ -412,6 +412,13 @@ void DirectSoundPlayer2Thread::Run()
ResetEvent(is_playing); ResetEvent(is_playing);
playback_should_be_running = false; playback_should_be_running = false;
} }
else
{
// If the user is dragging the start or end point in the audio display
// the set end frame events might come in faster than the timeouts happen
// and then new data never get filled into the buffer. See bug #915.
goto do_fill_buffer;
}
break; break;
} }
@ -421,7 +428,7 @@ void DirectSoundPlayer2Thread::Run()
// We aren't thread safe right now, filling the buffers grabs volume directly // We aren't thread safe right now, filling the buffers grabs volume directly
// from the field set by the controlling thread, but it shouldn't be a major // from the field set by the controlling thread, but it shouldn't be a major
// problem if race conditions do occur, just some momentary distortion. // problem if race conditions do occur, just some momentary distortion.
break; goto do_fill_buffer;
} }
case WAIT_OBJECT_0+4: case WAIT_OBJECT_0+4:
@ -435,6 +442,7 @@ void DirectSoundPlayer2Thread::Run()
} }
case WAIT_TIMEOUT: case WAIT_TIMEOUT:
do_fill_buffer:
{ {
// Time to fill more into buffer // Time to fill more into buffer