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

-- 


Reply via email to