diff options
| author | ghost <andreas.monzner@multimedia-labs.de> | 2009-11-05 11:44:56 +0100 |
|---|---|---|
| committer | ghost <andreas.monzner@multimedia-labs.de> | 2009-11-05 11:44:56 +0100 |
| commit | da5e581c17f5e19d38c31d8b2c01b29fdd37fe78 (patch) | |
| tree | 041077b0cfe3ef039fff6f247a64010b489a836b /lib/service/servicemp3.cpp | |
| parent | 77d768bcb13a74af35de2c13df2267d2a22ed13f (diff) | |
| parent | 1c954ba161bc3cd4b838b3c5a423d41847f0382a (diff) | |
| download | enigma2-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.cpp | 26 |
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) |
