From 2ddc6bb63d2055211b43e8518cbe5b4645d9df43 Mon Sep 17 00:00:00 2001 From: Mark Nauwelaerts Date: Wed, 28 Mar 2012 16:41:01 +0200 Subject: [PATCH] audiodecoder: handle downstream seeking query ... or not, in line with how segment events are treated. --- gst-libs/gst/audio/gstaudiodecoder.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/gst-libs/gst/audio/gstaudiodecoder.c b/gst-libs/gst/audio/gstaudiodecoder.c index 72c8f7a1c3..53bf819b2e 100644 --- a/gst-libs/gst/audio/gstaudiodecoder.c +++ b/gst-libs/gst/audio/gstaudiodecoder.c @@ -1839,6 +1839,8 @@ gst_audio_decoder_sink_query (GstPad * pad, GstObject * parent, dec = GST_AUDIO_DECODER (parent); + GST_LOG_OBJECT (dec, "handling query: %" GST_PTR_FORMAT, query); + switch (GST_QUERY_TYPE (query)) { case GST_QUERY_FORMATS: { @@ -1859,6 +1861,19 @@ gst_audio_decoder_sink_query (GstPad * pad, GstObject * parent, gst_query_set_convert (query, src_fmt, src_val, dest_fmt, dest_val); break; } + case GST_QUERY_SEEKING: + { + GstFormat format; + + /* non-TIME segments are discarded, so we won't seek that way either */ + gst_query_parse_seeking (query, &format, NULL, NULL, NULL); + if (format != GST_FORMAT_TIME) { + GST_DEBUG_OBJECT (dec, "discarding non-TIME SEEKING query"); + res = FALSE; + break; + } + /* fall-through */ + } default: res = gst_pad_query_default (pad, parent, query); break;