aboutsummaryrefslogtreecommitdiff
path: root/lib/service/servicemp3.cpp
diff options
context:
space:
mode:
authorghost <andreas.monzner@multimedia-labs.de>2009-11-05 11:44:56 +0100
committerghost <andreas.monzner@multimedia-labs.de>2009-11-05 11:44:56 +0100
commitda5e581c17f5e19d38c31d8b2c01b29fdd37fe78 (patch)
tree041077b0cfe3ef039fff6f247a64010b489a836b /lib/service/servicemp3.cpp
parent77d768bcb13a74af35de2c13df2267d2a22ed13f (diff)
parent1c954ba161bc3cd4b838b3c5a423d41847f0382a (diff)
downloadenigma2-da5e581c17f5e19d38c31d8b2c01b29fdd37fe78.tar.gz
enigma2-da5e581c17f5e19d38c31d8b2c01b29fdd37fe78.zip
Merge branch 'bug_274_disable_fast_winding_for_non_ts' into experimental
Diffstat (limited to 'lib/service/servicemp3.cpp')
-rw-r--r--lib/service/servicemp3.cpp26
1 files changed, 25 insertions, 1 deletions
diff --git a/lib/service/servicemp3.cpp b/lib/service/servicemp3.cpp
index c95609a3..52f2bc99 100644
--- a/lib/service/servicemp3.cpp
+++ b/lib/service/servicemp3.cpp
@@ -641,7 +641,31 @@ RESULT eServiceMP3::setTrickmode(int trick)
RESULT eServiceMP3::isCurrentlySeekable()
{
- return 1;
+ int ret = 3; // seeking and fast/slow winding possible
+ GstElement *sink;
+
+ if (!m_gst_playbin)
+ return 0;
+ if (m_state != stRunning)
+ return 0;
+
+ g_object_get (G_OBJECT (m_gst_playbin), "video-sink", &sink, NULL);
+
+ // disable fast winding yet when a dvbvideosink or dvbaudiosink is used
+ // for this we must do some changes on different places.. (gstreamer.. our sinks.. enigma2)
+ if (sink) {
+ ret &= ~2; // only seeking possible
+ gst_object_unref(sink);
+ }
+ else {
+ g_object_get (G_OBJECT (m_gst_playbin), "audio-sink", &sink, NULL);
+ if (sink) {
+ ret &= ~2; // only seeking possible
+ gst_object_unref(sink);
+ }
+ }
+
+ return ret;
}
RESULT eServiceMP3::info(ePtr<iServiceInformation>&i)