rpms/phonon/devel phonon-4.3.80-fix-xine-pulseaudio-init.patch, NONE, 1.1 phonon.spec, 1.63, 1.64 phonon-4.3.80-kde223662.patch, 1.1, NONE

Rex Dieter rdieter at fedoraproject.org
Fri Jan 22 17:10:22 UTC 2010


Author: rdieter

Update of /cvs/pkgs/rpms/phonon/devel
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv11131

Modified Files:
	phonon.spec 
Added Files:
	phonon-4.3.80-fix-xine-pulseaudio-init.patch 
Removed Files:
	phonon-4.3.80-kde223662.patch 
Log Message:
phonon-4.3.80-fix-xine-pulseaudio-init.patch
replaces
phonon-4.3.80-kde223662.patch

more nicely formatted and commented

* Fri Jan 22 2010 Rex Dieter <rdieter at fedoraproject.org> - 4.3.80-6
- sync w/mdv patches


phonon-4.3.80-fix-xine-pulseaudio-init.patch:
 audiooutput.cpp |   16 ++++++++++++----
 backend.cpp     |    3 ---
 2 files changed, 12 insertions(+), 7 deletions(-)

--- NEW FILE phonon-4.3.80-fix-xine-pulseaudio-init.patch ---
commit 7ab2d9572662f1afc776e5d90ecf35e212e3543c
Author: cguthrie <cguthrie at 283d02a7-25f6-0310-bc7c-ecb5cbfe19da>
Date:   Thu Jan 21 20:13:50 2010 +0000

    xine: Always ensure we create the correct xine port for audio output.
    
    When integrating with pulseaudio it was possible that the port was not correctly created.
    This could happen if phonon was started and the first device detected from PA was a capture device
    rather than a playback device (which is unlikely) or if the first device detected
    was a removable audio device which was subsequently removed before playback started.
    
    There are possibly other cases where this could happen too.
    In this case xine would create a null port.
    
    This change reverts a previous 'fix' committed in r1051721. I now issue a special case
    for dealing with PA support in the createPort() method. As a result I no longer need
    to special case handle the audioDriverFor() method of the backend so this is
    now removed.
    
    CCBUG: 223662
    
    git-svn-id: svn+ssh://svn.kde.org/home/kde/trunk/kdesupport/phonon@1078226 283d02a7-25f6-0310-bc7c-ecb5cbfe19da

diff --git a/xine/audiooutput.cpp b/xine/audiooutput.cpp
index c6ca730..1444aa3 100644
--- a/xine/audiooutput.cpp
+++ b/xine/audiooutput.cpp
@@ -26,6 +26,7 @@
 #include <sys/ioctl.h>
 #include <iostream>
 #include <QSet>
+#include <phonon/pulsesupport_p.h>
 #include "mediaobject.h"
 #include "backend.h"
 #include "events.h"
@@ -48,10 +49,6 @@ namespace Xine
 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 @@ xine_audio_port_t *AudioOutput::createPort(const AudioOutputDevice &deviceDesc)
 {
     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);
diff --git a/xine/backend.cpp b/xine/backend.cpp
index 7e881da..9010b8c 100644
--- a/xine/backend.cpp
+++ b/xine/backend.cpp
@@ -588,9 +588,6 @@ QHash<QByteArray, QVariant> Backend::audioOutputProperties(int audioDevice)
 
 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) {


Index: phonon.spec
===================================================================
RCS file: /cvs/pkgs/rpms/phonon/devel/phonon.spec,v
retrieving revision 1.63
retrieving revision 1.64
diff -u -p -r1.63 -r1.64
--- phonon.spec	22 Jan 2010 16:14:31 -0000	1.63
+++ phonon.spec	22 Jan 2010 17:10:22 -0000	1.64
@@ -4,7 +4,7 @@
 Summary: Multimedia framework api
 Name:    phonon
 Version: 4.3.80
-Release: 5%{?dist}.2
+Release: 6%{?dist}
 Group:   System Environment/Libraries
 License: LGPLv2+
 URL:     http://phonon.kde.org/
@@ -33,14 +33,14 @@ Patch51: phonon-4.3.50-fix-decodebin-usa
 Patch52: phonon-4.3.50-gstreamer-fix-seekable-query-failed.patch
 Patch53: phonon-4.3.50-phonon-allow-stop-empty-source.patch
 Patch54: phonon-4.3.80-fix-gstreamer-pulseaudio-deadlock.patch
+# http://bugs.kde.org/223662
+Patch55: phonon-4.3.80-fix-xine-pulseaudio-init.patch
 
 # patch adapted from http://permalink.gmane.org/gmane.comp.kde.users.multimedia/5700
 # splits out device_manager bits used only on pa >= 0.9.21
 Patch60: phonon-4.3.80-old_pa.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
@@ -108,9 +108,10 @@ Provides:  %{name}-backend-gst = %{versi
 %patch51 -p0 -b .fix-decodebin-usage
 %patch52 -p1 -b .gstreamer-fix-seekable-query-failed
 %patch53 -p1 -b .phonon-allow-stop-empty-source
-%patch54 -p1 -b .gstreamer-pulseaudio-deadlock
+%patch54 -p1 -b .fix-gstreamer-pulseaudio-deadlock
+%patch55 -p1 -b .fix-xine-pulseaudio-init
+
 %patch60 -p1 -b .old_pa
-%patch100 -p3 -b .kde223662
 
 
 %build
@@ -215,6 +216,9 @@ gtk-update-icon-cache %{_kde4_iconsdir}/
 
 
 %changelog
+* Fri Jan 22 2010 Rex Dieter <rdieter at fedoraproject.org> - 4.3.80-6
+- sync w/mdv patches
+
 * Fri Jan 22 2010 Rex Dieter <rdieter at fedoraproject.org> - 4.3.80-5.2
 - F11: patch/modularize pa device-manager bits 
 


--- phonon-4.3.80-kde223662.patch DELETED ---



More information about the scm-commits mailing list