queue2: add range only on sinkpad
authorWim Taymans <wim.taymans@collabora.co.uk>
Wed, 11 Apr 2012 10:00:10 +0000 (12:00 +0200)
committerWim Taymans <wim.taymans@collabora.co.uk>
Wed, 11 Apr 2012 10:45:37 +0000 (12:45 +0200)
Only add the range when we receive a segment event on the sinkpad. The add_range
method will modify the write position, which only makes sense to do on the
sinkpad.

plugins/elements/gstqueue2.c

index c5a8cb5..a861fb7 100644 (file)
@@ -740,7 +740,7 @@ apply_segment (GstQueue2 * queue, GstEvent * event, GstSegment * segment,
       G_GINT64_FORMAT, update, rate, arate, format, start, stop, time);
 
   if (format == GST_FORMAT_BYTES) {
-    if (!QUEUE_IS_USING_QUEUE (queue)) {
+    if (!QUEUE_IS_USING_QUEUE (queue) && is_sink) {
       /* start is where we'll be getting from and as such writing next */
       queue->current = add_range (queue, start);
     }