SHA256
1
0
forked from pool/pulseaudio

Accepting request 355345 from home:oholecek:branches:multimedia:libs

- Update to 8.0
 + Automatic routing more likely to change profile
 + OS X and NetBSD support improvements
 + Systemd journal logging for clients
 + New LFE balance programming interface
 + Module-dbus-protocol improvements
 + More flexible configuration file handling
 + pulsecore-8.0.so moved to a private directory
 + New script for measuring memory consumption
 + Various bug fixes and small improvements
 + https://wiki.freedesktop.org/www/Software/PulseAudio/Notes/8.0/

- remove 0004-module-alsa-card-Report-available-ports-before-unava.patch

OBS-URL: https://build.opensuse.org/request/show/355345
OBS-URL: https://build.opensuse.org/package/show/multimedia:libs/pulseaudio?expand=0&rev=165
This commit is contained in:
Ismail Dönmez 2016-01-22 10:35:16 +00:00 committed by Git OBS Bridge
parent ecd1470443
commit 07c8a110c7
5 changed files with 37 additions and 101 deletions

View File

@ -1,92 +0,0 @@
From 91313e60a81e96ce976f24c522656c57b4ab94ca Mon Sep 17 00:00:00 2001
From: David Henningsson <david.henningsson@canonical.com>
Date: Tue, 5 May 2015 17:01:13 +0200
Subject: [PATCH] module-alsa-card: Report available ports before unavailable
ones
In case the same jack causes one port to become available and another
one unavailable, the available should be reported first.
This is to avoid unnecessary changes: e g, consider a 'Headphone Jack'
making 'Headphone' available and 'Speaker' unavailable. In case the
unavailable change triggers first, and there is also a currently available
third port (e g 'Digital out'), the routing system might choose to route
to this port because neither of the 'Speaker' and 'Headphone' ports are
available.
Signed-off-by: David Henningsson <david.henningsson@canonical.com>
---
src/modules/alsa/module-alsa-card.c | 31 +++++++++++++++++++++++++------
1 file changed, 25 insertions(+), 6 deletions(-)
--- a/src/modules/alsa/module-alsa-card.c
+++ b/src/modules/alsa/module-alsa-card.c
@@ -304,7 +304,7 @@ static void init_profile(struct userdata
am->source = pa_alsa_source_new(u->module, u->modargs, __FILE__, u->card, am);
}
-static void report_port_state(pa_device_port *p, struct userdata *u) {
+static pa_available_t calc_port_state(pa_device_port *p, struct userdata *u) {
void *state;
pa_alsa_jack *jack;
pa_available_t pa = PA_AVAILABLE_UNKNOWN;
@@ -348,10 +348,14 @@ static void report_port_state(pa_device_
pa = cpa;
}
}
-
- pa_device_port_set_available(p, pa);
+ return pa;
}
+struct temp_port_avail {
+ pa_device_port *port;
+ pa_available_t avail;
+};
+
static int report_jack_state(snd_mixer_elem_t *melem, unsigned int mask) {
struct userdata *u = snd_mixer_elem_get_callback_private(melem);
snd_hctl_elem_t *elem = snd_mixer_elem_get_private(melem);
@@ -359,7 +363,7 @@ static int report_jack_state(snd_mixer_e
bool plugged_in;
void *state;
pa_alsa_jack *jack;
- pa_device_port *port;
+ struct temp_port_avail *tp, *tports;
pa_assert(u);
@@ -376,6 +380,8 @@ static int report_jack_state(snd_mixer_e
pa_log_debug("Jack '%s' is now %s", pa_strnull(snd_hctl_elem_get_name(elem)), plugged_in ? "plugged in" : "unplugged");
+ tports = tp = pa_xnew0(struct temp_port_avail, pa_hashmap_size(u->jacks)+1);
+
PA_HASHMAP_FOREACH(jack, u->jacks, state)
if (jack->melem == melem) {
pa_alsa_jack_set_plugged_in(jack, plugged_in);
@@ -388,9 +394,22 @@ static int report_jack_state(snd_mixer_e
/* When not using UCM, we have to do the jack state -> port
* availability mapping ourselves. */
- pa_assert_se(port = jack->path->port);
- report_port_state(port, u);
+ pa_assert_se(tp->port = jack->path->port);
+ tp->avail = calc_port_state(tp->port, u);
+ tp++;
}
+
+ /* Report available ports before unavailable ones: in case port 1 becomes available when port 2 becomes unavailable,
+ this prevents an unnecessary switch port 1 -> port 3 -> port 2 */
+
+ for (tp = tports; tp->port; tp++)
+ if (tp->avail != PA_AVAILABLE_NO)
+ pa_device_port_set_available(tp->port, tp->avail);
+ for (tp = tports; tp->port; tp++)
+ if (tp->avail == PA_AVAILABLE_NO)
+ pa_device_port_set_available(tp->port, tp->avail);
+
+ pa_xfree(tports);
return 0;
}

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:e667514a28328f92aceea754a224a0150dddfe7e9a71b4c6d31489220153b9d9
size 1506504

3
pulseaudio-8.0.tar.xz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:690eefe28633466cfd1ab9d85ebfa9376f6b622deec6bfee5091ac9737cd1989
size 1517656

View File

@ -1,3 +1,29 @@
-------------------------------------------------------------------
Fri Jan 22 08:43:14 UTC 2016 - oholecek@suse.com
- Update to 8.0
+ Automatic routing more likely to change profile
+ OS X and NetBSD support improvements
+ Systemd journal logging for clients
+ New LFE balance programming interface
+ Module-dbus-protocol improvements
+ More flexible configuration file handling
+ pulsecore-8.0.so moved to a private directory
+ New script for measuring memory consumption
+ Various bug fixes and small improvements
+ https://wiki.freedesktop.org/www/Software/PulseAudio/Notes/8.0/
-------------------------------------------------------------------
Tue Jan 12 16:15:24 UTC 2016 - oholecek@suse.com
- Update to 8.0 RC2 (7.99.2)
-------------------------------------------------------------------
Sun Jan 3 22:32:21 UTC 2016 - oholecek@suse.com
- Update to 8.0 RC1 (7.99.1)
- remove 0004-module-alsa-card-Report-available-ports-before-unava.patch
-------------------------------------------------------------------
Mon Nov 2 20:54:13 UTC 2015 - meissner@suse.com

View File

@ -16,7 +16,7 @@
#
%define drvver 7.1
%define drvver 8.0
%define soname 0
%define _udevrulesdir %(pkg-config --variable=udevdir udev)/rules.d
%define _fwdefdir %{_sysconfdir}/sysconfig/SuSEfirewall2.d/services
@ -27,7 +27,7 @@
%define _bluez5used 0%(echo "%{_bluezVersion}" | grep -q '^5' && echo 1)
%define _bashcompletionsdir %{_datadir}/bash-completion/completions
Name: pulseaudio
Version: 7.1
Version: 8.0
Release: 0
Summary: A Networked Sound Server
License: GPL-2.0+ and LGPL-2.1+
@ -46,8 +46,6 @@ Patch2: pulseaudio-wrong-memset.patch
# PATCH-FIX-SUSE disable-srbchannel.patch boo#950487 Disable srbchannel as a workaround for crashes on KDE
# XXX note this patch isn't used for now, kept just for workaround in future
Patch3: disable-srbchannel.patch
# PATCH-FIX-UPSTREAM 0004-module-alsa-card-Report-available-ports-before-unava.patch boo#948979
Patch104: 0004-module-alsa-card-Report-available-ports-before-unava.patch
BuildRequires: alsa-devel >= 1.0.19
# require only minimal bluez, if we are on bluez 5 we will determine in build phase
BuildRequires: bluez-devel >= 4.99
@ -330,7 +328,6 @@ Optional dependency offering zsh completion for various PulseAudio utilities
%if 0
%patch3 -p1
%endif
%patch104 -p1
%build
echo 'HTML_TIMESTAMP=NO' >> doxygen/doxygen.conf.in
@ -391,6 +388,9 @@ ln -s esdcompat %{buildroot}%{_bindir}/esd
mkdir -p %{buildroot}/%{_fwdefdir}
install -m 0644 %{SOURCE4} %{buildroot}/%{_fwdefdir}/pulseaudio-server
%endif
# create .d conf dirs (since 8.0)
mkdir -p %{buildroot}%{_sysconfdir}/pulse/client.conf.d
mkdir -p %{buildroot}%{_sysconfdir}/pulse/daemon.conf.d
%fdupes doxygen/html
%pre
@ -441,9 +441,9 @@ exit 0
%dir %{_datadir}/pulseaudio
%{_datadir}/pulseaudio/alsa-mixer
%{_localstatedir}/adm/fillup-templates/sysconfig.sound-pulseaudio
%{_libdir}/libpulsecore-%{drvver}.so
%dir %{_libdir}/pulseaudio
%{_libdir}/pulseaudio/libpulsedsp.so
%{_libdir}/pulseaudio/libpulsecore-%{drvver}.so
%dir %{_libdir}/pulse-%{drvver}/
%dir %{_libdir}/pulse-%{drvver}/modules/
%{_libdir}/pulse-%{drvver}/modules/libalsa-util.so
@ -533,6 +533,7 @@ exit 0
%{_mandir}/man5/pulse-daemon.conf.5*
%{_mandir}/man5/pulse-cli-syntax.5*
%dir %{_sysconfdir}/pulse/
%dir %{_sysconfdir}/pulse/daemon.conf.d
%config(noreplace) %{_sysconfdir}/pulse/daemon.conf
%config(noreplace) %{_sysconfdir}/pulse/default.pa
%config(noreplace) %{_sysconfdir}/pulse/system.pa
@ -566,6 +567,7 @@ exit 0
%defattr(-,root,root)
%doc README LICENSE GPL LGPL
%dir %{_sysconfdir}/pulse/
%dir %{_sysconfdir}/pulse/client.conf.d
%config(noreplace) %{_sysconfdir}/pulse/client.conf
%{_libdir}/libpulse.so.%{soname}
%{_libdir}/libpulse.so.%{soname}.*