parent
b6ad0d563d
commit
c61192096b
@ -0,0 +1,20 @@
|
||||
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;
|
||||
}
|
@ -0,0 +1,27 @@
|
||||
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);
|
||||
|
@ -0,0 +1,15 @@
|
||||
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);
|
||||
|
@ -0,0 +1,13 @@
|
||||
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());
|
||||
}
|
||||
}
|
||||
|
@ -0,0 +1,63 @@
|
||||
From 104872f266cf6675e27cc6e122300f4ed5baf3ab Mon Sep 17 00:00:00 2001
|
||||
From: Colin Guthrie <cguthrie@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@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;
|
||||
|
@ -1,15 +0,0 @@
|
||||
Index: gstreamer/mediaobject.cpp
|
||||
===================================================================
|
||||
--- gstreamer/mediaobject.cpp (Revision 1076453)
|
||||
+++ gstreamer/mediaobject.cpp (Revision 1076454)
|
||||
@@ -916,7 +916,9 @@
|
||||
// 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;
|
||||
|
Loading…
Reference in new issue