flvdemux: First try upstream when handling seek events/queries

This commit is contained in:
Sebastian Dröge 2010-06-06 14:56:52 +02:00
parent 8e0adba996
commit 0fe56cc0d6

View file

@ -2411,6 +2411,13 @@ wrong_format:
static gboolean
gst_flv_demux_handle_seek_push (GstFlvDemux * demux, GstEvent * event)
{
/* First try upstream */
if (gst_pad_push_event (demux->sinkpad, gst_event_ref (event))) {
GST_DEBUG_OBJECT (demux, "Upstream successfully seeked");
gst_event_unref (event);
return TRUE;
}
if (!demux->indexed) {
guint64 seek_offset = 0;
gboolean building_index;
@ -2859,6 +2866,17 @@ gst_flv_demux_query (GstPad * pad, GstQuery * query)
case GST_QUERY_SEEKING:{
GstFormat fmt;
/* First ask upstream */
if (gst_pad_peer_query (demux->sinkpad, query)) {
gboolean seekable;
gst_query_parse_seeking (query, NULL, &seekable, NULL, NULL);
if (seekable) {
res = TRUE;
break;
}
}
gst_query_parse_seeking (query, &fmt, NULL, NULL, NULL);
res = TRUE;
if (fmt != GST_FORMAT_TIME || !demux->index) {