Merge branch 'master' into 0.11
authorWim Taymans <wim.taymans@collabora.co.uk>
Thu, 9 Jun 2011 10:01:02 +0000 (12:01 +0200)
committerWim Taymans <wim.taymans@collabora.co.uk>
Thu, 9 Jun 2011 10:01:02 +0000 (12:01 +0200)
Conflicts:
libs/gst/base/gstbasesrc.c

1  2 
libs/gst/base/gstbasesrc.c
libs/gst/base/gstbasesrc.h
plugins/elements/gstfdsrc.c
plugins/elements/gstfilesrc.c

@@@ -310,9 -324,16 +311,11 @@@ static GstFlowReturn gst_base_src_pad_g
  static GstFlowReturn gst_base_src_get_range (GstBaseSrc * src, guint64 offset,
      guint length, GstBuffer ** buf);
  static gboolean gst_base_src_seekable (GstBaseSrc * src);
 +static gboolean gst_base_src_negotiate (GstBaseSrc * basesrc);
+ static gboolean gst_base_src_update_length (GstBaseSrc * src, guint64 offset,
+     guint * length);
  
  static void
 -gst_base_src_base_init (gpointer g_class)
 -{
 -  GST_DEBUG_CATEGORY_INIT (gst_base_src_debug, "basesrc", 0, "basesrc element");
 -}
 -
 -static void
  gst_base_src_class_init (GstBaseSrcClass * klass)
  {
    GObjectClass *gobject_class;
@@@ -1983,7 -2060,7 +2008,7 @@@ gst_base_src_update_length (GstBaseSrc 
    format = src->segment.format;
    stop = src->segment.stop;
    /* get total file size */
--  size = (guint64) src->segment.duration;
++  size = src->segment.duration;
  
    /* only operate if we are working with bytes */
    if (format != GST_FORMAT_BYTES)
    /* keep track of current position and update duration.
     * segment is in bytes, we checked that above. */
    GST_OBJECT_LOCK (src);
-   if (src->segment.duration != size) {
-     src->segment.duration = size;
-     event = gst_event_new_segment (&src->segment);
-   }
 -  gst_segment_set_duration (&src->segment, GST_FORMAT_BYTES, size);
 -  gst_segment_set_last_stop (&src->segment, GST_FORMAT_BYTES, offset);
++  src->segment.duration = size;
 +  src->segment.position = offset;
    GST_OBJECT_UNLOCK (src);
  
-   /* If we updated the duration, we have to update the downstream
-    * segments to update the stop position */
-   if (event)
-     gst_pad_push_event (src->srcpad, event);
    return TRUE;
  
    /* ERRORS */
Simple merge
Simple merge
Simple merge