mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-24 01:00:37 +00:00
tsdemux: Report latency (700ms)
This commit is contained in:
parent
e48966ecf1
commit
99a7b0a692
1 changed files with 24 additions and 0 deletions
|
@ -396,6 +396,30 @@ gst_ts_demux_srcpad_query (GstPad * pad, GstObject * parent, GstQuery * query)
|
|||
res = FALSE;
|
||||
}
|
||||
break;
|
||||
case GST_QUERY_LATENCY:
|
||||
{
|
||||
GST_DEBUG ("query latency");
|
||||
res = gst_pad_peer_query (base->sinkpad, query);
|
||||
if (res && base->upstream_live) {
|
||||
GstClockTime min_lat, max_lat;
|
||||
gboolean live;
|
||||
|
||||
/* According to H.222.0
|
||||
Annex D.0.3 (System Time Clock recovery in the decoder)
|
||||
and D.0.2 (Audio and video presentation synchronization)
|
||||
|
||||
We can end up with an interval of up to 700ms between valid
|
||||
PCR/SCR. 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;
|
||||
gst_query_set_latency (query, live, min_lat, max_lat);
|
||||
}
|
||||
}
|
||||
break;
|
||||
case GST_QUERY_SEEKING:
|
||||
GST_DEBUG ("query seeking");
|
||||
gst_query_parse_seeking (query, &format, NULL, NULL, NULL);
|
||||
|
|
Loading…
Reference in a new issue