gst/base/gstbasesrc.c: Check if we are doing a segment seek and have arrived at the...
authorEdward Hervey <bilboed@bilboed.com>
Fri, 4 Nov 2005 14:35:10 +0000 (14:35 +0000)
committerEdward Hervey <bilboed@bilboed.com>
Fri, 4 Nov 2005 14:35:10 +0000 (14:35 +0000)
Original commit message from CVS:
* gst/base/gstbasesrc.c: (gst_base_src_get_range):
Check if we are doing a segment seek and have arrived at the
end of that segment.

ChangeLog
gst/base/gstbasesrc.c
libs/gst/base/gstbasesrc.c

index 5045c70..a81b14e 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2005-11-04  Edward Hervey  <edward@fluendo.com>
+
+       * gst/base/gstbasesrc.c: (gst_base_src_get_range):
+       Check if we are doing a segment seek and have arrived at the
+       end of that segment.
+
 2005-11-04  Wim Taymans  <wim@fluendo.com>
 
        * gst/gstbus.c: (gst_bus_post), (gst_bus_set_sync_handler):
index 2d8b0f7..32811de 100644 (file)
@@ -821,6 +821,10 @@ gst_base_src_get_range (GstBaseSrc * src, guint64 offset, guint length,
     if (offset > src->size)
       goto unexpected_length;
 
+    /* is segment done ? */
+    if (src->segment_loop && (offset > src->segment_end))
+      goto unexpected_length;
+
     if (offset + length > src->size) {
       if (bclass->get_size)
         bclass->get_size (src, &src->size);
index 2d8b0f7..32811de 100644 (file)
@@ -821,6 +821,10 @@ gst_base_src_get_range (GstBaseSrc * src, guint64 offset, guint length,
     if (offset > src->size)
       goto unexpected_length;
 
+    /* is segment done ? */
+    if (src->segment_loop && (offset > src->segment_end))
+      goto unexpected_length;
+
     if (offset + length > src->size) {
       if (bclass->get_size)
         bclass->get_size (src, &src->size);