Hello community,
here is the log from the commit of package openal-soft for openSUSE:Factory
checked in at Tue Nov 10 10:52:14 CET 2009.
--------
--- openal-soft/openal-soft.changes 2009-11-01 12:36:33.000000000 +0100
+++ /mounts/work_src_done/STABLE/openal-soft/openal-soft.changes 2009-11-09 09:50:16.000000000 +0100
@@ -1,0 +2,23 @@
+Mon Nov 9 08:32:43 UTC 2009 - lnussel@suse.de
+
+- new version 1.10.622
+ * Fixed OSS and PulseAudio backends
+ * Support for disconnect notifications with PulseAudio when the
+ server connection dies
+ * Fixed surround sound channel ordering for PulseAudio playback
+ * Fixed 7.1 output
+ * Fixed potential crash when setting an AL_EFFECT_NULL effect on
+ an auxiliary effect slot
+ * Backend libraries are now loaded and released as needed
+ In particular, this allows for backends to be added and
+ removed at runtime when their corresponding libraries are
+ installed and uninstalled (provided support for those backends
+ was compiled in). An active backend will remain available as
+ long as its in use.
+ * Support for multiple contexts per device
+ * Fixed possible ghost references on buffers and auxiliary
+ slots, if they're attached to sources that are forcibly
+ deleted on context destruction
+- only actually pulseaudio if at least version 0.9.15
+
+-------------------------------------------------------------------
calling whatdependson for head-i586
Old:
----
openal-soft-1.9.616.tar.bz2
New:
----
openal-soft-1.10.622.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ openal-soft.spec ++++++
--- /var/tmp/diff_new_pack.P9WiMp/_old 2009-11-10 10:51:18.000000000 +0100
+++ /var/tmp/diff_new_pack.P9WiMp/_new 2009-11-10 10:51:18.000000000 +0100
@@ -1,5 +1,5 @@
#
-# spec file for package openal-soft (Version 1.9.616)
+# spec file for package openal-soft (Version 1.10.622)
#
# Copyright (c) 2009 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
@@ -23,12 +23,16 @@
%if 0%{?fedora_version} > 9
%bcond_without pulseaudio
%else
+%if 0%{?mandriva_version} >= 2009
+%bcond_without pulseaudio
+%else
%bcond_with pulseaudio
%endif
%endif
+%endif
Name: openal-soft
-Version: 1.9.616
+Version: 1.10.622
Release: 1
License: LGPL v2.0 or later
BuildRoot: %{_tmppath}/%{name}-%{version}-build
@@ -140,11 +144,19 @@
%build
cd build || cd CMakeConf
+OPTIONS=
+%if %{with pulseaudio}
+if ! pkg-config --atleast-version=0.9.15 libpulse; then
+ echo "Warning: pulseaudio too old, disabled"
+ OPTIONS="-DPULSEAUDIO=OFF"
+fi
+%endif
cmake \
-D LIB_INSTALL_DIR=%{_lib} \
-D CMAKE_INSTALL_PREFIX=%{_prefix} \
-D CMAKE_C_FLAGS:STRING="$RPM_OPT_FLAGS" \
-D ALSOFT_CONFIG=ON \
+ $OPTIONS \
..
make VERBOSE=1 %{?jobs:-j %jobs}
# dummy library for compatibility
++++++ openal-soft-1.9.616.tar.bz2 -> openal-soft-1.10.622.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openal-soft-1.9.616/Alc/ALu.c new/openal-soft-1.10.622/Alc/ALu.c
--- old/openal-soft-1.9.616/Alc/ALu.c 2009-11-01 04:05:15.000000000 +0100
+++ new/openal-soft-1.10.622/Alc/ALu.c 2009-11-01 18:23:35.000000000 +0100
@@ -1362,6 +1362,7 @@
{
ALuint i;
+ SuspendContext(NULL);
for(i = 0;i < device->NumContexts;i++)
{
ALsource *source;
@@ -1384,4 +1385,5 @@
}
device->Connected = ALC_FALSE;
+ ProcessContext(NULL);
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openal-soft-1.9.616/Alc/pulseaudio.c new/openal-soft-1.10.622/Alc/pulseaudio.c
--- old/openal-soft-1.9.616/Alc/pulseaudio.c 2009-11-01 04:05:15.000000000 +0100
+++ new/openal-soft-1.10.622/Alc/pulseaudio.c 2009-11-01 18:24:23.000000000 +0100
@@ -266,9 +266,7 @@
if(ppa_context_get_state(context) == PA_CONTEXT_FAILED)
{
AL_PRINT("Received context failure!\n");
- SuspendContext(NULL);
aluHandleDisconnect(Device);
- ProcessContext(NULL);
}
}//}}}
@@ -279,9 +277,7 @@
if(ppa_stream_get_state(stream) == PA_STREAM_FAILED)
{
AL_PRINT("Received stream failure!\n");
- SuspendContext(NULL);
aluHandleDisconnect(Device);
- ProcessContext(NULL);
}
}//}}}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openal-soft-1.9.616/CMakeLists.txt new/openal-soft-1.10.622/CMakeLists.txt
--- old/openal-soft-1.9.616/CMakeLists.txt 2009-11-01 04:05:15.000000000 +0100
+++ new/openal-soft-1.10.622/CMakeLists.txt 2009-11-09 05:17:12.000000000 +0100
@@ -47,8 +47,8 @@
ENDIF()
SET(LIB_MAJOR_VERSION "1")
-SET(LIB_MINOR_VERSION "9")
-SET(LIB_BUILD_VERSION "563")
+SET(LIB_MINOR_VERSION "10")
+SET(LIB_BUILD_VERSION "622")
SET(LIB_VERSION "${LIB_MAJOR_VERSION}.${LIB_MINOR_VERSION}.${LIB_BUILD_VERSION}")
IF(NOT DEFINED LIB_INSTALL_DIR)
SET(LIB_INSTALL_DIR "lib${LIB_SUFFIX}")
@@ -75,6 +75,18 @@
FORCE)
ENDIF()
+IF(NOT DXSDK_DIR)
+ STRING(REGEX REPLACE "\\\\" "/" DXSDK_DIR "$ENV{DXSDK_DIR}")
+ELSE()
+ STRING(REGEX REPLACE "\\\\" "/" DXSDK_DIR "${DXSDK_DIR}")
+ENDIF()
+IF(DXSDK_DIR)
+ MESSAGE(STATUS "Using DirectX SDK directory: ${DXSDK_DIR}")
+ SET(CMAKE_REQUIRED_INCLUDES ${CMAKE_REQUIRED_INCLUDES} "${DXSDK_DIR}/Include")
+ INCLUDE_DIRECTORIES("${DXSDK_DIR}/Include")
+ LINK_DIRECTORIES("${DXSDK_DIR}/Lib")
+ENDIF()
+
IF(MSVC)
# ???
SET(CMAKE_C_FLAGS_RELWITHDEBINFO "${CMAKE_C_FLAGS_RELWITHDEBINFO} -D_DEBUG")
@@ -234,6 +246,11 @@
IF(HAVE_LIBPTHREAD)
SET(EXTRA_LIBS pthread ${EXTRA_LIBS})
ENDIF()
+
+ CHECK_LIBRARY_EXISTS(rt clock_gettime "" HAVE_LIBRT)
+ IF(HAVE_LIBRT)
+ SET(EXTRA_LIBS rt ${EXTRA_LIBS})
+ ENDIF()
ENDIF()
# Check for a 64-bit type
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openal-soft-1.9.616/.gitignore new/openal-soft-1.10.622/.gitignore
--- old/openal-soft-1.9.616/.gitignore 2009-11-01 04:05:15.000000000 +0100
+++ new/openal-soft-1.10.622/.gitignore 1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-build
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openal-soft-1.9.616/OpenAL32/alAuxEffectSlot.c new/openal-soft-1.10.622/OpenAL32/alAuxEffectSlot.c
--- old/openal-soft-1.9.616/OpenAL32/alAuxEffectSlot.c 2009-11-01 04:05:15.000000000 +0100
+++ new/openal-soft-1.10.622/OpenAL32/alAuxEffectSlot.c 2009-11-06 05:50:08.000000000 +0100
@@ -59,9 +59,10 @@
while(i < n)
{
*list = calloc(1, sizeof(ALeffectslot));
- if(!(*list))
+ if(!(*list) || !((*list)->EffectState=NoneCreate()))
{
// We must have run out or memory
+ free(*list); *list = NULL;
alDeleteAuxiliaryEffectSlots(i, effectslots);
alSetError(AL_OUT_OF_MEMORY);
break;
@@ -414,27 +415,67 @@
}
+static ALvoid NoneDestroy(ALeffectState *State)
+{ free(State); }
+static ALboolean NoneDeviceUpdate(ALeffectState *State, ALCdevice *Device)
+{
+ return AL_TRUE;
+ (void)State;
+ (void)Device;
+}
+static ALvoid NoneUpdate(ALeffectState *State, ALCcontext *Context, const ALeffect *Effect)
+{
+ (void)State;
+ (void)Context;
+ (void)Effect;
+}
+static ALvoid NoneProcess(ALeffectState *State, const ALeffectslot *Slot, ALuint SamplesToDo, const ALfloat *SamplesIn, ALfloat (*SamplesOut)[OUTPUTCHANNELS])
+{
+ (void)State;
+ (void)Slot;
+ (void)SamplesToDo;
+ (void)SamplesIn;
+ (void)SamplesOut;
+}
+ALeffectState *NoneCreate(void)
+{
+ ALeffectState *state;
+
+ state = calloc(1, sizeof(*state));
+ if(!state)
+ {
+ alSetError(AL_OUT_OF_MEMORY);
+ return NULL;
+ }
+
+ state->Destroy = NoneDestroy;
+ state->DeviceUpdate = NoneDeviceUpdate;
+ state->Update = NoneUpdate;
+ state->Process = NoneProcess;
+
+ return state;
+}
+
static ALvoid InitializeEffect(ALCcontext *Context, ALeffectslot *ALEffectSlot, ALeffect *effect)
{
- if((!effect) || (effect->type != ALEffectSlot->effect.type))
+ if(ALEffectSlot->effect.type != (effect?effect->type:AL_EFFECT_NULL))
{
ALeffectState *NewState = NULL;
- if(effect)
- {
- if(effect->type == AL_EFFECT_EAXREVERB)
- NewState = EAXVerbCreate();
- else if(effect->type == AL_EFFECT_REVERB)
- NewState = VerbCreate();
- else if(effect->type == AL_EFFECT_ECHO)
- NewState = EchoCreate();
- /* No new state? An error occured.. */
- if(NewState == NULL ||
- ALEffect_DeviceUpdate(NewState, Context->Device) == AL_FALSE)
- {
- if(NewState)
- ALEffect_Destroy(NewState);
- return;
- }
+ if(!effect || effect->type == AL_EFFECT_NULL)
+ NewState = NoneCreate();
+ else if(effect->type == AL_EFFECT_EAXREVERB)
+ NewState = EAXVerbCreate();
+ else if(effect->type == AL_EFFECT_REVERB)
+ NewState = VerbCreate();
+ else if(effect->type == AL_EFFECT_ECHO)
+ NewState = EchoCreate();
+ /* No new state? An error occured.. */
+ if(NewState == NULL ||
+ ALEffect_DeviceUpdate(NewState, Context->Device) == AL_FALSE)
+ {
+ if(NewState)
+ ALEffect_Destroy(NewState);
+ return;
}
if(ALEffectSlot->EffectState)
ALEffect_Destroy(ALEffectSlot->EffectState);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openal-soft-1.9.616/OpenAL32/Include/alAuxEffectSlot.h new/openal-soft-1.10.622/OpenAL32/Include/alAuxEffectSlot.h
--- old/openal-soft-1.9.616/OpenAL32/Include/alAuxEffectSlot.h 2009-11-01 04:05:15.000000000 +0100
+++ new/openal-soft-1.10.622/OpenAL32/Include/alAuxEffectSlot.h 2009-11-06 05:38:10.000000000 +0100
@@ -60,6 +60,7 @@
ALvoid (*Process)(ALeffectState *State, const ALeffectslot *Slot, ALuint SamplesToDo, const ALfloat *SamplesIn, ALfloat (*SamplesOut)[OUTPUTCHANNELS]);
};
+ALeffectState *NoneCreate(void);
ALeffectState *EAXVerbCreate(void);
ALeffectState *VerbCreate(void);
ALeffectState *EchoCreate(void);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openal-soft-1.9.616/OpenAL32/Include/alMain.h new/openal-soft-1.10.622/OpenAL32/Include/alMain.h
--- old/openal-soft-1.9.616/OpenAL32/Include/alMain.h 2009-11-01 04:05:15.000000000 +0100
+++ new/openal-soft-1.10.622/OpenAL32/Include/alMain.h 2009-11-01 19:00:59.000000000 +0100
@@ -28,6 +28,7 @@
#else
+#include