From f259431ae2b670d15b84d4e69e8babac1759d226 Mon Sep 17 00:00:00 2001 From: Rex Dieter Date: Thu, 21 Jan 2010 20:44:40 +0000 Subject: [PATCH] - no sound with phonon-xine/pulseaudio (kde#223662, rh#553945) --- phonon-4.3.80-kde223662.patch | 51 +++++++++++++++++++++++++++++++++++ phonon.spec | 8 +++++- 2 files changed, 58 insertions(+), 1 deletion(-) create mode 100644 phonon-4.3.80-kde223662.patch diff --git a/phonon-4.3.80-kde223662.patch b/phonon-4.3.80-kde223662.patch new file mode 100644 index 0000000..2eacfcf --- /dev/null +++ b/phonon-4.3.80-kde223662.patch @@ -0,0 +1,51 @@ +--- trunk/kdesupport/phonon/xine/audiooutput.cpp 2009/12/27 16:57:19 1066664 ++++ trunk/kdesupport/phonon/xine/audiooutput.cpp 2010/01/21 20:13:50 1078226 +@@ -26,6 +26,7 @@ + #include + #include + #include ++#include + #include "mediaobject.h" + #include "backend.h" + #include "events.h" +@@ -48,10 +49,6 @@ + AudioOutput::AudioOutput(QObject *parent) + : AbstractAudioOutput(new AudioOutputXT, parent) + { +- // Always initialise the "device" in use. +- // This is needed for PulseAudio support as subsequent calls to setOutputDevice() +- // are suppressed +- setOutputDevice(0); + } + + AudioOutput::~AudioOutput() +@@ -132,6 +129,17 @@ + { + K_XT(AudioOutput); + xine_audio_port_t *port = 0; ++ ++ PulseSupport *pulse = PulseSupport::getInstance(); ++ if (pulse->isActive()) { ++ // Here we trust that the PA plugin is setup correctly and we just want to use it. ++ const QByteArray &outputPlugin = "pulseaudio"; ++ debug() << Q_FUNC_INFO << "PA Active: use output plugin:" << outputPlugin; ++ port = xine_open_audio_driver(xt->m_xine, outputPlugin.constData(), 0); ++ debug() << Q_FUNC_INFO << "----------------------------------------------- audio_port created"; ++ return port; ++ } ++ + if (!deviceDesc.isValid()) { + // use null output for invalid devices + port = xine_open_audio_driver(xt->m_xine, "none", 0); +--- trunk/kdesupport/phonon/xine/backend.cpp 2009/12/27 16:57:19 1066664 ++++ trunk/kdesupport/phonon/xine/backend.cpp 2010/01/21 20:13:50 1078226 +@@ -588,9 +588,6 @@ + + QByteArray Backend::audioDriverFor(int audioDevice) + { +- if (PulseSupport::getInstance()->isActive()) +- return "pulseaudio"; +- + instance()->checkAudioOutputs(); + const Backend *const that = instance(); + for (int i = 0; i < that->m_audioOutputInfos.size(); ++i) { diff --git a/phonon.spec b/phonon.spec index f240d29..93f2e68 100644 --- a/phonon.spec +++ b/phonon.spec @@ -4,7 +4,7 @@ Summary: Multimedia framework api Name: phonon Version: 4.3.80 -Release: 4%{?dist} +Release: 5%{?dist} Group: System Environment/Libraries License: LGPLv2+ URL: http://phonon.kde.org/ @@ -34,6 +34,8 @@ Patch53: phonon-4.3.50-phonon-allow-stop-empty-source.patch Patch54: phonon-4.3.80-fix-gstreamer-pulseaudio-deadlock.patch ## Upstream patches +# http://bugs.kde.org/223662 +Patch100: phonon-4.3.80-kde223662.patch BuildRequires: automoc4 >= 0.9.86 BuildRequires: cmake >= 2.6.0 @@ -101,6 +103,7 @@ Provides: %{name}-backend-gst = %{version}-%{release} %patch52 -p1 -b .gstreamer-fix-seekable-query-failed %patch53 -p1 -b .phonon-allow-stop-empty-source %patch54 -p1 -b .gstreamer-pulseaudio-deadlock +%patch100 -p3 -b .kde223662 %build @@ -205,6 +208,9 @@ gtk-update-icon-cache %{_kde4_iconsdir}/hicolor &> /dev/null ||: %changelog +* Thu Jan 21 2010 Rex Dieter - 4.3.80-5 +- no sound with phonon-xine/pulseaudio (kde#223662, rh#553945) + * Thu Jan 21 2010 Rex Dieter - 4.3.80-4 - snarf mdv patches