summaryrefslogtreecommitdiff
path: root/source/l/phonon
diff options
context:
space:
mode:
Diffstat (limited to 'source/l/phonon')
-rwxr-xr-xsource/l/phonon/phonon.SlackBuild13
-rw-r--r--source/l/phonon/phonon.gstreamer.qt-4.5.1.diff431
-rw-r--r--source/l/phonon/slack-desc4
3 files changed, 8 insertions, 440 deletions
diff --git a/source/l/phonon/phonon.SlackBuild b/source/l/phonon/phonon.SlackBuild
index 74e4518c..79c9629f 100755
--- a/source/l/phonon/phonon.SlackBuild
+++ b/source/l/phonon/phonon.SlackBuild
@@ -22,10 +22,9 @@
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-VERSION=4.4.1
-SRCVER=4.4.1
+PKGNAM=phonon
+VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
BUILD=${BUILD:-1}
-NUMJOBS=${NUMJOBS:--j6}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
@@ -37,6 +36,8 @@ if [ -z "$ARCH" ]; then
esac
fi
+NUMJOBS=${NUMJOBS:--j6}
+
CWD=$(pwd)
TMP=${TMP:-/tmp}
PKG=$TMP/package-phonon
@@ -58,11 +59,9 @@ fi
rm -rf $PKG
mkdir -p $TMP $PKG
cd $TMP
-rm -r phonon-$SRCVER
+rm -r phonon-$VERSION
tar xvf $CWD/phonon-$VERSION.tar.bz2 || exit 1
-cd phonon-$SRCVER || exit 1
-
-#zcat $CWD/phonon.gstreamer.qt-4.5.1.diff.gz | patch -p1 || exit 1
+cd phonon-$VERSION || exit 1
chown -R root:root .
find . \
diff --git a/source/l/phonon/phonon.gstreamer.qt-4.5.1.diff b/source/l/phonon/phonon.gstreamer.qt-4.5.1.diff
deleted file mode 100644
index d55d2f88..00000000
--- a/source/l/phonon/phonon.gstreamer.qt-4.5.1.diff
+++ /dev/null
@@ -1,431 +0,0 @@
-diff -u -r --new-file phonon-4.3.1.orig/gstreamer/CMakeLists.txt phonon-4.3.1/gstreamer/CMakeLists.txt
---- phonon-4.3.1.orig/gstreamer/CMakeLists.txt 2009-02-27 04:15:42.000000000 -0600
-+++ phonon-4.3.1/gstreamer/CMakeLists.txt 2009-10-19 13:07:39.000000000 -0500
-@@ -1,4 +1,4 @@
--# Copyright (C) 2009 Nokia Corporation. All rights reserved.
-+# Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
- # Copyright (C) 2008 Matthias Kretz <kretz@kde.org>
- #
- # This library is free software: you can redistribute it and/or modify
-@@ -19,7 +19,6 @@
- if (BUILD_PHONON_GSTREAMER)
- include_directories(${GSTREAMER_INCLUDE_DIR} ${GLIB2_INCLUDE_DIR}
- ${LIBXML2_INCLUDE_DIR})
-- add_definitions(-DPHONON_BACKEND_VERSION_4_2)
-
- set(phonon_gstreamer_SRCS
- audiooutput.cpp
-@@ -46,17 +45,17 @@
- )
-
- find_package(Alsa)
-- macro_ensure_version("0.10.22" ${GSTREAMER_VERSION} GSTREAMER_HAS_NONBLOCKING_ALSASINK)
-- if(ALSA_FOUND AND NOT GSTREAMER_HAS_NONBLOCKING_ALSASINK)
-+ if(ALSA_FOUND)
- add_definitions(-DUSE_ALSASINK2)
- include_directories(${ALSA_INCLUDES})
- set(phonon_gstreamer_SRCS
- ${phonon_gstreamer_SRCS}
- alsasink2.c
- )
-- endif(ALSA_FOUND AND NOT GSTREAMER_HAS_NONBLOCKING_ALSASINK)
-+ endif(ALSA_FOUND)
-
-- automoc4_add_library(phonon_gstreamer SHARED ${phonon_gstreamer_SRCS})
-+ automoc4(phonon_gstreamer phonon_gstreamer_SRCS)
-+ add_library(phonon_gstreamer SHARED ${phonon_gstreamer_SRCS})
- set_target_properties(phonon_gstreamer PROPERTIES PREFIX "")
- target_link_libraries(phonon_gstreamer
- ${QT_QTOPENGL_LIBRARY}
-diff -u -r --new-file phonon-4.3.1.orig/gstreamer/ConfigureChecks.cmake phonon-4.3.1/gstreamer/ConfigureChecks.cmake
---- phonon-4.3.1.orig/gstreamer/ConfigureChecks.cmake 2009-02-27 04:15:42.000000000 -0600
-+++ phonon-4.3.1/gstreamer/ConfigureChecks.cmake 2009-10-19 13:07:39.000000000 -0500
-@@ -1,4 +1,4 @@
--# Copyright (C) 2009 Nokia Corporation. All rights reserved.
-+# Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
- #
- # This library is free software: you can redistribute it and/or modify
- # it under the terms of the GNU Lesser General Public License as published by
-@@ -17,7 +17,6 @@
-
- macro_optional_find_package(GStreamerPlugins)
- macro_log_feature(GSTREAMER_PLUGIN_VIDEO_LIBRARIES "GStreamer video plugin" "The gstreamer video plugin (part of gstreamer-plugins-base 0.10) is required for the multimedia gstreamer backend" "http://gstreamer.freedesktop.org/modules/" FALSE "0.10")
--macro_log_feature(GSTREAMER_PLUGIN_AUDIO_LIBRARIES "GStreamer audio plugin" "The gstreamer audio plugin (part of gstreamer-plugins-base 0.10) is required for the multimedia gstreamer backend" "http://gstreamer.freedesktop.org/modules/" FALSE "0.10")
-
- macro_optional_find_package(GLIB2)
- macro_log_feature(GLIB2_FOUND "GLib2" "GLib 2 is required to compile the gstreamer backend for Phonon" "http://www.gtk.org/download/" FALSE)
-@@ -31,8 +30,8 @@
- macro_optional_find_package(OpenGL)
- macro_log_feature(OPENGL_FOUND "OpenGL" "OpenGL support is required to compile the gstreamer backend for Phonon" "" FALSE)
-
--if (GSTREAMER_FOUND AND GSTREAMER_PLUGIN_VIDEO_LIBRARIES AND GSTREAMER_PLUGIN_AUDIO_LIBRARIES AND GLIB2_FOUND AND GOBJECT_FOUND AND LIBXML2_FOUND AND OPENGL_FOUND)
-+if (GSTREAMER_FOUND AND GSTREAMER_PLUGIN_VIDEO_LIBRARIES AND GLIB2_FOUND AND GOBJECT_FOUND AND LIBXML2_FOUND AND OPENGL_FOUND)
- set(BUILD_PHONON_GSTREAMER TRUE)
--else (GSTREAMER_FOUND AND GSTREAMER_PLUGIN_VIDEO_LIBRARIES AND GSTREAMER_PLUGIN_AUDIO_LIBRARIES AND GLIB2_FOUND AND GOBJECT_FOUND AND LIBXML2_FOUND AND OPENGL_FOUND)
-+else (GSTREAMER_FOUND AND GSTREAMER_PLUGIN_VIDEO_LIBRARIES AND GLIB2_FOUND AND GOBJECT_FOUND AND LIBXML2_FOUND AND OPENGL_FOUND)
- set(BUILD_PHONON_GSTREAMER FALSE)
--endif (GSTREAMER_FOUND AND GSTREAMER_PLUGIN_VIDEO_LIBRARIES AND GSTREAMER_PLUGIN_AUDIO_LIBRARIES AND GLIB2_FOUND AND GOBJECT_FOUND AND LIBXML2_FOUND AND OPENGL_FOUND)
-+endif (GSTREAMER_FOUND AND GSTREAMER_PLUGIN_VIDEO_LIBRARIES AND GLIB2_FOUND AND GOBJECT_FOUND AND LIBXML2_FOUND AND OPENGL_FOUND)
-diff -u -r --new-file phonon-4.3.1.orig/gstreamer/audiooutput.cpp phonon-4.3.1/gstreamer/audiooutput.cpp
---- phonon-4.3.1.orig/gstreamer/audiooutput.cpp 2009-02-27 04:15:42.000000000 -0600
-+++ phonon-4.3.1/gstreamer/audiooutput.cpp 2009-10-19 13:07:39.000000000 -0500
-@@ -42,6 +42,7 @@
- static int count = 0;
- m_name = "AudioOutput" + QString::number(count++);
- if (m_backend->isValid()) {
-+ g_set_application_name(qApp->applicationName().toUtf8());
- m_audioBin = gst_bin_new (NULL);
- gst_object_ref (GST_OBJECT (m_audioBin));
- gst_object_sink (GST_OBJECT (m_audioBin));
-diff -u -r --new-file phonon-4.3.1.orig/gstreamer/mediaobject.cpp phonon-4.3.1/gstreamer/mediaobject.cpp
---- phonon-4.3.1.orig/gstreamer/mediaobject.cpp 2009-02-27 04:15:42.000000000 -0600
-+++ phonon-4.3.1/gstreamer/mediaobject.cpp 2009-10-19 13:19:20.000000000 -0500
-@@ -14,7 +14,6 @@
- You should have received a copy of the GNU Lesser General Public License
- along with this library. If not, see <http://www.gnu.org/licenses/>.
- */
--
- #include <cmath>
- #include <gst/interfaces/propertyprobe.h>
- #include "common.h"
-@@ -24,7 +23,6 @@
- #include "backend.h"
- #include "streamreader.h"
- #include "phononsrc.h"
--
- #include <QtCore>
- #include <QtCore/QTimer>
- #include <QtCore/QVector>
-@@ -78,6 +76,9 @@
- , m_videoGraph(0)
- , m_previousTickTime(-1)
- , m_resetNeeded(false)
-+ , m_autoplayTitles(true)
-+ , m_availableTitles(0)
-+ , m_currentTitle(1)
- {
- qRegisterMetaType<GstCaps*>("GstCaps*");
- qRegisterMetaType<State>("State");
-@@ -141,9 +142,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();
- }
- }
-@@ -347,11 +348,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 +359,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 +873,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 +881,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."));
-@@ -907,8 +903,13 @@
- break;
-
- case MediaSource::Disc: // CD tracks can be specified by setting the url in the following way uri=cdda:4
-- m_backend->logMessage("Source type Disc not currently supported", Backend::Warning, this);
-- setError(tr("Could not open media source."), Phonon::NormalError);
-+ {
-+ QUrl cdurl(QLatin1String("cdda://"));
-+ if (createPipefromURL(cdurl))
-+ m_loading = true;
-+ else
-+ setError(tr("Could not open media source."));
-+ }
- break;
-
- default:
-@@ -959,6 +960,19 @@
- m_hasVideo = m_videoStreamFound;
- emit hasVideoChanged(m_hasVideo);
- }
-+
-+ m_availableTitles = 1;
-+ gint64 titleCount;
-+ GstFormat format = gst_format_get_by_nick("track");
-+ if (gst_element_query_duration (m_pipeline, &format, &titleCount)) {
-+ int oldAvailableTitles = m_availableTitles;
-+ m_availableTitles = (int)titleCount;
-+ if (m_availableTitles != oldAvailableTitles) {
-+ emit availableTitlesChanged(m_availableTitles);
-+ m_backend->logMessage(QString("Available titles changed: %0").arg(m_availableTitles), Backend::Info, this);
-+ }
-+ }
-+
- }
-
- void MediaObject::setPrefinishMark(qint32 newPrefinishMark)
-@@ -1356,6 +1370,13 @@
- if (!m_seekable)
- m_atEndOfStream = true;
-
-+ if (m_autoplayTitles &&
-+ m_availableTitles > 1 &&
-+ m_currentTitle < m_availableTitles) {
-+ _iface_setCurrentTitle(m_currentTitle + 1);
-+ return;
-+ }
-+
- if (m_nextSource.type() != MediaSource::Invalid
- && m_nextSource.type() != MediaSource::Empty) { // We only emit finish when the queue is actually empty
- QTimer::singleShot (qMax(0, transitionTime()), this, SLOT(beginPlay()));
-@@ -1384,6 +1405,72 @@
- notify(&event);
- }
-
-+#ifndef QT_NO_PHONON_MEDIACONTROLLER
-+//interface management
-+bool MediaObject::hasInterface(Interface iface) const
-+{
-+ return iface == AddonInterface::TitleInterface;
-+}
-+
-+QVariant MediaObject::interfaceCall(Interface iface, int command, const QList<QVariant> &params)
-+{
-+ if (hasInterface(iface)) {
-+
-+ switch (iface)
-+ {
-+ case TitleInterface:
-+ switch (command)
-+ {
-+ case availableTitles:
-+ return _iface_availableTitles();
-+ case title:
-+ return _iface_currentTitle();
-+ case setTitle:
-+ _iface_setCurrentTitle(params.first().toInt());
-+ break;
-+ case autoplayTitles:
-+ return m_autoplayTitles;
-+ case setAutoplayTitles:
-+ m_autoplayTitles = params.first().toBool();
-+ break;
-+ }
-+ break;
-+ default:
-+ break;
-+ }
-+ }
-+ return QVariant();
-+}
-+#endif
-+
-+int MediaObject::_iface_availableTitles() const
-+{
-+ return m_availableTitles;
-+}
-+
-+int MediaObject::_iface_currentTitle() const
-+{
-+ return m_currentTitle;
-+}
-+
-+void MediaObject::_iface_setCurrentTitle(int title)
-+{
-+ GstFormat trackFormat = gst_format_get_by_nick("track");
-+ m_backend->logMessage(QString("setCurrentTitle %0").arg(title), Backend::Info, this);
-+ if ((title == m_currentTitle) || (title < 1) || (title > m_availableTitles))
-+ return;
-+
-+ m_currentTitle = title;
-+
-+ //let's seek to the beginning of the song
-+ if (gst_element_seek_simple(m_pipeline, trackFormat, GST_SEEK_FLAG_FLUSH, m_currentTitle - 1)) {
-+ updateTotalTime();
-+ m_atEndOfStream = false;
-+ emit titleChanged(title);
-+ emit totalTimeChanged(totalTime());
-+ }
-+}
-+
- } // ns Gstreamer
- } // ns Phonon
-
-diff -u -r --new-file phonon-4.3.1.orig/gstreamer/mediaobject.h phonon-4.3.1/gstreamer/mediaobject.h
---- phonon-4.3.1.orig/gstreamer/mediaobject.h 2009-02-27 04:15:42.000000000 -0600
-+++ phonon-4.3.1/gstreamer/mediaobject.h 2009-10-19 13:07:39.000000000 -0500
-@@ -21,7 +21,6 @@
- #include "backend.h"
- #include "common.h"
- #include "medianode.h"
--
- #include <phonon/mediaobjectinterface.h>
- #include <phonon/addoninterface.h>
-
-@@ -32,7 +31,6 @@
- #include <QtCore/QDate>
- #include <QtCore/QEvent>
- #include <QtCore/QUrl>
--
- #include <gst/gst.h>
-
- QT_BEGIN_NAMESPACE
-@@ -50,11 +48,20 @@
- class VideoPath;
- class AudioOutput;
-
--class MediaObject : public QObject, public MediaObjectInterface, public AddonInterface, public MediaNode
-+class MediaObject : public QObject, public MediaObjectInterface
-+#ifndef QT_NO_PHONON_MEDIACONTROLLER
-+ , public AddonInterface
-+#endif
-+ , public MediaNode
- {
- friend class Stream;
- Q_OBJECT
-- Q_INTERFACES(Phonon::MediaObjectInterface Phonon::AddonInterface Phonon::Gstreamer::MediaNode)
-+ Q_INTERFACES(Phonon::MediaObjectInterface
-+#ifndef QT_NO_PHONON_MEDIACONTROLLER
-+ Phonon::AddonInterface
-+#endif
-+ Phonon::Gstreamer::MediaNode
-+ )
-
- public:
-
-@@ -93,16 +100,10 @@
- MediaSource source() const;
-
- // No additional interfaces currently supported
-- bool hasInterface(Interface) const
-- {
-- return false;
-- }
--
-- QVariant interfaceCall(Interface, int, const QList<QVariant> &)
-- {
-- return QVariant();
-- }
--
-+#ifndef QT_NO_PHONON_MEDIACONTROLLER
-+ bool hasInterface(Interface) const;
-+ QVariant interfaceCall(Interface, int, const QList<QVariant> &);
-+#endif
- bool isLoading()
- {
- return m_loading;
-@@ -176,6 +177,19 @@
- QMultiMap<QString, QString> metaData();
- void setMetaData(QMultiMap<QString, QString> newData);
-
-+ // AddonInterface:
-+ void titleChanged(int);
-+ void availableTitlesChanged(int);
-+
-+ // Not implemented
-+ void chapterChanged(int);
-+ void availableChaptersChanged(int);
-+ void angleChanged(int);
-+ void availableAnglesChanged(int);
-+
-+ void availableSubtitlesChanged();
-+ void availableAudioChannelsChanged();
-+
- protected:
- void beginLoad();
- void loadingComplete();
-@@ -185,7 +199,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:
-@@ -219,6 +233,10 @@
- void updateSeekable();
- qint64 getPipelinePos() const;
-
-+ int _iface_availableTitles() const;
-+ int _iface_currentTitle() const;
-+ void _iface_setCurrentTitle(int title);
-+
- bool m_resumeState;
- State m_oldState;
- quint64 m_oldPos;
-@@ -264,6 +282,9 @@
- bool m_resetNeeded;
- QStringList m_missingCodecs;
- QMultiMap<QString, QString> m_metaData;
-+ bool m_autoplayTitles;
-+ int m_availableTitles;
-+ int m_currentTitle;
- };
- }
- } //namespace Phonon::Gstreamer
-diff -u -r --new-file phonon-4.3.1.orig/gstreamer/qwidgetvideosink.h phonon-4.3.1/gstreamer/qwidgetvideosink.h
---- phonon-4.3.1.orig/gstreamer/qwidgetvideosink.h 2009-02-27 04:15:42.000000000 -0600
-+++ phonon-4.3.1/gstreamer/qwidgetvideosink.h 2009-10-19 13:07:39.000000000 -0500
-@@ -19,7 +19,6 @@
- #define Phonon_GSTREAMER_VIDEOSINK_H
-
- #include "common.h"
--#include "qwidgetvideosink.h"
-
- #include <QtCore/QByteArray>
- #include <QtCore/QEvent>
-diff -u -r --new-file phonon-4.3.1.orig/gstreamer/videowidget.h phonon-4.3.1/gstreamer/videowidget.h
---- phonon-4.3.1.orig/gstreamer/videowidget.h 2009-02-27 04:15:42.000000000 -0600
-+++ phonon-4.3.1/gstreamer/videowidget.h 2009-10-19 13:07:39.000000000 -0500
-@@ -25,7 +25,6 @@
- #include "common.h"
- #include "medianode.h"
- #include "abstractrenderer.h"
--#include "videowidget.h"
-
- #include <gst/gst.h>
-
-diff -u -r --new-file phonon-4.3.1.orig/gstreamer/x11renderer.cpp phonon-4.3.1/gstreamer/x11renderer.cpp
---- phonon-4.3.1.orig/gstreamer/x11renderer.cpp 2009-02-27 04:15:42.000000000 -0600
-+++ phonon-4.3.1/gstreamer/x11renderer.cpp 2009-10-19 13:07:39.000000000 -0500
-@@ -138,7 +138,6 @@
- void X11Renderer::movieSizeChanged(const QSize &movieSize)
- {
- Q_UNUSED(movieSize);
--
- if (m_renderWidget) {
- m_renderWidget->setGeometry(m_videoWidget->calculateDrawFrameRect());
- }
diff --git a/source/l/phonon/slack-desc b/source/l/phonon/slack-desc
index 86e93b3e..a4fbd02e 100644
--- a/source/l/phonon/slack-desc
+++ b/source/l/phonon/slack-desc
@@ -9,8 +9,8 @@
phonon: phonon (multimedia framework for KDE4)
phonon:
phonon: Phonon is the multimedia framework for KDE4. This package contains
-phonon: the Phonon library, the KDE Phonon xine and gstreamer backends, and
-phonon: support files for using Phonon with KDE.
+phonon: the xine and gstreamer backends and support files for KDE. The
+phonon: Phonon library itself is included with Qt.
phonon:
phonon:
phonon: