gst/gstpipeline.c: Take snapshot of state without blocking.
authorWim Taymans <wim.taymans@gmail.com>
Thu, 2 Jun 2005 09:39:21 +0000 (09:39 +0000)
committerWim Taymans <wim.taymans@gmail.com>
Thu, 2 Jun 2005 09:39:21 +0000 (09:39 +0000)
Original commit message from CVS:
* gst/gstpipeline.c: (gst_pipeline_send_event):
Take snapshot of state without blocking.

ChangeLog
gst/gstpipeline.c

index fd6795a..4627668 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,10 @@
 2005-06-02  Wim Taymans  <wim@fluendo.com>
 
+       * gst/gstpipeline.c: (gst_pipeline_send_event):
+       Take snapshot of state without blocking.
+
+2005-06-02  Wim Taymans  <wim@fluendo.com>
+
        * docs/design/part-TODO.txt:
        * docs/design/part-caps.txt:
        * docs/design/part-clocks.txt:
index 2bca836..6d7524d 100644 (file)
@@ -290,11 +290,13 @@ gst_pipeline_send_event (GstElement * element, GstEvent * event)
   gboolean res;
   GstElementState state;
   GstEventType event_type = GST_EVENT_TYPE (event);
+  GTimeVal timeout;
 
   /* need to call _get_state() since a bin state is only updated
-   * with this call. FIXME, we should probably not block but just
-   * take a snapshot. */
-  gst_element_get_state (element, &state, NULL, NULL);
+   * with this call. */
+  GST_TIME_TO_TIMEVAL (0, timeout);
+
+  gst_element_get_state (element, &state, NULL, &timeout);
   was_playing = state == GST_STATE_PLAYING;
 
   if (was_playing && event_type == GST_EVENT_SEEK)