Mon, 21 Sep 2009 09:27:08 +0000Fixed bug #698 SDL-1.2
Sam Lantinga <> [Mon, 21 Sep 2009 09:27:08 +0000] rev 4216
Fixed bug #698

Hans de Goede 2009-02-13 01:10:52 PST

Since the new "glitch free" version of pulseaudio (used in Fedora 10 amongst
others), the sound of SDL using apps (like a simple playmus call) has been

While looking in to fixing this I noticed that the current pulseaudio code in
SDL uses pa_simple. However pa_simple uses a thread to pump pulseaudio events
and ipc, given that SDL already has its own thread for audio handling this is
clearly suboptimal, leading to unnecessary context switching IPC, etc. Also
pa_simple does not allow one to implement the WaitAudio() callback for SDL
audiodrivers properly.

Given that my work is mostly a rewrite (although some original pieces remain)
I'm attaching the new .c and .h file, as that is easier to review then the huge

Let me know if you also want the diff.

This new version has the following features:
-no longer use an additional thread next to the SDL sound thread
-do not crackle with glitch free audio
-when used with a newer pulse, which does glitch free audio, the total latency
the same as with the alsa driver
-proper WaitAudio() implementation, saving another mixlen worth of latency
-adds a WaitDone() implementation

This patch has been written in consultancy with Lennart Poetering (the
pulseaudio author) and has been reviewed by him for correct use of the pa API.

Mon, 21 Sep 2009 09:18:42 +0000Fixed bug #615 SDL-1.2
Sam Lantinga <> [Mon, 21 Sep 2009 09:18:42 +0000] rev 4215
Fixed bug #615

Scott McCreary 2008-08-21 10:48:14 PDT

This patch adds support for Haiku.
Haiku is an open-source recreation of BeOS. It has better POSIX compliance
than beOS did, and other improved features, which in some cases causes us to
have to "undo" previous BeOS workarounds.
Here's our port log entry for it, showing the steps to force the changes into
configure and Makefile:
Note that this was only tried on 1.2.13 stable so far.
Haiku is using a newer config.guess / config.sub that doesn't yet seem to be in
the released libtool, so we are having to copy it in for now.

Mon, 21 Sep 2009 08:58:51 +0000Oh yeah, we have GLX support too. SDL-1.2
Sam Lantinga <> [Mon, 21 Sep 2009 08:58:51 +0000] rev 4214
Oh yeah, we have GLX support too.

Mon, 21 Sep 2009 08:39:52 +0000Fixed bug #577 SDL-1.2
Sam Lantinga <> [Mon, 21 Sep 2009 08:39:52 +0000] rev 4213
Fixed bug #577

Pierre Phaneuf 2008-05-01 10:29:16 PDT

SDL_VIDEO_DRIVER_X11 is not defined in SDL_config_macosx.h

There's a number of SDL_VIDEO_DRIVER_xxx defined in SDL_config_macosx.h, but
not that one, even though it is actually present.

Mon, 21 Sep 2009 08:31:15 +0000Fixed bug #591 SDL-1.2
Sam Lantinga <> [Mon, 21 Sep 2009 08:31:15 +0000] rev 4212
Fixed bug #591

Wade Berrier 2008-05-28 11:09:42 PDT will enable dynamic loading by default for modules, but some of
the checks only check /lib, /usr/lib, /usr/local/lib, etc...

It needs to also account for systems using /lib64, /usr/lib64, and

For example, openSUSE x86_64 distro uses these style paths. Otherwise, i586
gets dynamically loaded, but x86_64 doesn't.

Mon, 21 Sep 2009 08:03:00 +0000Fixed bug #572 SDL-1.2
Sam Lantinga <> [Mon, 21 Sep 2009 08:03:00 +0000] rev 4211
Fixed bug #572

Please merge this patch for the PA driver in SDL.

This patch:
- fixes buffering (i.e. reduces number of "fragments" to 2, doesn't defer
filling up of the buffer until the entire buffer ran completely empty.)
- drops $PASERVER and $PADEVICE env var support, since this is a duplication of
$PULSE_SERVER and $PULSE_SINK which the PA libs honor anyway.

This fixes the sound issues in all games I tested.

Mon, 21 Sep 2009 07:59:44 +0000Fixed bug #571.. I think. :) SDL-1.2
Sam Lantinga <> [Mon, 21 Sep 2009 07:59:44 +0000] rev 4210
Fixed bug #571.. I think. :)

It certainly can't hurt!

Mon, 21 Sep 2009 07:32:26 +0000Fixed bug #570 SDL-1.2
Sam Lantinga <> [Mon, 21 Sep 2009 07:32:26 +0000] rev 4209
Fixed bug #570

SDL_SemWaitTimeout in src/thread/generic/SDL_syssem.c line 179 (SVN trunk):


should be

if (retval == 0) {

Without this, sem->count will underflow on timeout effectively breaking the
semaphore. It appears that the implementation has been wrong since the initial

Mon, 21 Sep 2009 07:28:03 +0000Updated the version to 1.2.14 for the next release. SDL-1.2
Sam Lantinga <> [Mon, 21 Sep 2009 07:28:03 +0000] rev 4208
Updated the version to 1.2.14 for the next release.

Mon, 21 Sep 2009 07:20:51 +0000Fixed bug #562 SDL-1.2
Sam Lantinga <> [Mon, 21 Sep 2009 07:20:51 +0000] rev 4207
Fixed bug #562

this patch by Diego Pettenò <> for SDL-1.2:

The attached patch applies over latest ~arch SDL version, and allows to use the
xinerama support to launch an application full screened on the head "0".

The SDL_VIDEO_FULLSCREEN_HEAD environment variable sets the head on which the
full screen will be displayed, but if you set it to 0, the code simply ignores
it as unset. My patch changes the unset value to -1, so that the 0 value can be
used correctly. Without this, trying to get fullscreen on head 0 would get the
same result than not having xinerama enabled at all.

SDL-1.3 doesnt seem to have any code like this, but it's still good for SDL-1.2