/usr/share/doc/gstreamer1.0-doc/manual/html/section-clocks-latency.html is in gstreamer1.0-doc 1.10.4-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | <html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Latency</title><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="index.html" title="GStreamer Application Development Manual (1.10.4)"><link rel="up" href="chapter-clocks.html" title="Chapter 14. Clocks and synchronization in GStreamer"><link rel="prev" href="section-clocks-providers.html" title="Clock providers"><link rel="next" href="chapter-buffering.html" title="Chapter 15. Buffering"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Latency</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="section-clocks-providers.html">Prev</a> </td><th width="60%" align="center">Chapter 14. Clocks and synchronization in <span class="application">GStreamer</span></th><td width="20%" align="right"> <a accesskey="n" href="chapter-buffering.html">Next</a></td></tr></table><hr></div><div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="section-clocks-latency"></a>Latency</h2></div></div></div><p>
The latency is the time it takes for a sample captured at timestamp X
to reach the sink. This time is measured against the clock in the
pipeline. For pipelines where the only elements that synchronize against
the clock are the sinks, the latency is always 0 since no other element
is delaying the buffer.
</p><p>
For pipelines with live sources, a latency is introduced, mostly because
of the way a live source works. Consider an audio source, it will start
capturing the first sample at time 0. If the source pushes buffers with
44100 samples at a time at 44100Hz it will have collected the buffer at
second 1. Since the timestamp of the buffer is 0 and the time of the
clock is now >= 1 second, the sink will drop this buffer because it is
too late. Without any latency compensation in the sink, all buffers will
be dropped.
</p><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="section-latency-compensation"></a>Latency compensation</h3></div></div></div><p>
Before the pipeline goes to the PLAYING state, it will, in addition to
selecting a clock and calculating a base-time, calculate the latency
in the pipeline. It does this by doing a LATENCY query on all the sinks
in the pipeline. The pipeline then selects the maximum latency in the
pipeline and configures this with a LATENCY event.
</p><p>
All sink elements will delay playback by the value in the LATENCY event.
Since all sinks delay with the same amount of time, they will be
relative in sync.
</p></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="section-latency-dynamic"></a>Dynamic Latency</h3></div></div></div><p>
Adding/removing elements to/from a pipeline or changing element
properties can change the latency in a pipeline. An element can
request a latency change in the pipeline by posting a LATENCY
message on the bus. The application can then decide to query and
redistribute a new latency or not. Changing the latency in a
pipeline might cause visual or audible glitches and should
therefore only be done by the application when it is allowed.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="section-clocks-providers.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="chapter-clocks.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="chapter-buffering.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Clock providers </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 15. Buffering</td></tr></table></div></body></html>
|