asfdemux: Send duration query upstream first

An upstream element (like mms or some dlna source) might be able to
answer the query. Try that first, else fallback to standard logic
This commit is contained in:
Edward Hervey 2014-11-05 13:45:29 +01:00
parent ccb4ae449a
commit ec19c9b6e4

View file

@ -4218,21 +4218,24 @@ gst_asf_demux_handle_src_query (GstPad * pad, GstObject * parent,
break;
}
GST_OBJECT_LOCK (demux);
res = gst_pad_query_default (pad, parent, query);
if (!res) {
GST_OBJECT_LOCK (demux);
if (demux->segment.duration != GST_CLOCK_TIME_NONE) {
GST_LOG ("returning duration: %" GST_TIME_FORMAT,
GST_TIME_ARGS (demux->segment.duration));
if (demux->segment.duration != GST_CLOCK_TIME_NONE) {
GST_LOG ("returning duration: %" GST_TIME_FORMAT,
GST_TIME_ARGS (demux->segment.duration));
gst_query_set_duration (query, GST_FORMAT_TIME,
demux->segment.duration);
gst_query_set_duration (query, GST_FORMAT_TIME,
demux->segment.duration);
res = TRUE;
} else {
GST_LOG ("duration not known yet");
res = TRUE;
} else {
GST_LOG ("duration not known yet");
}
GST_OBJECT_UNLOCK (demux);
}
GST_OBJECT_UNLOCK (demux);
break;
}