Hello community,
here is the log from the commit of package phonon-backend-gstreamer-0_10 for openSUSE:Factory
checked in at Wed Aug 24 14:22:13 CEST 2011.
--------
--- KDE/phonon-backend-gstreamer-0_10/phonon-backend-gstreamer-0_10.changes 2011-04-10 23:05:26.000000000 +0200
+++ /mounts/work_src_done/STABLE/phonon-backend-gstreamer-0_10/phonon-backend-gstreamer-0_10.changes 2011-08-23 14:56:56.000000000 +0200
@@ -1,0 +2,14 @@
+Tue Aug 23 12:52:53 UTC 2011 - dev@dominik-schmidt.de
+
+- phonon version and phonon-gstreamer version are not necessarily the same, currently the package is uninstallable
+
+-------------------------------------------------------------------
+Sun Aug 14 16:34:21 UTC 2011 - toddrme2178@gmail.com
+
+- update to 4.5.1:
+ * Fix broken plugin installation for certain cases
+ * Quick fix for corrupted GStreamer registries
+- Added desktop file update macro
+- Cleaned up spec file formatting
+
+-------------------------------------------------------------------
calling whatdependson for head-i586
Old:
----
phonon-backend-gstreamer-4.5.0.tar.bz2
New:
----
phonon-backend-gstreamer-4.5.1.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ phonon-backend-gstreamer-0_10.spec ++++++
--- /var/tmp/diff_new_pack.rAVBEl/_old 2011-08-24 14:17:09.000000000 +0200
+++ /var/tmp/diff_new_pack.rAVBEl/_new 2011-08-24 14:17:09.000000000 +0200
@@ -18,21 +18,27 @@
Name: phonon-backend-gstreamer-0_10
-%define filename phonon-backend-gstreamer
-BuildRequires: alsa-devel automoc4 cmake kde4-filesystem phonon-devel
-BuildRequires: gstreamer-0_10-plugins-base-devel
-BuildRequires: fdupes
-Version: 4.5.0
+Version: 4.5.1
Release: 1
License: LGPLv2.0+
+Summary: Phonon Multimedia Platform Abstraction
Url: http://phonon.kde.org/
-BuildRoot: %{_tmppath}/%{name}-%{version}-build
Group: System/GUI/KDE
-Summary: Phonon Multimedia Platform Abstraction
+%define filename phonon-backend-gstreamer
+%define _phonon_version 4.5.0
Source0: %{filename}-%{version}.tar.bz2
-Requires: libphonon4 => %version
+BuildRequires: alsa-devel
+BuildRequires: automoc4
+BuildRequires: cmake
+BuildRequires: fdupes
+BuildRequires: gstreamer-0_10-plugins-base-devel
+BuildRequires: kde4-filesystem
+BuildRequires: phonon-devel
+BuildRequires: update-desktop-files
+Requires: libphonon4 => %{_phonon_version}
Supplements: packageand(gstreamer-0_10-plugins-base:phonon)
-Provides: phonon-backend = %version
+Provides: phonon-backend = %{version}
+BuildRoot: %{_tmppath}/%{name}-%{version}-build
%description
Phonon is a cross-platform portable Multimedia Support Abstraction,
@@ -40,14 +46,6 @@
quality on all platforms, no matter which underlying architecture is
used.
-
-
-
-Authors:
---------
- Matthias Kretz
-
-
%prep
%setup -q -n %{filename}-%{version}
@@ -60,16 +58,17 @@
%install
cd build
- %makeinstall
- %fdupes $RPM_BUILD_ROOT/usr/include
+ %make_install
+ %suse_update_desktop_file %{buildroot}%{_kde4_servicesdir}/phononbackends/gstreamer.desktop
+ %fdupes %{buildroot}%{_includedir}
%clean
-rm -rf "$RPM_BUILD_ROOT"
+rm -rf %{buildroot}
%files
%defattr(-,root,root)
-%_kde4_modules/plugins/phonon_backend/phonon_gstreamer.so
-%_kde_share_dir/services/phononbackends/gstreamer.desktop
-%_datadir/icons/*/*/apps/phonon-gstreamer.*
+%{_kde4_modules}/plugins/phonon_backend/phonon_gstreamer.so
+%{_kde4_servicesdir}/phononbackends/gstreamer.desktop
+%{_datadir}/icons/*/*/apps/phonon-gstreamer.*
%changelog
++++++ phonon-backend-gstreamer-4.5.0.tar.bz2 -> phonon-backend-gstreamer-4.5.1.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/phonon-backend-gstreamer-4.5.0/CMakeLists.txt new/phonon-backend-gstreamer-4.5.1/CMakeLists.txt
--- old/phonon-backend-gstreamer-4.5.0/CMakeLists.txt 2011-04-09 22:21:26.000000000 +0200
+++ new/phonon-backend-gstreamer-4.5.1/CMakeLists.txt 2011-05-04 06:34:52.000000000 +0200
@@ -10,7 +10,7 @@
set(PHONON_GST_MAJOR_VERSION "4")
set(PHONON_GST_MINOR_VERSION "5")
-set(PHONON_GST_PATCH_VERSION "0")
+set(PHONON_GST_PATCH_VERSION "1")
set(PHONON_GST_VERSION "${PHONON_GST_MAJOR_VERSION}.${PHONON_GST_MINOR_VERSION}.${PHONON_GST_PATCH_VERSION}")
add_definitions(-DPHONON_GST_VERSION="${PHONON_GST_VERSION}")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/phonon-backend-gstreamer-4.5.0/cmake/FindGObject.cmake new/phonon-backend-gstreamer-4.5.1/cmake/FindGObject.cmake
--- old/phonon-backend-gstreamer-4.5.0/cmake/FindGObject.cmake 2011-04-09 22:21:26.000000000 +0200
+++ new/phonon-backend-gstreamer-4.5.1/cmake/FindGObject.cmake 2011-05-04 06:34:52.000000000 +0200
@@ -6,70 +6,47 @@
# GOBJECT_LIBRARIES - the libraries needed to use GObject
# GOBJECT_DEFINITIONS - Compiler switches required for using GObject
-# Copyright (c) 2008 Helio Chissini de Castro,
-# (c)2006, Tim Beaulen
-
-
-IF (GOBJECT_INCLUDE_DIR AND GOBJECT_LIBRARIES)
- # in cache already
- SET(GObject_FIND_QUIETLY TRUE)
-ELSE (GOBJECT_INCLUDE_DIR AND GOBJECT_LIBRARIES)
- SET(GObject_FIND_QUIETLY FALSE)
-ENDIF (GOBJECT_INCLUDE_DIR AND GOBJECT_LIBRARIES)
-
-IF (NOT WIN32)
- FIND_PACKAGE(PkgConfig REQUIRED)
- # use pkg-config to get the directories and then use these values
- # in the FIND_PATH() and FIND_LIBRARY() calls
- PKG_CHECK_MODULES(PKG_GOBJECT2 REQUIRED gobject-2.0)
- SET(GOBJECT_DEFINITIONS ${PKG_GOBJECT2_CFLAGS})
-ENDIF (NOT WIN32)
-
-FIND_PATH(GOBJECT_INCLUDE_DIR gobject/gobject.h
- PATHS
- ${PKG_GOBJECT2_INCLUDE_DIRS}
- /usr/include/glib-2.0/
- PATH_SUFFIXES glib-2.0
+# Copyright (c) 2011, Raphael Kubo da Costa
+# Copyright (c) 2006, Tim Beaulen
+#
+# Redistribution and use is allowed according to the terms of the BSD license.
+# For details see the accompanying COPYING-CMAKE-SCRIPTS file.
+
+FIND_PACKAGE(PkgConfig)
+PKG_CHECK_MODULES(PC_GOBJECT gobject-2.0)
+SET(GOBJECT_DEFINITIONS ${PC_GOBJECT_CFLAGS_OTHER})
+
+FIND_PATH(GOBJECT_INCLUDE_DIR gobject.h
+ HINTS
+ ${PC_GOBJECT_INCLUDEDIR}
+ ${PC_GOBJECT_INCLUDE_DIRS}
+ PATH_SUFFIXES glib-2.0/gobject/
)
FIND_LIBRARY(_GObjectLibs NAMES gobject-2.0
- PATHS
- ${PKG_GOBJECT2_LIBRARY_DIRS}
+ HINTS
+ ${PC_GOBJECT_LIBDIR}
+ ${PC_GOBJECT_LIBRARY_DIRS}
)
FIND_LIBRARY(_GModuleLibs NAMES gmodule-2.0
- PATHS
- ${PKG_GOBJECT2_LIBRARY_DIRS}
+ HINTS
+ ${PC_GOBJECT_LIBDIR}
+ ${PC_GOBJECT_LIBRARY_DIRS}
)
FIND_LIBRARY(_GThreadLibs NAMES gthread-2.0
- PATHS
- ${PKG_GOBJECT2_LIBRARY_DIRS}
+ HINTS
+ ${PC_GOBJECT_LIBDIR}
+ ${PC_GOBJECT_LIBRARY_DIRS}
)
FIND_LIBRARY(_GLibs NAMES glib-2.0
- PATHS
- ${PKG_GOBJECT2_LIBRARY_DIRS}
+ HINTS
+ ${PC_GOBJECT_LIBDIR}
+ ${PC_GOBJECT_LIBRARY_DIRS}
)
-IF (WIN32)
-SET (GOBJECT_LIBRARIES ${_GObjectLibs} ${_GModuleLibs} ${_GThreadLibs} ${_GLibs})
-ELSE (WIN32)
-SET (GOBJECT_LIBRARIES ${PKG_GOBJECT2_LIBRARIES})
-ENDIF (WIN32)
-
-IF (GOBJECT_INCLUDE_DIR AND GOBJECT_LIBRARIES)
- SET(GOBJECT_FOUND TRUE)
-ELSE (GOBJECT_INCLUDE_DIR AND GOBJECT_LIBRARIES)
- SET(GOBJECT_FOUND FALSE)
-ENDIF (GOBJECT_INCLUDE_DIR AND GOBJECT_LIBRARIES)
-
-IF (GOBJECT_FOUND)
- IF (NOT GObject_FIND_QUIETLY)
- MESSAGE(STATUS "Found GObject libraries: ${GOBJECT_LIBRARIES}")
- MESSAGE(STATUS "Found GObject includes : ${GOBJECT_INCLUDE_DIR}")
- ENDIF (NOT GObject_FIND_QUIETLY)
-ELSE (GOBJECT_FOUND)
- IF (GObject_FIND_REQUIRED)
- MESSAGE(STATUS "Could NOT find GObject")
- ENDIF(GObject_FIND_REQUIRED)
-ENDIF (GOBJECT_FOUND)
+SET( GOBJECT_LIBRARIES ${_GObjectLibs} ${_GModuleLibs} ${_GThreadLibs} ${_GLibs} )
+
+INCLUDE(FindPackageHandleStandardArgs)
+FIND_PACKAGE_HANDLE_STANDARD_ARGS(GOBJECT DEFAULT_MSG GOBJECT_LIBRARIES GOBJECT_INCLUDE_DIR)
-MARK_AS_ADVANCED(GOBJECT_INCLUDE_DIR GOBJECT_LIBRARIES)
+MARK_AS_ADVANCED(GOBJECT_INCLUDE_DIR _GObjectLibs _GModuleLibs _GThreadLibs _GLibs)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/phonon-backend-gstreamer-4.5.0/gstreamer/CMakeLists.txt new/phonon-backend-gstreamer-4.5.1/gstreamer/CMakeLists.txt
--- old/phonon-backend-gstreamer-4.5.0/gstreamer/CMakeLists.txt 2011-04-09 22:21:26.000000000 +0200
+++ new/phonon-backend-gstreamer-4.5.1/gstreamer/CMakeLists.txt 2011-05-04 06:34:52.000000000 +0200
@@ -49,7 +49,6 @@
devicemanager.cpp
effect.cpp
effectmanager.cpp
- glrenderer.cpp
gsthelper.cpp
medianode.cpp
medianodeevent.cpp
@@ -64,6 +63,10 @@
widgetrenderer.cpp
)
+ if(OPENGL_FOUND)
+ list(APPEND phonon_gstreamer_SRCS glrenderer.cpp)
+ endif(OPENGL_FOUND)
+
if(NOT WIN32)
set(phonon_gstreamer_SRCS
${phonon_gstreamer_SRCS}
@@ -84,8 +87,6 @@
set_target_properties(phonon_gstreamer PROPERTIES PREFIX "")
target_link_libraries(phonon_gstreamer
${QT_QTCORE_LIBRARY} ${QT_QTGUI_LIBRARY} ${PHONON_LIBRARY}
- ${QT_QTOPENGL_LIBRARY}
- ${OPENGL_gl_LIBRARY}
${GSTREAMER_LIBRARIES} ${GSTREAMER_BASE_LIBRARY} ${GSTREAMER_INTERFACE_LIBRARY}
${GSTREAMER_PLUGIN_VIDEO_LIBRARY} ${GSTREAMER_PLUGIN_AUDIO_LIBRARY} ${GSTREAMER_PLUGIN_PBUTILS_LIBRARY}
${GLIB2_LIBRARIES} ${GOBJECT_LIBRARIES})
@@ -95,6 +96,9 @@
if(USE_INSTALL_PLUGIN)
target_link_libraries(phonon_gstreamer ${GSTREAMER_PLUGIN_PBUTILS_LIBRARIES})
endif(USE_INSTALL_PLUGIN)
+ if(OPENGL_FOUND)
+ target_link_libraries(phonon_gstreamer ${QT_QTOPENGL_LIBRARY} ${OPENGL_gl_LIBRARY})
+ endif(OPENGL_FOUND)
install(TARGETS phonon_gstreamer DESTINATION ${PLUGIN_INSTALL_DIR}/plugins/phonon_backend)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/gstreamer.desktop DESTINATION ${SERVICES_INSTALL_DIR}/phononbackends)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/phonon-backend-gstreamer-4.5.0/gstreamer/ConfigureChecks.cmake new/phonon-backend-gstreamer-4.5.1/gstreamer/ConfigureChecks.cmake
--- old/phonon-backend-gstreamer-4.5.0/gstreamer/ConfigureChecks.cmake 2011-04-09 22:21:26.000000000 +0200
+++ new/phonon-backend-gstreamer-4.5.1/gstreamer/ConfigureChecks.cmake 2011-05-04 06:34:52.000000000 +0200
@@ -29,11 +29,11 @@
find_package(LibXml2 REQUIRED)
macro_log_feature(LIBXML2_FOUND "LibXml2" "LibXml2 is required to compile the gstreamer backend for Phonon" "http://xmlsoft.org/downloads.html" TRUE)
-find_package(OpenGL REQUIRED)
-macro_log_feature(OPENGL_FOUND "OpenGL" "OpenGL support is required to compile the gstreamer backend for Phonon" "" TRUE)
+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_FOUND AND GSTREAMER_PLUGIN_AUDIO_FOUND AND GSTREAMER_PLUGIN_PBUTILS_FOUND AND GLIB2_FOUND AND GOBJECT_FOUND AND LIBXML2_FOUND AND OPENGL_FOUND)
+if (GSTREAMER_FOUND AND GSTREAMER_PLUGIN_VIDEO_FOUND AND GSTREAMER_PLUGIN_AUDIO_FOUND AND GSTREAMER_PLUGIN_PBUTILS_FOUND AND GLIB2_FOUND AND GOBJECT_FOUND AND LIBXML2_FOUND)
set(BUILD_PHONON_GSTREAMER TRUE)
-else (GSTREAMER_FOUND AND GSTREAMER_PLUGIN_VIDEO_FOUND AND GSTREAMER_PLUGIN_AUDIO_FOUND AND GSTREAMER_PLUGIN_PBUTILS_FOUND AND GLIB2_FOUND AND GOBJECT_FOUND AND LIBXML2_FOUND AND OPENGL_FOUND)
+else (GSTREAMER_FOUND AND GSTREAMER_PLUGIN_VIDEO_FOUND AND GSTREAMER_PLUGIN_AUDIO_FOUND AND GSTREAMER_PLUGIN_PBUTILS_FOUND AND GLIB2_FOUND AND GOBJECT_FOUND AND LIBXML2_FOUND)
set(BUILD_PHONON_GSTREAMER FALSE)
-endif (GSTREAMER_FOUND AND GSTREAMER_PLUGIN_VIDEO_FOUND AND GSTREAMER_PLUGIN_AUDIO_FOUND AND GSTREAMER_PLUGIN_PBUTILS_FOUND AND GLIB2_FOUND AND GOBJECT_FOUND AND LIBXML2_FOUND AND OPENGL_FOUND)
+endif (GSTREAMER_FOUND AND GSTREAMER_PLUGIN_VIDEO_FOUND AND GSTREAMER_PLUGIN_AUDIO_FOUND AND GSTREAMER_PLUGIN_PBUTILS_FOUND AND GLIB2_FOUND AND GOBJECT_FOUND AND LIBXML2_FOUND)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/phonon-backend-gstreamer-4.5.0/gstreamer/backend.cpp new/phonon-backend-gstreamer-4.5.1/gstreamer/backend.cpp
--- old/phonon-backend-gstreamer-4.5.0/gstreamer/backend.cpp 2011-04-09 22:21:26.000000000 +0200
+++ new/phonon-backend-gstreamer-4.5.1/gstreamer/backend.cpp 2011-05-04 06:34:53.000000000 +0200
@@ -173,7 +173,7 @@
return isValid();
}
-bool Backend::checkDependencies() const
+bool Backend::checkDependencies(bool retry) const
{
bool success = false;
// Verify that gst-plugins-base is installed
@@ -186,11 +186,19 @@
if (csFactory) {
gst_object_unref(csFactory);
} else {
+ if (!retry) {
+ gst_update_registry();
+ checkDependencies(true);
+ }
QString message = tr("Warning: You do not seem to have the package gstreamer0.10-plugins-good installed.\n"
" Some video features have been disabled.");
qDebug() << message;
}
} else {
+ if (!retry) {
+ gst_update_registry();
+ checkDependencies(true);
+ }
qWarning() << tr("Warning: You do not seem to have the base GStreamer plugins installed.\n"
" All audio and video support has been disabled");
}
@@ -213,6 +221,7 @@
(mpegFactory = gst_element_factory_find ("mad")) ||
(mpegFactory = gst_element_factory_find ("flump3dec"))) {
availableMimeTypes << QLatin1String("audio/x-mp3");
+ availableMimeTypes << QLatin1String("audio/x-ape");// ape is available from ffmpeg
gst_object_unref(GST_OBJECT(mpegFactory));
}
@@ -455,6 +464,10 @@
*/
void Backend::logMessage(const QString &message, int priority, QObject *obj) const
{
+ // Backend is a singleton, so this is just fine.
+ static QString lastLogMessage = QString();
+ static int logMessageSkipCount = 0;
+
if (debugLevel() > 0) {
QString output;
if (obj) {
@@ -469,9 +482,14 @@
else {
output = message;
}
- if (priority <= (int)debugLevel()) {
+ if (priority <= (int)debugLevel() && lastLogMessage != output) {
+ if (logMessageSkipCount != 0)
+ qDebug() << " PGST: Last message repeated" << logMessageSkipCount << "time(s)";
qDebug() << QString("PGST(%1): %2").arg(priority).arg(output);
- }
+ lastLogMessage = output;
+ logMessageSkipCount = 0;
+ } else
+ ++logMessageSkipCount;
}
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/phonon-backend-gstreamer-4.5.0/gstreamer/backend.h new/phonon-backend-gstreamer-4.5.1/gstreamer/backend.h
--- old/phonon-backend-gstreamer-4.5.0/gstreamer/backend.h 2011-04-09 22:21:26.000000000 +0200
+++ new/phonon-backend-gstreamer-4.5.1/gstreamer/backend.h 2011-05-04 06:34:53.000000000 +0200
@@ -30,6 +30,7 @@
{
namespace Gstreamer
{
+
class AudioOutput;
class DeviceManager;
class EffectManager;
@@ -66,7 +67,8 @@
DebugLevel debugLevel() const;
void logMessage(const QString &message, int priority = 2, QObject *obj = 0) const;
- bool checkDependencies() const;
+ // 'retry' indicates that we'd like to check the deps after a registry rebuild
+ bool checkDependencies(bool retry = false) const;
Q_SIGNALS:
void objectDescriptionChanged(ObjectDescriptionType);
@@ -76,10 +78,8 @@
EffectManager *m_effectManager;
DebugLevel m_debugLevel;
bool m_isValid;
-
- // To ensure that only such messages get forwarded that target a still existing MediaObject.
- QSet m_watchList;
};
+
}
} // namespace Phonon::Gstreamer
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/phonon-backend-gstreamer-4.5.0/gstreamer/devicemanager.cpp new/phonon-backend-gstreamer-4.5.1/gstreamer/devicemanager.cpp
--- old/phonon-backend-gstreamer-4.5.0/gstreamer/devicemanager.cpp 2011-04-09 22:21:26.000000000 +0200
+++ new/phonon-backend-gstreamer-4.5.1/gstreamer/devicemanager.cpp 2011-05-04 06:34:53.000000000 +0200
@@ -20,7 +20,9 @@
#include "backend.h"
#include "gsthelper.h"
#include "videowidget.h"
+#ifdef OPENGL_FOUND
#include "glrenderer.h"
+#endif
#include "widgetrenderer.h"
#include "x11renderer.h"
#include
@@ -301,7 +303,7 @@
#ifndef QT_NO_PHONON_VIDEO
AbstractRenderer *DeviceManager::createVideoRenderer(VideoWidget *parent)
{
-#if !defined(QT_NO_OPENGL) && !defined(QT_OPENGL_ES)
+#if !defined(QT_NO_OPENGL) && !defined(QT_OPENGL_ES) && defined(OPENGL_FOUND)
if (m_videoSinkWidget == "opengl") {
return new GLRenderer(parent);
} else
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/phonon-backend-gstreamer-4.5.0/gstreamer/gsthelper.cpp new/phonon-backend-gstreamer-4.5.1/gstreamer/gsthelper.cpp
--- old/phonon-backend-gstreamer-4.5.0/gstreamer/gsthelper.cpp 2011-04-09 22:21:26.000000000 +0200
+++ new/phonon-backend-gstreamer-4.5.1/gstreamer/gsthelper.cpp 2011-05-04 06:34:53.000000000 +0200
@@ -18,6 +18,8 @@
#include
#include
#include "gsthelper.h"
+#include "mediaobject.h"
+#include "backend.h"
#include
@@ -125,6 +127,13 @@
return "";
}
+void GstHelper::writePipelineDot(MediaObject *media, const QString &type)
+{
+ GstBin *bin = GST_BIN(media->pipeline());
+ media->backend()->logMessage(QString("Dumping %0.dot").arg(type), Backend::Debug, media);
+ GST_DEBUG_BIN_TO_DOT_FILE_WITH_TS(bin, GST_DEBUG_GRAPH_SHOW_ALL, QString("phonon-%0").arg(type).toUtf8().constData());
+}
+
} //namespace Gstreamer
} //namespace Phonon
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/phonon-backend-gstreamer-4.5.0/gstreamer/gsthelper.h new/phonon-backend-gstreamer-4.5.1/gstreamer/gsthelper.h
--- old/phonon-backend-gstreamer-4.5.0/gstreamer/gsthelper.h 2011-04-09 22:21:26.000000000 +0200
+++ new/phonon-backend-gstreamer-4.5.1/gstreamer/gsthelper.h 2011-05-04 06:34:54.000000000 +0200
@@ -22,6 +22,7 @@
#include
#include
#include
+#include
QT_BEGIN_NAMESPACE
@@ -32,6 +33,7 @@
{
namespace Gstreamer
{
+class MediaObject;
class GstHelper
{
public:
@@ -40,6 +42,7 @@
static QByteArray property(GstElement *elem, const char *propertyName);
static QByteArray name(GstObject *elem);
static QString stateName(GstState);
+ static void writePipelineDot(MediaObject *media, const QString &type);
};
} // ns Gstreamer
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/phonon-backend-gstreamer-4.5.0/gstreamer/gstreamer.desktop.cmake new/phonon-backend-gstreamer-4.5.1/gstreamer/gstreamer.desktop.cmake
--- old/phonon-backend-gstreamer-4.5.0/gstreamer/gstreamer.desktop.cmake 2011-04-09 22:21:26.000000000 +0200
+++ new/phonon-backend-gstreamer-4.5.1/gstreamer/gstreamer.desktop.cmake 2011-05-04 06:34:54.000000000 +0200
@@ -1,7 +1,7 @@
[Desktop Entry]
Type=Service
X-KDE-ServiceTypes=PhononBackend
-MimeType=application/x-annodex;video/quicktime;video/x-quicktime;audio/x-m4a;application/x-quicktimeplayer;video/mkv;video/msvideo;video/x-msvideo;video/x-flic;audio/x-aiff;audio/aiff;audio/x-pn-aiff;audio/x-realaudio;audio/basic;audio/x-basic;audio/x-pn-au;audio/x-8svx;audio/8svx;audio/x-16sv;audio/168sv;image/x-ilbm;image/ilbm;video/x-anim;video/anim;image/png;image/x-png;video/mng;video/x-mng;audio/x-ogg;audio/x-speex+ogg;application/ogg;application/ogg;audio/vnd.rn-realaudio;audio/x-pn-realaudio-plugin;audio/x-real-audio;application/vnd.rn-realmedia;video/mpeg;video/x-mpeg;audio/x-wav;audio/wav;audio/x-pn-wav;audio/x-pn-windows-acm;audio/mpeg2;audio/x-mpeg2;audio/mpeg3;audio/x-mpeg3;audio/mpeg;audio/x-mpeg;x-mpegurl;audio/x-mpegurl;audio/mp3;audio/mpeg;
+MimeType=application/x-annodex;video/quicktime;video/x-quicktime;audio/x-m4a;application/x-quicktimeplayer;video/mkv;video/msvideo;video/x-msvideo;video/x-flic;audio/x-aiff;audio/aiff;audio/x-pn-aiff;audio/x-realaudio;audio/basic;audio/x-basic;audio/x-pn-au;audio/x-8svx;audio/8svx;audio/x-16sv;audio/168sv;image/x-ilbm;image/ilbm;video/x-anim;video/anim;image/png;image/x-png;video/mng;video/x-mng;audio/x-ogg;audio/x-speex+ogg;application/ogg;application/ogg;audio/vnd.rn-realaudio;audio/x-pn-realaudio-plugin;audio/x-real-audio;application/vnd.rn-realmedia;video/mpeg;video/x-mpeg;audio/x-wav;audio/wav;audio/x-pn-wav;audio/x-pn-windows-acm;audio/mpeg2;audio/x-mpeg2;audio/mpeg3;audio/x-mpeg3;audio/mpeg;audio/x-mpeg;x-mpegurl;audio/x-mpegurl;audio/mp3;audio/mpeg;audio/x-ape;
X-KDE-Library=phonon_gstreamer
X-KDE-PhononBackendInfo-InterfaceVersion=1
X-KDE-PhononBackendInfo-Version=@PHONON_GST_VERSION@
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/phonon-backend-gstreamer-4.5.0/gstreamer/mediaobject.cpp new/phonon-backend-gstreamer-4.5.1/gstreamer/mediaobject.cpp
--- old/phonon-backend-gstreamer-4.5.0/gstreamer/mediaobject.cpp 2011-04-09 22:21:26.000000000 +0200
+++ new/phonon-backend-gstreamer-4.5.1/gstreamer/mediaobject.cpp 2011-05-04 06:34:54.000000000 +0200
@@ -981,12 +981,16 @@
emit seekableChanged(m_seekable);
}
- if (m_seekable)
+ if (m_seekable) {
m_backend->logMessage("Stream is seekable", Backend::Info, this);
- else
+ GstHelper::writePipelineDot(this, "updateSeekable-true");
+ } else {
m_backend->logMessage("Stream is non-seekable", Backend::Info, this);
+ GstHelper::writePipelineDot(this, "updateSeekable-false");
+ }
} else {
m_backend->logMessage("updateSeekable query failed", Backend::Info, this);
+ GstHelper::writePipelineDot(this, "updateSeekable-failed");
}
gst_query_unref (query);
}
@@ -1088,6 +1092,9 @@
if (!createPipefromURL(source.mrl()))
setError(tr("Could not open media source."));
}
+ GstHelper::writePipelineDot(this,
+ QString("setSource-mrl-%0")
+ .arg(QUrl::toPercentEncoding(source.mrl().toString()).constData()));
break;
case MediaSource::Invalid:
@@ -1100,6 +1107,7 @@
case MediaSource::Stream:
if (!createPipefromStream(source))
setError(tr("Could not open media source."));
+ GstHelper::writePipelineDot(this, "setSource-stream");
break;
case MediaSource::Disc:
@@ -1107,6 +1115,7 @@
if (source.discType() == Phonon::Dvd) {
if (!createPipefromDVD(source))
setError(tr("Could not open DVD."));
+ GstHelper::writePipelineDot(this, "setSource-dvd");
} else {
QString mediaUrl;
switch (source.discType()) {
@@ -1125,6 +1134,9 @@
}
if (mediaUrl.isEmpty() || !createPipefromURL(QUrl(mediaUrl)))
setError(tr("Could not open media source."));
+ GstHelper::writePipelineDot(this,
+ QString("setSource-disc-%0")
+ .arg(mediaUrl));
}
}
break;
@@ -1144,6 +1156,10 @@
MediaNodeEvent event(MediaNodeEvent::SourceChanged);
notify(&event);
+ GstHelper::writePipelineDot(this,
+ QString("setSource-complete-%0")
+ .arg(QUrl::toPercentEncoding(source.mrl().toString()).constData()));
+
// We need to link this node to ensure that fake sinks are connected
// before loading, otherwise the stream will be blocked
link();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/phonon-backend-gstreamer-4.5.0/gstreamer/phonon-config-gstreamer.h.cmake new/phonon-backend-gstreamer-4.5.1/gstreamer/phonon-config-gstreamer.h.cmake
--- old/phonon-backend-gstreamer-4.5.0/gstreamer/phonon-config-gstreamer.h.cmake 2011-04-09 22:21:26.000000000 +0200
+++ new/phonon-backend-gstreamer-4.5.1/gstreamer/phonon-config-gstreamer.h.cmake 2011-05-04 06:34:54.000000000 +0200
@@ -9,3 +9,5 @@
/* If api-plugin is defined */
#cmakedefine PLUGIN_INSTALL_API 1
+/* If OpenGL is available */
+#cmakedefine OPENGL_FOUND 1
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/phonon-backend-gstreamer-4.5.0/gstreamer/plugininstaller.cpp new/phonon-backend-gstreamer-4.5.1/gstreamer/plugininstaller.cpp
--- old/phonon-backend-gstreamer-4.5.0/gstreamer/plugininstaller.cpp 2011-04-09 22:21:26.000000000 +0200
+++ new/phonon-backend-gstreamer-4.5.1/gstreamer/plugininstaller.cpp 2011-05-04 06:34:54.000000000 +0200
@@ -53,7 +53,7 @@
#ifdef PLUGIN_INSTALL_API
if (init()) {
QString pluginStr;
- gchar *pluginDesc = NULL;
+ gchar *pluginDesc = 0;
switch(type) {
case Decoder:
pluginDesc = gst_pb_utils_get_decoder_description(caps);
@@ -68,7 +68,7 @@
return 0;
}
pluginStr = QString::fromUtf8(pluginDesc);
- g_free (pluginDesc);
+ g_free(pluginDesc);
return pluginStr;
}
#else
@@ -83,7 +83,7 @@
#ifdef PLUGIN_INSTALL_API
if (init()) {
QString pluginStr;
- gchar *pluginDesc = NULL;
+ gchar *pluginDesc = 0;
switch(type) {
case Source:
pluginDesc = gst_pb_utils_get_source_description(name);
@@ -98,7 +98,7 @@
return 0;
}
pluginStr = QString::fromUtf8(pluginDesc);
- g_free (pluginDesc);
+ g_free(pluginDesc);
return pluginStr;
}
#endif
@@ -109,24 +109,22 @@
{
QString descType;
switch(type) {
+ case Codec:
case Decoder:
descType = "decoder";
break;
case Encoder:
descType = "encoder";
break;
- case Codec:
- descType = "codec";
- break;
default:
- return 0;
+ return QString();
}
return QString("gstreamer|0.10|%0|%1|%2-%3")
- .arg( qApp->applicationName() )
- .arg( description(caps, type) )
- .arg( descType )
- .arg( getCapType(caps) );
+ .arg(qApp->applicationName())
+ .arg(description(caps, type))
+ .arg(descType)
+ .arg(getCapType(caps));
}
QString PluginInstaller::buildInstallationString(const gchar *name, PluginType type)
@@ -137,13 +135,13 @@
descType = "element";
break;
default:
- return 0;
+ return QString();
}
return QString("gstreamer|0.10|%0|%1|%2-%3")
- .arg( qApp->applicationName() )
- .arg( description(name, type) )
- .arg( descType )
- .arg( name );
+ .arg(qApp->applicationName())
+ .arg(description(name, type))
+ .arg(descType)
+ .arg(name);
}
PluginInstaller::PluginInstaller(QObject *parent)
@@ -171,15 +169,15 @@
}
gchar *details[m_pluginList.size()+m_capList.size()+1];
int i = 0;
- foreach(QString plugin, m_pluginList.keys()) {
+ foreach (QString plugin, m_pluginList.keys()) {
details[i] = strdup(buildInstallationString(plugin.toLocal8Bit().data(), m_pluginList[plugin]).toLocal8Bit().data());
i++;
}
- foreach(GstCaps *caps, m_capList.keys()) {
+ foreach (GstCaps *caps, m_capList.keys()) {
details[i] = strdup(buildInstallationString(caps, m_capList[caps]).toLocal8Bit().data());
i++;
}
- details[i] = NULL;
+ details[i] = 0;
GstInstallPluginsReturn status;
status = gst_install_plugins_async(details, ctx, pluginInstallationDone, new QPointer<PluginInstaller>(this));
@@ -192,8 +190,9 @@
} else {
emit started();
}
- for(; i > 0; i--)
- free(details[i]);
+ while (i) {
+ free(details[i--]);
+ }
reset();
}
@@ -248,7 +247,7 @@
PluginInstaller::InstallStatus PluginInstaller::checkInstalledPlugins()
{
bool allFound = true;
- foreach(QString plugin, m_pluginList.keys()) {
+ foreach (QString plugin, m_pluginList.keys()) {
if (!gst_default_registry_check_feature_version(plugin.toLocal8Bit().data(), 0, 10, 0)) {
allFound = false;
break;
@@ -268,13 +267,16 @@
QString PluginInstaller::getCapType(const GstCaps *caps)
{
- GstStructure *str = gst_caps_get_structure (caps, 0);
- return QString::fromUtf8(gst_structure_get_name (str));;
+ GstStructure *str = gst_caps_get_structure(caps, 0);
+ gchar *strstr = gst_structure_to_string(str);
+ QString capType = QString::fromUtf8(strstr);
+ g_free(strstr);
+ return capType;
}
void PluginInstaller::reset()
{
- foreach(GstCaps *caps, m_capList.keys()) {
+ foreach (GstCaps *caps, m_capList.keys()) {
gst_caps_unref(caps);
}
m_capList.clear();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/phonon-backend-gstreamer-4.5.0/gstreamer/streamreader.cpp new/phonon-backend-gstreamer-4.5.1/gstreamer/streamreader.cpp
--- old/phonon-backend-gstreamer-4.5.0/gstreamer/streamreader.cpp 2011-04-09 22:21:26.000000000 +0200
+++ new/phonon-backend-gstreamer-4.5.1/gstreamer/streamreader.cpp 2011-05-04 06:34:54.000000000 +0200
@@ -35,13 +35,11 @@
, m_seekable(false)
, m_mediaObject(parent)
{
- DEBUG_BLOCK;
connectToSource(source);
}
StreamReader::~StreamReader()
{
- DEBUG_BLOCK;
}
//------------------------------------------------------------------------------
@@ -85,7 +83,6 @@
void StreamReader::writeData(const QByteArray &data)
{
QMutexLocker locker(&m_mutex);
- DEBUG_BLOCK;
m_buffer.append(data);
m_waitingForData.wakeAll();
}
@@ -93,7 +90,6 @@
GstFlowReturn StreamReader::read(quint64 pos, int length, char *buffer)
{
QMutexLocker locker(&m_mutex);
- DEBUG_BLOCK;
if (currentPos() != pos) {
if (!streamSeekable()) {
@@ -139,7 +135,6 @@
void StreamReader::endOfData()
{
QMutexLocker locker(&m_mutex);
- DEBUG_BLOCK;
m_eos = true;
m_waitingForData.wakeAll();
}
@@ -147,7 +142,6 @@
void StreamReader::start()
{
QMutexLocker locker(&m_mutex);
- DEBUG_BLOCK;
m_buffer.clear();
m_eos = false;
m_locked = true;
@@ -160,7 +154,6 @@
void StreamReader::stop()
{
QMutexLocker locker(&m_mutex);
- DEBUG_BLOCK;
enoughData();
m_waitingForData.wakeAll();
}
@@ -168,7 +161,6 @@
void StreamReader::unlock()
{
QMutexLocker locker(&m_mutex);
- DEBUG_BLOCK;
enoughData();
m_locked = false;
m_waitingForData.wakeAll();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/phonon-backend-gstreamer-4.5.0/gstreamer/videodataoutput.cpp new/phonon-backend-gstreamer-4.5.1/gstreamer/videodataoutput.cpp
--- old/phonon-backend-gstreamer-4.5.0/gstreamer/videodataoutput.cpp 2011-04-09 22:21:26.000000000 +0200
+++ new/phonon-backend-gstreamer-4.5.1/gstreamer/videodataoutput.cpp 2011-05-04 06:34:55.000000000 +0200
@@ -38,8 +38,8 @@
VideoDataOutput::VideoDataOutput(Backend *backend, QObject *parent)
: QObject(parent),
- MediaNode(backend, VideoSink),
- m_frontend(0)
+ MediaNode(backend, VideoSink),
+ m_frontend(0)
{
static int count = 0;
m_name = "VideoDataOutput" + QString::number(count++);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/phonon-backend-gstreamer-4.5.0/gstreamer/videowidget.cpp new/phonon-backend-gstreamer-4.5.1/gstreamer/videowidget.cpp
--- old/phonon-backend-gstreamer-4.5.0/gstreamer/videowidget.cpp 2011-04-09 22:21:26.000000000 +0200
+++ new/phonon-backend-gstreamer-4.5.1/gstreamer/videowidget.cpp 2011-05-04 06:34:55.000000000 +0200
@@ -31,9 +31,7 @@
#include "devicemanager.h"
#include "mediaobject.h"
-#include "glrenderer.h"
#include "widgetrenderer.h"
-#include "x11renderer.h"
#ifndef QT_NO_PHONON_VIDEO
QT_BEGIN_NAMESPACE
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/phonon-backend-gstreamer-4.5.0/gstreamer/widgetrenderer.h new/phonon-backend-gstreamer-4.5.1/gstreamer/widgetrenderer.h
--- old/phonon-backend-gstreamer-4.5.0/gstreamer/widgetrenderer.h 2011-04-09 22:21:26.000000000 +0200
+++ new/phonon-backend-gstreamer-4.5.1/gstreamer/widgetrenderer.h 2011-05-04 06:34:55.000000000 +0200
@@ -20,11 +20,6 @@
#include "abstractrenderer.h"
-#ifndef QT_NO_OPENGL
-#include
-#include
-#endif
-
#ifndef QT_NO_PHONON_VIDEO
QT_BEGIN_NAMESPACE
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org
For additional commands, e-mail: opensuse-commit+help@opensuse.org