basesink: take timestamp later
authorOgnyan Tonchev <ognyan@axis.com>
Mon, 29 Jun 2009 09:46:00 +0000 (11:46 +0200)
committerWim Taymans <wim.taymans@collabora.co.uk>
Mon, 29 Jun 2009 09:46:00 +0000 (11:46 +0200)
Make sure we don't accidentally cast a bufferlist of a buffer and try to take
the timestamp of it.

Refixes #585960

libs/gst/base/gstbasesink.c

index 65fbf31..a728074 100644 (file)
@@ -2849,9 +2849,6 @@ gst_base_sink_preroll_object (GstBaseSink * basesink, gboolean is_list,
     GstBuffer *buf;
     GstClockTime timestamp;
 
-    buf = GST_BUFFER_CAST (obj);
-    timestamp = GST_BUFFER_TIMESTAMP (buf);
-
     if (is_list) {
       GstBufferListIterator *it;
       gboolean got_group;
@@ -2866,6 +2863,8 @@ gst_base_sink_preroll_object (GstBaseSink * basesink, gboolean is_list,
       buf = GST_BUFFER_CAST (obj);
     }
 
+    timestamp = GST_BUFFER_TIMESTAMP (buf);
+
     GST_DEBUG_OBJECT (basesink, "preroll buffer %" GST_TIME_FORMAT,
         GST_TIME_ARGS (timestamp));