From c6d255520c204b0b4f7013d6a4776924681e1c75 Mon Sep 17 00:00:00 2001 From: Lukas Tinkl Date: Tue, 3 Mar 2009 16:41:33 +0000 Subject: [PATCH] backport some GStreamer fixes --- phonon-4.3.2-gstreamer-utf8-url.patch | 59 ++++++++++++++++++++++++ phonon-4.3.2-gstreamer-volumefader.patch | 16 +++++++ phonon.spec | 14 +++++- 3 files changed, 87 insertions(+), 2 deletions(-) create mode 100644 phonon-4.3.2-gstreamer-utf8-url.patch create mode 100644 phonon-4.3.2-gstreamer-volumefader.patch diff --git a/phonon-4.3.2-gstreamer-utf8-url.patch b/phonon-4.3.2-gstreamer-utf8-url.patch new file mode 100644 index 0000000..1ce8e38 --- /dev/null +++ b/phonon-4.3.2-gstreamer-utf8-url.patch @@ -0,0 +1,59 @@ +Index: gstreamer/mediaobject.h +=================================================================== +--- gstreamer/mediaobject.h (revision 932755) ++++ gstreamer/mediaobject.h (revision 932756) +@@ -185,7 +185,7 @@ + /* + * @param encodedUrl percent-encoded QString for source compat reasons. Should change to QUrl + */ +- bool createPipefromURL(const QString &encodedUrl); ++ bool createPipefromURL(const QUrl &url); + bool createPipefromStream(const MediaSource &); + + private Q_SLOTS: +Index: gstreamer/mediaobject.cpp +=================================================================== +--- gstreamer/mediaobject.cpp (revision 932755) ++++ gstreamer/mediaobject.cpp (revision 932756) +@@ -347,11 +347,8 @@ + * + * returns true if successful + */ +-bool MediaObject::createPipefromURL(const QString &encodedUrl) ++bool MediaObject::createPipefromURL(const QUrl &url) + { +- // Convert back to URL +- QUrl url(encodedUrl, QUrl::StrictMode); +- + // Remove any existing data source + if (m_datasource) { + gst_bin_remove(GST_BIN(m_pipeline), m_datasource); +@@ -361,7 +358,7 @@ + + // Verify that the uri can be parsed + if (!url.isValid()) { +- m_backend->logMessage(QString("%1 is not a valid URI").arg(encodedUrl)); ++ m_backend->logMessage(QString("%1 is not a valid URI").arg(url.toString())); + return false; + } + +@@ -875,8 +872,7 @@ + + switch (source.type()) { + case MediaSource::Url: { +- QString urlString = source.url().toEncoded(); +- if (createPipefromURL(urlString)) ++ if (createPipefromURL(source.url())) + m_loading = true; + else + setError(tr("Could not open media source.")); +@@ -884,8 +880,7 @@ + break; + + case MediaSource::LocalFile: { +- QString urlString = QUrl::fromLocalFile(source.fileName()).toString(); +- if (createPipefromURL(urlString)) ++ if (createPipefromURL(QUrl::fromLocalFile(source.fileName()))) + m_loading = true; + else + setError(tr("Could not open media source.")); diff --git a/phonon-4.3.2-gstreamer-volumefader.patch b/phonon-4.3.2-gstreamer-volumefader.patch new file mode 100644 index 0000000..6dec292 --- /dev/null +++ b/phonon-4.3.2-gstreamer-volumefader.patch @@ -0,0 +1,16 @@ +Index: gstreamer/mediaobject.cpp +=================================================================== +--- gstreamer/mediaobject.cpp (revision 932979) ++++ gstreamer/mediaobject.cpp (revision 932980) +@@ -141,9 +141,9 @@ + if (m_resumeState) + return; + +- if (m_state == Phonon::PlayingState || m_state == Phonon::PausedState) { ++ if (m_pendingState == Phonon::PlayingState || m_pendingState == Phonon::PausedState) { + m_resumeState = true; +- m_oldState = m_state; ++ m_oldState = m_pendingState; + m_oldPos = getPipelinePos(); + } + } diff --git a/phonon.spec b/phonon.spec index 299f63f..4312b4d 100644 --- a/phonon.spec +++ b/phonon.spec @@ -1,7 +1,7 @@ Summary: Multimedia framework api Name: phonon Version: 4.3.1 -Release: 1%{?dist} +Release: 2%{?dist} Group: System Environment/Libraries License: LGPLv2+ URL: http://phonon.kde.org/ @@ -15,6 +15,11 @@ Source1: http://gstreamer.freedesktop.org/data/images/artwork/gstreamer-logo.svg # it as a "sink", and then the device setting is ignored entirely. Patch0: phonon-4.2.96-pulseaudio.patch Patch1: phonon-4.2.96-xine-pulseaudio.patch + +## Upstream patches +Patch100: phonon-4.3.2-gstreamer-utf8-url.patch +Patch101: phonon-4.3.2-gstreamer-volumefader.patch + BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) BuildRequires: automoc4 >= 0.9.86 @@ -73,7 +78,8 @@ Requires: pkgconfig %setup -q -n phonon-%{version}%{?alphatag} %patch0 -p1 -b .pulseaudio %patch1 -p1 -b .xine-pulseaudio - +%patch100 -p0 -b .gstreamer-utf8-url +%patch101 -p0 -b .gstreamer-volumefader %build mkdir -p %{_target_platform} @@ -153,6 +159,10 @@ xdg-icon-resource forceupdate --theme hicolor 2> /dev/null || : %changelog +* Tue Mar 3 2009 Lukáš Tinkl - 4.3.1-2 +- backport GStreamer backend bugfixes (UTF-8 file handling, volume +fader) + * Fri Feb 27 2009 Than Ngo - 4.3.1-1 - 4.3.1