summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDror Levin <spatz@gentoo.org>2010-05-23 12:09:37 +0000
committerDror Levin <spatz@gentoo.org>2010-05-23 12:09:37 +0000
commitf06941f80a89d6dfde027b48117f0d04dd68ead1 (patch)
treed8267fca5638f4771addef8c96905ff2eec1686a /media-sound
parentUse tc-has-openmp function from toolchain-funcs.eclass to check libgomp avail... (diff)
downloadgentoo-2-f06941f80a89d6dfde027b48117f0d04dd68ead1.tar.gz
gentoo-2-f06941f80a89d6dfde027b48117f0d04dd68ead1.tar.bz2
gentoo-2-f06941f80a89d6dfde027b48117f0d04dd68ead1.zip
Adding upstream patches for fixes with pulseaudio and xine, bug 321155. Thanks to Fabian Köster.
(Portage version: 2.2_rc67/cvs/Linux x86_64)
Diffstat (limited to 'media-sound')
-rw-r--r--media-sound/phonon/ChangeLog8
-rw-r--r--media-sound/phonon/files/phonon-4.4.1-pulseaudio-connect.patch60
-rw-r--r--media-sound/phonon/files/phonon-4.4.1-xine-volume.patch35
-rw-r--r--media-sound/phonon/phonon-4.4.1.ebuild9
4 files changed, 110 insertions, 2 deletions
diff --git a/media-sound/phonon/ChangeLog b/media-sound/phonon/ChangeLog
index eb7cede94aa8..0031f7003114 100644
--- a/media-sound/phonon/ChangeLog
+++ b/media-sound/phonon/ChangeLog
@@ -1,6 +1,12 @@
# ChangeLog for media-sound/phonon
# Copyright 1999-2010 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/media-sound/phonon/ChangeLog,v 1.48 2010/05/17 16:01:08 reavertm Exp $
+# $Header: /var/cvsroot/gentoo-x86/media-sound/phonon/ChangeLog,v 1.49 2010/05/23 12:09:36 spatz Exp $
+
+ 23 May 2010; Dror Levin <spatz@gentoo.org> phonon-4.4.1.ebuild,
+ +files/phonon-4.4.1-pulseaudio-connect.patch,
+ +files/phonon-4.4.1-xine-volume.patch:
+ Adding upstream patches for fixes with pulseaudio and xine, bug 321155.
+ Thanks to Fabian Köster.
*phonon-4.4.1 (17 May 2010)
diff --git a/media-sound/phonon/files/phonon-4.4.1-pulseaudio-connect.patch b/media-sound/phonon/files/phonon-4.4.1-pulseaudio-connect.patch
new file mode 100644
index 000000000000..2aa84369c80c
--- /dev/null
+++ b/media-sound/phonon/files/phonon-4.4.1-pulseaudio-connect.patch
@@ -0,0 +1,60 @@
+From 1eb324f60f8df6bc7a866679919d79f1a2a3ff81 Mon Sep 17 00:00:00 2001
+From: Colin Guthrie <cguthrie@mandriva.org>
+Date: Sat, 24 Apr 2010 14:54:36 +0100
+Subject: [PATCH] pulse: Fix the reading of stream information on startup.
+
+Due to the new probe+reconnect logic, it is possible to initialise
+a 'PulseStream' object and start the backend outputting it
+prior to our control connection being established. This means that
+we miss the subscription event and never actually associate the
+PA stream index with our stream object. Whenever something changes
+on the stream at the PA end things would kick in and would work fine,
+so this was sometimes hard to see and identify.
+
+This change simply invalidates all streams when we're finished connecting
+to PA and then loads up all info from PA to set the indexes correctly.
+
+CCBUG: 235193
+---
+ phonon/pulsesupport.cpp | 25 +++++++++++++++++++++++++
+ 1 files changed, 25 insertions(+), 0 deletions(-)
+
+diff --git a/phonon/pulsesupport.cpp b/phonon/pulsesupport.cpp
+index f4f2a13..92a732d 100644
+--- a/phonon/pulsesupport.cpp
++++ b/phonon/pulsesupport.cpp
+@@ -569,6 +569,31 @@ static void context_state_callback(pa_context *c, void *)
+ return;
+ }
+ pa_operation_unref(o);
++
++ // In the case of reconnection or simply lagging behind the stream object creation
++ // on startup (due to the probe+reconnect system), we invalidate all loaded streams
++ // and then load up info about all streams.
++ for (QMap<QString, PulseStream*>::iterator it = s_outputStreams.begin(); it != s_outputStreams.end(); ++it) {
++ PulseStream *stream = *it;
++ logMessage(QString("Phonon Output Stream %1 is gone at the PA end. Marking it as invalid in our cache as we may reuse it.").arg(stream->uuid()));
++ stream->setIndex(PA_INVALID_INDEX);
++ }
++ if (!(o = pa_context_get_sink_input_info_list(c, sink_input_cb, NULL))) {
++ logMessage(QString("pa_context_get_sink_input_info_list() failed"));
++ return;
++ }
++ pa_operation_unref(o);
++
++ for (QMap<QString, PulseStream*>::iterator it = s_captureStreams.begin(); it != s_captureStreams.end(); ++it) {
++ PulseStream *stream = *it;
++ logMessage(QString("Phonon Capture Stream %1 is gone at the PA end. Marking it as invalid in our cache as we may reuse it.").arg(stream->uuid()));
++ stream->setIndex(PA_INVALID_INDEX);
++ }
++ if (!(o = pa_context_get_source_output_info_list(c, source_output_cb, NULL))) {
++ logMessage(QString("pa_context_get_source_output_info_list() failed"));
++ return;
++ }
++ pa_operation_unref(o);
+ }
+
+ #ifdef HAVE_PULSEAUDIO_DEVICE_MANAGER
+--
+1.6.1
+
diff --git a/media-sound/phonon/files/phonon-4.4.1-xine-volume.patch b/media-sound/phonon/files/phonon-4.4.1-xine-volume.patch
new file mode 100644
index 000000000000..5d25d9df86e0
--- /dev/null
+++ b/media-sound/phonon/files/phonon-4.4.1-xine-volume.patch
@@ -0,0 +1,35 @@
+From b44f19d7038f7e6182db4d29aee39dab569193fd Mon Sep 17 00:00:00 2001
+From: Colin Guthrie <cguthrie@mandriva.org>
+Date: Sat, 24 Apr 2010 14:25:31 +0100
+Subject: [PATCH] xine: Initialise volume to 1.
+
+When PulseAudio is used, it's essential that the internal representation
+of the volume remains at the maxium. Xine will use this to set the initial volume.
+
+Thankfully, xine's PulseAudio output does not seem to use per-application volume control
+as otherwise this 100% would be passed on an prevent PA from saving
+volumes properly.
+
+Currently, however one more problem remains with Xine+PA+volume
+in that the standard volume widget does not seem to be hooked up
+correctly. I'll look at this problem next.
+BUG: 235193
+---
+ xine/audiooutput.cpp | 1 +
+ 1 files changed, 1 insertions(+), 0 deletions(-)
+
+diff --git a/xine/audiooutput.cpp b/xine/audiooutput.cpp
+index 05b9240..f9f922e 100644
+--- a/xine/audiooutput.cpp
++++ b/xine/audiooutput.cpp
+@@ -48,6 +48,7 @@ namespace Xine
+
+ AudioOutput::AudioOutput(QObject *parent)
+ : AbstractAudioOutput(new AudioOutputXT, parent)
++ , m_volume(1.0)
+ {
+ }
+
+--
+1.6.1
+
diff --git a/media-sound/phonon/phonon-4.4.1.ebuild b/media-sound/phonon/phonon-4.4.1.ebuild
index 7d0cea83bf56..e3210a1ac192 100644
--- a/media-sound/phonon/phonon-4.4.1.ebuild
+++ b/media-sound/phonon/phonon-4.4.1.ebuild
@@ -1,6 +1,6 @@
# Copyright 1999-2010 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/media-sound/phonon/phonon-4.4.1.ebuild,v 1.1 2010/05/17 16:01:08 reavertm Exp $
+# $Header: /var/cvsroot/gentoo-x86/media-sound/phonon/phonon-4.4.1.ebuild,v 1.2 2010/05/23 12:09:36 spatz Exp $
EAPI="2"
@@ -39,6 +39,11 @@ DEPEND="${RDEPEND}
>=dev-util/automoc-0.9.87
"
+PATCHES=(
+ "${FILESDIR}/${P}-xine-volume.patch"
+ "${FILESDIR}/${P}-pulseaudio-connect.patch"
+)
+
S=${WORKDIR}/${P/.0}
pkg_setup() {
@@ -61,6 +66,8 @@ src_prepare() {
-i CMakeLists.txt \
|| die "failed to enable GStreamer backend"
fi
+
+ base_src_prepare
}
src_configure() {