From b2e7c4bd45b8f7ffa1fc2599125ee53e2e0f275a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20Dr=C3=B6ge?= Date: Tue, 6 Jul 2010 10:13:04 +0200 Subject: [PATCH] basesink: Only answer the SEGMENT query in pull mode Otherwise the element handling the seeks should answer this query. Fixes bug #623622. --- libs/gst/base/gstbasesink.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/libs/gst/base/gstbasesink.c b/libs/gst/base/gstbasesink.c index 13e49441c6..324b0d347a 100644 --- a/libs/gst/base/gstbasesink.c +++ b/libs/gst/base/gstbasesink.c @@ -4741,10 +4741,13 @@ gst_base_sink_query (GstElement * element, GstQuery * query) break; case GST_QUERY_SEGMENT: { - /* FIXME, bring start/stop to stream time */ - gst_query_set_segment (query, basesink->segment.rate, - GST_FORMAT_TIME, basesink->segment.start, basesink->segment.stop); - res = TRUE; + if (basesink->pad_mode == GST_ACTIVATE_PULL) { + gst_query_set_segment (query, basesink->segment.rate, + GST_FORMAT_TIME, basesink->segment.start, basesink->segment.stop); + res = TRUE; + } else { + res = gst_pad_peer_query (basesink->sinkpad, query); + } break; } case GST_QUERY_SEEKING: