diff options
author | Dror Levin <spatz@gentoo.org> | 2010-05-23 12:09:37 +0000 |
---|---|---|
committer | Dror Levin <spatz@gentoo.org> | 2010-05-23 12:09:37 +0000 |
commit | 4d691521eb2423fa82866a13b9adba7dbb921beb (patch) | |
tree | 41977436dcd102b67a6dff9b790ff9c232b0b754 /media-sound/phonon/files | |
parent | Use tc-has-openmp function from toolchain-funcs.eclass to check libgomp avail... (diff) | |
download | historical-4d691521eb2423fa82866a13b9adba7dbb921beb.tar.gz historical-4d691521eb2423fa82866a13b9adba7dbb921beb.tar.bz2 historical-4d691521eb2423fa82866a13b9adba7dbb921beb.zip |
Adding upstream patches for fixes with pulseaudio and xine, bug 321155. Thanks to Fabian Köster.
Package-Manager: portage-2.2_rc67/cvs/Linux x86_64
Diffstat (limited to 'media-sound/phonon/files')
-rw-r--r-- | media-sound/phonon/files/phonon-4.4.1-pulseaudio-connect.patch | 60 | ||||
-rw-r--r-- | media-sound/phonon/files/phonon-4.4.1-xine-volume.patch | 35 |
2 files changed, 95 insertions, 0 deletions
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 + |