summaryrefslogtreecommitdiff
path: root/gst
diff options
context:
space:
mode:
authorEdward Hervey <bilboed@bilboed.com>2014-11-05 13:45:29 +0100
committerEdward Hervey <bilboed@bilboed.com>2014-11-05 13:45:29 +0100
commitec19c9b6e45e857a54092cac939675e9faabf592 (patch)
treeba834066f19289c222f22cbd87b9e799bac4bd33 /gst
parentccb4ae449a087637284cb2f666f7dbfcd9db5d5d (diff)
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
Diffstat (limited to 'gst')
-rw-r--r--gst/asfdemux/gstasfdemux.c25
1 files changed, 14 insertions, 11 deletions
diff --git a/gst/asfdemux/gstasfdemux.c b/gst/asfdemux/gstasfdemux.c
index 7eb3f2dc..1a4c26dc 100644
--- a/gst/asfdemux/gstasfdemux.c
+++ b/gst/asfdemux/gstasfdemux.c
@@ -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;
}