Merge branch 'master' into 0.11
authorSebastian Dröge <sebastian.droege@collabora.co.uk>
Fri, 27 May 2011 11:58:26 +0000 (13:58 +0200)
committerSebastian Dröge <sebastian.droege@collabora.co.uk>
Fri, 27 May 2011 11:58:26 +0000 (13:58 +0200)
1  2 
docs/gst/gstreamer-sections.txt
gst/gstcaps.c
gst/gstcaps.h
gst/gststructure.c
gst/gststructure.h
libs/gst/base/gstbasesrc.c
tests/check/gst/gstcaps.c
win32/common/libgstreamer.def

Simple merge
diff --cc gst/gstcaps.c
Simple merge
diff --cc gst/gstcaps.h
Simple merge
Simple merge
Simple merge
@@@ -2039,10 -2084,33 +2040,33 @@@ gst_base_src_update_length (GstBaseSrc 
    /* keep track of current position and update duration.
     * segment is in bytes, we checked that above. */
    GST_OBJECT_LOCK (src);
 -  gst_segment_set_duration (&src->segment, GST_FORMAT_BYTES, size);
 -  gst_segment_set_last_stop (&src->segment, GST_FORMAT_BYTES, offset);
+   updated = (src->segment.duration != size);
 +  src->segment.duration = size;
 +  src->segment.position = offset;
    GST_OBJECT_UNLOCK (src);
  
+   /* If we updated the duration and doing forward playback, we
+    * have to update the downstream segments to update the stop
+    * position */
+   if (updated && src->segment.rate >= 0.0) {
+     gint64 stop;
+     GstEvent *event;
+     /* for deriving a stop position for the playback segment from the seek
+      * segment, we must take the duration when the stop is not set */
+     if ((stop = src->segment.stop) == -1)
+       stop = src->segment.duration;
+     GST_DEBUG_OBJECT (src, "Sending update newsegment from %" G_GINT64_FORMAT
+         " to %" G_GINT64_FORMAT, src->segment.start, stop);
+     event =
+         gst_event_new_new_segment_full (TRUE,
+         src->segment.rate, src->segment.applied_rate, src->segment.format,
+         src->segment.start, stop, src->segment.time);
+     gst_pad_push_event (src->srcpad, event);
+   }
    return TRUE;
  
    /* ERRORS */
Simple merge
@@@ -177,6 -172,8 +177,7 @@@ EXPORT
        gst_caps_is_equal_fixed
        gst_caps_is_fixed
        gst_caps_is_subset
 -      gst_caps_load_thyself
+       gst_caps_is_subset_structure
        gst_caps_make_writable
        gst_caps_merge
        gst_caps_merge_structure