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 - [email protected]
+
+- phonon version and phonon-gstreamer version are not necessarily the same, 
currently the package is uninstallable
+
+-------------------------------------------------------------------
+Sun Aug 14 16:34:21 UTC 2011 - [email protected]
+
+- 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, <[email protected]>
-#  (c)2006, Tim Beaulen <[email protected]>
-
-
-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 <[email protected]>
+# Copyright (c) 2006, Tim Beaulen <[email protected]>
+#
+# 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<MediaObject *> 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 <phonon/pulsesupport.h>
@@ -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 <gst/interfaces/propertyprobe.h>
 #include <gst/gst.h>
 #include "gsthelper.h"
+#include "mediaobject.h"
+#include "backend.h"
 
 #include <QtCore/QList>
 
@@ -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 <QtCore/QByteArray>
 #include <QtCore/QString>
 #include <gst/gstelement.h>
+#include <gst/gstbin.h>
 
 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 <QtOpenGL/QGLFormat>
-#include <QtOpenGL/QGLWidget>
-#endif
-
 #ifndef QT_NO_PHONON_VIDEO
 QT_BEGIN_NAMESPACE
 


++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++



Remember to have fun...

-- 
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to