slomo pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=1c6cb51cdc1c0ae56e101af83deea965fbf1a0b7
commit 1c6cb51cdc1c0ae56e101af83deea965fbf1a0b7 Author: Sebastian Dröge <[email protected]> Date: Sun Jan 12 20:36:14 2014 +0100 emotion gstreamer1: Implement seekability check via seeking query --- src/modules/emotion/gstreamer1/emotion_gstreamer.c | 25 +++++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) diff --git a/src/modules/emotion/gstreamer1/emotion_gstreamer.c b/src/modules/emotion/gstreamer1/emotion_gstreamer.c index 25a23fc..02833f3 100644 --- a/src/modules/emotion/gstreamer1/emotion_gstreamer.c +++ b/src/modules/emotion/gstreamer1/emotion_gstreamer.c @@ -458,10 +458,29 @@ em_audio_handled(void *video) } static int -em_seekable(void *video EINA_UNUSED) +em_seekable(void *video) { - /* FIXME: Implement with SEEKING query and duration */ - return 1; + Emotion_Gstreamer *ev = video; + GstQuery *query; + int ret = 0; + gboolean seekable; + + if (!ev->ready) return ret; + + query = gst_query_new_seeking(GST_FORMAT_TIME); + if (!gst_element_query(ev->pipeline, query)) + goto on_error; + + gst_query_parse_seeking(query, NULL, &seekable, NULL, NULL); + if (!seekable) + goto on_error; + + ret = 1; + +on_error: + gst_query_unref(query); + + return ret; } static void --
