rpms/phonon/F-11 phonon-4.2.0-ogg-mime-type.patch, NONE, 1.1 phonon-4.3.50-fix-decodebin-usage.patch, NONE, 1.1 phonon-4.3.50-gstreamer-fix-seekable-query-failed.patch, NONE, 1.1 phonon-4.3.50-phonon-allow-stop-empty-source.patch, NONE, 1.1 phonon-4.3.80-fix-gstreamer-pulseaudio-deadlock.patch, NONE, 1.1 phonon-4.3.80-kde223662.patch, NONE, 1.1 phonon.spec, 1.43, 1.44
Rex Dieter
rdieter at fedoraproject.org
Thu Jan 21 20:48:03 UTC 2010
Author: rdieter
Update of /cvs/pkgs/rpms/phonon/F-11
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv26472
Modified Files:
phonon.spec
Added Files:
phonon-4.2.0-ogg-mime-type.patch
phonon-4.3.50-fix-decodebin-usage.patch
phonon-4.3.50-gstreamer-fix-seekable-query-failed.patch
phonon-4.3.50-phonon-allow-stop-empty-source.patch
phonon-4.3.80-fix-gstreamer-pulseaudio-deadlock.patch
phonon-4.3.80-kde223662.patch
Log Message:
sync w/devel
phonon-4.2.0-ogg-mime-type.patch:
backend.cpp | 9 +++++++++
1 file changed, 9 insertions(+)
--- NEW FILE phonon-4.2.0-ogg-mime-type.patch ---
Index: gstreamer/backend.cpp
===================================================================
--- gstreamer/backend.cpp (revision 862019)
+++ gstreamer/backend.cpp (working copy)
@@ -226,6 +227,15 @@
}
}
g_list_free(factoryList);
+ if (availableMimeTypes.contains("audio/x-vorbis")
+ && availableMimeTypes.contains("application/x-ogm-audio")) {
+ if (!availableMimeTypes.contains("audio/x-vorbis+ogg"))
+ availableMimeTypes.append("audio/x-vorbis+ogg");
+ if (!availableMimeTypes.contains("application/ogg")) /* *.ogg */
+ availableMimeTypes.append("application/ogg");
+ if (!availableMimeTypes.contains("audio/ogg")) /* *.oga */
+ availableMimeTypes.append("audio/ogg");
+ }
availableMimeTypes.sort();
return availableMimeTypes;
}
phonon-4.3.50-fix-decodebin-usage.patch:
gsthelper.cpp | 2 +-
mediaobject.cpp | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
--- NEW FILE phonon-4.3.50-fix-decodebin-usage.patch ---
Index: gstreamer/mediaobject.cpp
===================================================================
--- gstreamer/mediaobject.cpp (revision 1040729)
+++ gstreamer/mediaobject.cpp (working copy)
@@ -484,7 +484,7 @@
gst_object_ref (GST_OBJECT (m_pipeline));
gst_object_sink (GST_OBJECT (m_pipeline));
- m_decodebin = gst_element_factory_make ("decodebin", NULL);
+ m_decodebin = gst_element_factory_make ("decodebin2", NULL);
g_signal_connect (m_decodebin, "new-decoded-pad", G_CALLBACK (&cb_newpad), this);
g_signal_connect (m_decodebin, "unknown-type", G_CALLBACK (&cb_unknown_type), this);
g_signal_connect (m_decodebin, "no-more-pads", G_CALLBACK (&cb_no_more_pads), this);
Index: gstreamer/gsthelper.cpp
===================================================================
--- gstreamer/gsthelper.cpp (revision 1040694)
+++ gstreamer/gsthelper.cpp (working copy)
@@ -121,7 +121,7 @@
{
GstElement *playbin = 0;
//init playbin and add to our pipeline
- playbin = gst_element_factory_make("playbin", NULL);
+ playbin = gst_element_factory_make("playbin2", NULL);
//Create an identity element to redirect sound
GstElement *audioSinkBin = gst_bin_new (NULL);
phonon-4.3.50-gstreamer-fix-seekable-query-failed.patch:
mediaobject.cpp | 4 ++++
1 file changed, 4 insertions(+)
--- NEW FILE phonon-4.3.50-gstreamer-fix-seekable-query-failed.patch ---
diff -Naur phonon-4.3.50.orig/gstreamer/mediaobject.cpp phonon-4.3.50/gstreamer/mediaobject.cpp
--- phonon-4.3.50.orig/gstreamer/mediaobject.cpp 2009-10-11 02:24:30.000000000 +0200
+++ phonon-4.3.50/gstreamer/mediaobject.cpp 2009-10-11 02:28:25.000000000 +0200
@@ -852,6 +852,10 @@
else
m_backend->logMessage("Stream is non-seekable", Backend::Info, this);
} else {
+ if (m_seekable) {
+ m_seekable = false;
+ emit seekableChanged(m_seekable);
+ }
m_backend->logMessage("updateSeekable query failed", Backend::Info, this);
}
gst_query_unref (query);
phonon-4.3.50-phonon-allow-stop-empty-source.patch:
mediaobject.cpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
--- NEW FILE phonon-4.3.50-phonon-allow-stop-empty-source.patch ---
diff -Naur phonon-4.3.50.orig/phonon/mediaobject.cpp phonon-4.3.50/phonon/mediaobject.cpp
--- phonon-4.3.50.orig/phonon/mediaobject.cpp 2009-02-26 22:33:54.000000000 +0100
+++ phonon-4.3.50/phonon/mediaobject.cpp 2009-10-12 22:48:22.000000000 +0200
@@ -114,7 +114,7 @@
void MediaObject::stop()
{
K_D(MediaObject);
- if (d->backendObject() && isPlayable(d->mediaSource.type())) {
+ if (d->backendObject() && d->mediaSource.type() != MediaSource::Invalid) {
INTERFACE_CALL(stop());
}
}
phonon-4.3.80-fix-gstreamer-pulseaudio-deadlock.patch:
b/gstreamer/mediaobject.cpp | 5 +++--
gstreamer/mediaobject.cpp | 2 ++
2 files changed, 5 insertions(+), 2 deletions(-)
--- NEW FILE phonon-4.3.80-fix-gstreamer-pulseaudio-deadlock.patch ---
>From 104872f266cf6675e27cc6e122300f4ed5baf3ab Mon Sep 17 00:00:00 2001
From: Colin Guthrie <cguthrie at mandriva.org>
Date: Wed, 13 Jan 2010 22:57:29 +0000
Subject: [PATCH] gstreamer: Fix a problem where the fact a reset was needed was lost.
If you create the path (createPath()) *before* setting the media source,
(setCurrentSource()) the gstreamer backend would forget the fact that a reset
was needed and ultimately end up in an error state.
This change simply does not wipe out the m_resetNeeded flag when
the source is set and leaves it as it is.
This fixes the test case application posted on
https://qa.mandriva.com/show_bug.cgi?id=56807
---
gstreamer/mediaobject.cpp | 4 +++-
1 files changed, 3 insertions(+), 1 deletions(-)
diff --git a/gstreamer/mediaobject.cpp b/gstreamer/mediaobject.cpp
index 15eb080..40e4246 100644
--- a/gstreamer/mediaobject.cpp
+++ b/gstreamer/mediaobject.cpp
@@ -916,7 +916,9 @@ void MediaObject::setSource(const MediaSource &source)
// Go into to loading state
changeState(Phonon::LoadingState);
m_loading = true;
- m_resetNeeded = false;
+ // IMPORTANT: Honor the m_resetNeeded flag as it currently stands.
+ // See https://qa.mandriva.com/show_bug.cgi?id=56807
+ //m_resetNeeded = false;
m_resumeState = false;
m_pendingState = Phonon::StoppedState;
--
1.6.6
commit 6fbea9b56a12281819a8c04afd5caa53cfeee39f
Author: cguthrie <cguthrie at 283d02a7-25f6-0310-bc7c-ecb5cbfe19da>
Date: Thu Jan 21 18:23:12 2010 +0000
gstreamer: Fix a problem encountered when playing, stopping and playing again.
As reported by Harald Fernengel, a similar problem to that fixed in r1076454
also exists when you play->stop->play a media object.
This should fix the issue by marking a reset needed whenever we reach the stopped state.
Thanks to Harald for finding the problem and pointing the way to the fix.
git-svn-id: svn+ssh://svn.kde.org/home/kde/trunk/kdesupport/phonon@1078188 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
diff --git a/gstreamer/mediaobject.cpp b/gstreamer/mediaobject.cpp
index 509e749..d1707dd 100644
--- a/gstreamer/mediaobject.cpp
+++ b/gstreamer/mediaobject.cpp
@@ -741,6 +741,8 @@ void MediaObject::changeState(State newstate)
case Phonon::StoppedState:
m_backend->logMessage("phonon state changed: Stopped", Backend::Info, this);
+ // We must reset the pipeline when playing again
+ m_resetNeeded = true;
m_tickTimer->stop();
break;
phonon-4.3.80-kde223662.patch:
audiooutput.cpp | 16 ++++++++++++----
backend.cpp | 3 ---
2 files changed, 12 insertions(+), 7 deletions(-)
--- NEW FILE phonon-4.3.80-kde223662.patch ---
--- 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 <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 @@
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) {
Index: phonon.spec
===================================================================
RCS file: /cvs/pkgs/rpms/phonon/F-11/phonon.spec,v
retrieving revision 1.43
retrieving revision 1.44
diff -u -p -r1.43 -r1.44
--- phonon.spec 18 Jan 2010 11:01:07 -0000 1.43
+++ phonon.spec 21 Jan 2010 20:48:02 -0000 1.44
@@ -4,7 +4,7 @@
Summary: Multimedia framework api
Name: phonon
Version: 4.3.80
-Release: 3%{?dist}
+Release: 5%{?dist}
Group: System Environment/Libraries
License: LGPLv2+
URL: http://phonon.kde.org/
@@ -26,8 +26,16 @@ Source16: hi128-phonon-gstreamer.png
# maybe we can just wait for the improvie PA support to land.
Patch1: phonon-4.3.50-xine_pulseaudio.patch
+## Mandriva/upstreamable patches
+Patch50: phonon-4.2.0-ogg-mime-type.patch
+Patch51: phonon-4.3.50-fix-decodebin-usage.patch
+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
+
## Upstream patches
-Patch100: phonon-4.3.80-gstreamer-resetneeded.patch
+# http://bugs.kde.org/223662
+Patch100: phonon-4.3.80-kde223662.patch
BuildRequires: automoc4 >= 0.9.86
BuildRequires: cmake >= 2.6.0
@@ -89,12 +97,21 @@ Provides: %{name}-backend-gst = %{versi
%if 0%{?pa_keep_old_hacks}
%patch1 -p1 -b .xine_pulseaudio
%endif
-%patch100 -p0 -b .resetneeded
+
+%patch50 -p0 -b .ogg-mime-type
+%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
+%patch100 -p3 -b .kde223662
+
%build
mkdir -p %{_target_platform}
pushd %{_target_platform}
-%{cmake} ..
+%{cmake} \
+ -DUSE_INSTALL_PLUGIN=TRUE \
+ ..
popd
make %{?_smp_mflags} -C %{_target_platform}%{?xine_only:/xine}
@@ -191,6 +208,12 @@ gtk-update-icon-cache %{_kde4_iconsdir}/
%changelog
+* Thu Jan 21 2010 Rex Dieter <rdieter at fedoraproject.org> - 4.3.80-5
+- no sound with phonon-xine/pulseaudio (kde#223662, rh#553945)
+
+* Thu Jan 21 2010 Rex Dieter <rdieter at fedoraproject.org> - 4.3.80-4
+- snarf mdv patches
+
* Mon Jan 18 2010 Than Ngo <than at redhat.com> - 4.3.80-3
- backport GStreamer backend bugfixes, fix random disappearing sound under KDE
More information about the scm-commits
mailing list