diff options
author | Olivier CrĂȘte <olivier.crete@collabora.com> | 2015-04-17 13:55:26 -0600 |
---|---|---|
committer | Olivier CrĂȘte <olivier.crete@collabora.com> | 2015-04-17 13:59:08 -0600 |
commit | a1f709c2935860585dcddfdb2e7d40541db423a5 (patch) | |
tree | 9d30c34c8a55ba936301b1f7b9866f70f5ea31f6 /gst/mpegtsdemux/tsdemux.c | |
parent | 774866ad62c3a0359705ef106584be3d6b3087e4 (diff) |
tsdemux: Cleanup latency query handling
The minimum latency is always 0 or more. And we should
requery upstream as it may have changed.
Diffstat (limited to 'gst/mpegtsdemux/tsdemux.c')
-rw-r--r-- | gst/mpegtsdemux/tsdemux.c | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/gst/mpegtsdemux/tsdemux.c b/gst/mpegtsdemux/tsdemux.c index ed83368d7..fdaf63a44 100644 --- a/gst/mpegtsdemux/tsdemux.c +++ b/gst/mpegtsdemux/tsdemux.c @@ -66,6 +66,9 @@ #define GST_FLOW_REWINDING GST_FLOW_CUSTOM_ERROR +/* latency in nsecs */ +#define TS_LATENCY (700 * GST_MSECOND) + GST_DEBUG_CATEGORY_STATIC (ts_demux_debug); #define GST_CAT_DEFAULT ts_demux_debug @@ -507,7 +510,7 @@ gst_ts_demux_srcpad_query (GstPad * pad, GstObject * parent, GstQuery * query) { GST_DEBUG ("query latency"); res = gst_pad_peer_query (base->sinkpad, query); - if (res && base->upstream_live) { + if (res) { GstClockTime min_lat, max_lat; gboolean live; @@ -519,10 +522,10 @@ gst_ts_demux_srcpad_query (GstPad * pad, GstObject * parent, GstQuery * query) PTS/DTS. We therefore allow a latency of 700ms for that. */ gst_query_parse_latency (query, &live, &min_lat, &max_lat); - if (min_lat != -1) - min_lat += 700 * GST_MSECOND; - if (max_lat != -1) - max_lat += 700 * GST_MSECOND; + if (min_lat) + min_lat += TS_LATENCY; + if (GST_CLOCK_TIME_IS_VALID (max_lat)) + max_lat += TS_LATENCY; gst_query_set_latency (query, live, min_lat, max_lat); } break; |